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