abild(1)abild(1) NAME abild - ABI link editor SYNOPSIS abild [-a] [-B argument] [-d link] [-e] [-G] [-Iname] [-Lpath] [-lx] [-m] [-ooutfile] [-Q id] [-r] [-s] [-t] [-usymname] [-v] [-V] [-X arg] [-z sym] [-Wl,args[,arglist]] filename IMPLEMENTATION IRIX systems DESCRIPTION abild is a wrapper shell script for ld for link editing MIPS ABI applications. It translates a common subset of the SVR4 Software Generation System (SGS) flags and arguments to those of the native IRIS Development Option (IDO). By the use of this wrapper, applications that link on-site on a target platform are isolated from having to know the details of invoking that platform's compilation system. abild also serves to hide the details of constructing an ABI application on IRIX. The details of exactly how the native ld constructs an ABI application could change, so to insure portability abild should be used to link all ABI-compliant programs. The options in the following list are recognized by abild. Options that are not applicable are generally silently ignored. Further details are available in the UNIX System V Release 4 Programmer's Reference Manual. -a Specifies static mode, in which undefined references generate errors. -B argument Specifies archives and symbols. argument can be one of the following values: static Directs abild to look only for static archives during the link phase. dynamic Directs abild to look for Dynamic Shared Objects (DSOs) first, then static archives, during the link phase. The-B static and -B dynamic options serve as toggles and can be specified multiple times on a command line. symbolic When building a DSO, directs abild to bind references to global symbols to their definitions within the object. export [=names] When creating a DSO, indicates that symbols from the next object, archive, or DSO are exported from the DSO being created. This is the default for an object but not for an archive or DSO. When used with the optional names arguemtn, marks the symbols given by the list of names as exported. If any symbols are exported by this mechanism, all unspecified symbols are automatically hidden. exports_file=filename When creating a DSO, specifies the file that contains a list of symbols that should be exported. Any symbols not specifically exported are automatically hidden. hide [=names] When creating a DSO, indicates that symbols from the next object, archive, or DSO are hidden in the DSO being created. This is the default for an archive or DSO but not for an object. When used with the optional name argument, marks the symbols given by the list of names as hidden. Ignored if any symbols are exported by the export=names option or exports_file=filename option. hides_file=filename When creating a DSO, specifies the file that contains a list of symbols that should be hidden. Ignored if any symbols are exported by the export=names option or exports_file=filename option. objectlist=filename Specifies the file that contains the object files to be linked. rpath=path Specifies the path name to use when linking the IRIX cc shared option, or when using the abild -G option. path is a directory. The dynamic linker searches the named directory first. nolibraryreplacement Turns on a flag in the dynamic section so that rld does not allow execution time or runtime changing of the path (except for super user) to find the DSOs. Typically, this option is used for security purposes on system utilities. -d link Directs the type of linking. link can be y or n. If link is set to n, abild uses static linking. Statically linked executable files do not conform to the MIPS ABI. If link is set to y, abild uses dynamic linking (the default) to create a dynamic executable file. -eepsym Sets entry point to epsym. -G Directs abild to produce a DSO. This option is used when generating a DSO (as opposed to a dynamic executable file). When using the -G option, you can also specify the output file name and the shared object name (soname), as in the following: -o file.so -Wl, -soname, file.so -Iname Specifies an interpreter to be linked with the a.out file. -Lpath Adds path to library search directories. -lx Searches the specified library. -m Produces a memory map. -ooutfile Names the output file. -Q id Suppresses or generates compiler identification in output. id can be y or n. If id is set to n compiler identification is suppressed; when id is set to y compiler identification is generated. -r Combines object files into a relocatable object file. -s Strips symbolic debugging information. -t Suppresses warning about multiple defined symbols of different sizes. -usymname Enters the named symbol as an undefined symbol. -v Indicates verbose mode. -V Directs abild to produce a version identifier string. -X arg Specifies data. arg can have the following values: readwrite_const Directs abild to place the contents of constant data in a writable segment of memory. This is the default. readonly_const Directs abild to place the contents of constant data in a read-only segment of memory. Use this option when you generate programs that will be redistributed in on-site linkable object code as well as binary form. Some of the other ABI platforms support only this behavior. xpg Directs the compiler to set the global variable __xpg4 to 1. This value indicates that if there is a conflict, libraries should provide behavior compatible with the X/Open Single UNIX(TM) Specification rather than the default traditional behavior. 32 Directs abild to generate a 32-bit object. This is the default. Defaults to -X mips1. 64 Directs abild to generate a 64-bit object. Defaults to -X mips3. mips1 Directs abild to generate code using the MIPS I instruction set of the R2000/R3000 RISC architecture. Defaults to -X 32. mips2 Directs abild to use the MIPS II instruction set (MIPS 1 + R4000 specific extensions) to generate code. Defaults to -X 32. mips3 Directs abild to use the MIPS III (R4000) instruction set to generate code. Defaults to -X 64. mips4 Directs abild to use the MIPS IV (R10000,R5000,R8000) instruction set to generate code. Defaults to -X 64. -z sym Handles symbols. If sym is set to defs abild forces fatal errors for undefined symbols at the end of the link (default when building an executable file). If sym is nodefs abild allows undefined symbols (default when building a DSO). If sym is text in dynamic mode, it forces a fatal error if relocations against unwritable, allocatable sections remain. -Wl,args[,arglist] This IRIX-specific option passes SGI specific options to the underlying link command. NOTES The options described in the previous section indicate a space character between options and arguments. This is in accordance with X/Open recommendations for portable applications. abild also supports placing its argument in the same string with no space. If the argument is optional, no space is allowed and this is reflected in the previous descriptions of options. When abild is used, the only library in the default search path is /usr/lib/abi. If /usr/lib is searched, an ABI binary file is not built. Only the following object size/instruction set combinations are allowed: * -X 32 and -X mips1 * -X 32 and -X mips2 * -X 64 and -X mips3 * -X 64 and -X mips4 FILES /usr/lib/abi/sgild.cfg /usr/lib/abi ABI libraries and configuration files /usr/lib64/abi ABI libraries /usr/lib64/mips3/abi ABI libraries /usr/lib64/mips4/abi ABI libraries /usr/include/abi Special ABI include files /usr/lib/abi/setup abild setup file /usr/lib/abi/sgild.cfg IRIX abild config file SEE ALSO abicc(1), check_abi_compliance(1), check_abi_interface(1), check_for_syscalls(1), abi(5), dso(5) MIPS Processor ABI Conformance Guide UNIX System V Release 4 Programmer's Reference Manual