abild(1)
abild - ABI link editor
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME abild - ABI link editor SYNOPSIS abild [ option ] ... file ... DESCRIPTION abild is a wrapper shell script for ld for link editing MIPS ABI applications. It translates a common subset of the SVR4 SGS (Software Generation System) flags and arguments to those of the native IDO (IRIS Development Option). By the use of this wrapper, applications which 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 are not guaranteed to remain unchanged, so abild should be used to link all ABI-compliant programs to insure portability. The following options are recognized by abild; options which are not applicable are (generally) silently ignored. Further details available in the UNIX System V Release 4 Programmer's Reference Manual. -a undefined references generate errors (static mode) -B static look only for static archives during link phase -B dynamic look for DSOs first, then static archives. during link phase Note that the -B static and -B dynamic options serve as toggles and can be specified multiple times on a command line. -B symbolic when building a DSO, bind references to global symbols to their definitions within the object -B symbolic=name,... when creating a DSO, bind the named reference to their definitions within the object if there is a definition in the object. Not supported at present. -B symbolic_file=filename when creating a DSO, the file filename contains a list of symbols that should be bound to their definitions within the object if there is a definition in the object. Not supported at present. -B export when creating a DSO, indicates that symbols from the next object, archive, or DSO are exported fron the DSO being created. This is the default for an object but not for an archive or DSO. -B export=name,... when creating a DSO, marks the symbols given by the list of names as exported. If any symbols are exported by this mechanism then all unspecified symbols will be automatically hidden. filename contains a list of symbols that should be exported. Any symbols not specifically exported will be automatically hidden. -B exports_file= filename when creating a DSO, the file given by filename contains a list of symbols that should be exported. Any symbols not specifically exported will be automatically hidden. -B hide 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. -B hide=name,... when creating a DSO, marks the symbols given by the list of names as hidden. Ignored if any symbols are exported by the -B export=name,... or -B exports_file=filename options. -B hides_file=filename when creating a DSO, the file given by filename contains a list of symbols that should be hidden. Ignored if any symbols are exported by the -B export=name,... or -B exports_file=filename options. -B objectlist=filename the object files named in the file filename are linked in. -B rpath=PATH PATH is a directory. specifies the rpath pathname when linking -shared (IRIX cc option) or when using the -G option. The dynamic linker will search the named directory first. -B 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 (Dynamic Shared Objects). Typically, used for security purposes on system utilities. -b controls DSO linkage. Silently ignored by IRIX. -d n use static linking. Statically linked executables are not MIPS ABI conforming. -d y use dynamic linking (the default) to create a dynamic executable. -e epsym sets entry point to be epsym. -G produce a DSO. This option is used when generating a DSO (dynamic shared object) (as opposed to a dynamic executable). When using the -G option, one usually also specifies the outfile file name using, -o file.so and the "soname" using, -Wl,-soname,file.so. -h name controls dynamic linking name lookup (look for name instead of the filename). This option is not supported on IRIX. -I name specifies an interpreter to be linked with a.out . -L path add path to library search directories. -lx search the specified library -M mapfile use specified map file as a file of directives to ld. This option is not supported on IRIX. -m produce a memory map. -o outfile names the output file. -Q n suppress compiler identification in output. -Q y generate compiler identification in output. -r combine object files into a relocatable object file. -s strip symbolic debugging information. -t suppress warning about multiple defined symbols of different sizes. -u symname enters named symbol as an undefined. -v verbose mode. -V output a version identifier string. -X readwrite_const Place the contents of const data in a writable segment of memory. This is the default. -X readonly_const Place contents of const data in a read-only segment of memory. This option should be when programs which will be redistributed in on- site linkable object code as well as binary form are generated, as some of the other ABI platforms support only this behavior. -X xpg directs the compiler to set the global variable __xpg4 to 1; this indicates that libraries should provide behavior compatible with the X/Open Single UNIX(TM) Specification rather than the default traditional behavior where there is a conflict. -X 32 generate a 32-bit object. This is the default. Defaults to -X mips1 . -X 64 generate a 64bit object. Defaults to -X mips3 . -X mips1 generate code using the MIPS I instruction set of the R2000/R3000 RISC architecture. Defaults to -X 32 . -X mips2 generate code using the MIPS II instruction set (MIPS 1 + R4000 specific extensions). Defaults to -X 32 . -X mips3 generate code using the MIPS III (R4000) instruction set. Defaults to -X 64 . -X mips4 generate code using the MIPS IV (R10000,R5000,R8000) instruction set. Defaults to -X 64 . -YP,dirlist controls library search list. This option is not supported and generates a warning message. -z defs force fatal error for undefined symbols at the end of the link (default when building an executable) -z nodefs allow undefined symbols (default when building a DSO). -z text in dynamic mode, force a fatal error if relocations against unwritable, allocatable sections remain -Wl,args[,arglist] This IRIX-specific option is used to pass SGI specific options to the underlying link command. NOTES The OPTIONS section above indicates a space character between options and option-arguments. This is in accordance with X/Open recommendations for portable applications. abicc also supports placing its option-argument in the same string with no space. If the option-argument is optional, no space is allowed and this is reflected in the OPTIONS section. When abild is used, the only library in the default search path is /usr/lib/abi. If /usr/lib is searched, an ABI binary won't be built. -X 32 may only be combined with -X mips1 or -X mips2 . -X 64 may only be combined with -X mips3 or -X mips4 . FILES /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) MIPS Processor ABI Conformance Guide UNIX System V Release 4 Programmer's Reference Manual http://www.mipsabi.org has the MIPS ABI documents.