The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

ild (1)
  • >> ild (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • 
    NAME
         ild - incremental link editor (ild) for object files
    
    SYNOPSIS
         ild [ -a ] [ -i ] [ -m ] [ -s ] [ -t ]
              [ -V ] [ -B dynamic|static ] [ -d y|n ]
              [ -e epsym ] [ -I name ] [ -L path ] [ -l x ]
              [ -o outfile ] [ -Q y|n ] [ -R path ] [ -u symname ]
              [ -Y P,dirlist ]
              [ -z allextract|defaultextract|weakextract ]
              [ -z defs|nodefs ] [ -z i_dryrun ]
              [ -z i_full ] [ -z i_noincr ] [ -z i_quiet ]
              [ -z i_verbose ]
              filename ...
    
    DESCRIPTION
         iilldd links incrementally so you can  insert  modified  object
         code into an executable built previously.  The time required
         to link depends upon the amount  of  code  changed.  Linking
         your  application  on  every build does not require the same
         amount of time; small changes in code  can  be  linked  very
         quickly.
    
         The iilldd command combines relocatable object files,  performs
         relocation,  and resolves external symbols.  iilldd operates in
         two modes, static or dynamic, as governed by the --dd  option.
         In static mode, --ddnn, relocatable object files given as argu-
         ments are combined to produce an executable object file.  In
         dynamic  mode,  --ddyy,  the  default, relocatable object files
         given as arguments are combined  to  produce  an  executable
         object file that will be linked at execution with any shared
         object files given as arguments.  In all cases,  the  output
         of iilldd is left in aa..oouutt by default.
    
         If any argument is a library, it is searched exactly once at
         the  point  it  is  encountered  in  the argument list.  The
         library may be either a  relocatable  archive  or  a  shared
         object.   For an archive library, only those routines defin-
         ing  an  unresolved  external  reference  are  loaded.   The
         archive library symbol table (see ar(4)) is searched sequen-
         tially with as many  passes  as  are  necessary  to  resolve
         external   references  that  can  be  satisfied  by  library
         members.  Thus, the ordering of members in  the  library  is
         functionally   unimportant,   unless  there  exist  multiple
         library members defining the same external symbol.  A shared
         object  consists  of a single entity all of whose references
         must be resolved within the executable being built or within
         other shared objects with which it is linked.
    
         The compilation system options that control whether  a  link
         step is performed by iilldd or lldd are: -xildon, always use iilldd;
         -xildoff, always use lldd (if -xildon and  -xildoff  are  both
         present,  the last governs); -g, when neither -xildoff or -G
         are given, use iilldd  for  link-only  invocations  (no  source
         files  on the command line); -G, prevents the -g option from
         having any effect on linker selection.
    
         Note: Both -g and -G have other meanings that are documented
         as part of the compilation systems.
    
         When you use the -g option to invoke iilldd, and you  have  the
         default  Makefile  structure  (which  includes  compile-time
         options such as -g on the command line for the  link  step),
         you use iilldd automatically when doing development.
    
         If iilldd determines that an iilldd option is  unimplemented  (see
         NOTES),  iilldd directly invokes //uussrr//ccssss//bbiinn//lldd to perform the
         link.
    
    OVERVIEW OF INCREMENTAL LINKING
         In incremental mode, the initial  link  causes  the  various
         text,  data, bss, exception table sections, etc., to be pad-
         ded with additional space for future  expansion.   Addition-
         ally, all relocation records, rraannlliibb indices, and the global
         symbol table are saved by ild in the executable file.
    
         On subsequent incremental links, iilldd uses timestamps to dis-
         cover  which  object  files  have  changed  and  patches the
         changed object code  into  a  previously  built  executable.
         That  is,  the  previous  versions  of  the object files are
         invalidated and the new object files are loaded into the pad
         sections  of  the  executable.  All references to symbols in
         invalidated object files are patched to point to the correct
         new object files.
    
    OPTIONS
         --aa          In  static  mode  only,  produce  an  executable
                     object  file;  give  errors for undefined refer-
                     ences.  This is the default behavior for  static
                     mode.
    
         --ii          Ignore LD_LIBRARY_PATH setting.  This option  is
                     useful  when  an  LD_LIBRARY_PATH  setting is in
                     effect to influence the runtime library  search,
                     which  would  interfere  with  the  link editing
                     being performed.  (This also applies to the set-
                     ting of LD_LIBRARY_PATH_64 )
    
         --mm          Produce  a  memory  map  or   listing   of   the
                     input/output  sections  on  the standard output.
                     (See BUGS.)
    
         --ss          Strip symbolic information from the output file.
                     Any   debugging  information,  that  is  .debug,
                     .line, and .stab sections and  their  associated
                     relocation entries, will be removed.  Except for
                     relocatable files or shared objects, the  symbol
                     table  and  string  table  sections will also be
                     removed from the output object file.
    
         --tt          Turn off the warning about multiply defined sym-
                     bols that are not the same size.
    
         --VV          Output a message giving  information  about  the
                     version of iilldd being used.
    
         --BB ddyynnaammiicc|ssttaattiicc
                     Options governing library inclusion.   --BBddyynnaammiicc
                     is  valid  in  dynamic mode only.  These options
                     may be specified any number of times on the com-
                     mand line as toggles:  if the --BBssttaattiicc option is
                     given, no shared objects will be accepted  until
                     --BBddyynnaammiicc is seen.  See also the --ll option.
    
         --dd yy|nn      When --ddyy, the default, is  specified,  iilldd  uses
                     dynamic linking; when --ddnn is specified, iilldd uses
                     static linking.  Also see --BB ddyynnaammiicc|ssttaattiicc.
    
         --ee epsym    Set the entry point address for the output  file
                     to be that of the symbol epsym.
    
         --II name     When building an executable,  use  name  as  the
                     path  name of the interpreter to be written into
                     the program header.  The default in static  mode
                     is  no interpreter; in dynamic mode, the default
                     is   the   name   of   the    runtime    linker,
                     //uussrr//lliibb//lldd..ssoo..11.  Either case may be overridden
                     by --IIname.  eexxeecc will load this interpreter when
                     it  loads the aa..oouutt and will pass control to the
                     interpreter rather than to the aa..oouutt directly.
    
         --LL path     Add path to the library search directories.  iilldd
                     searches  for libraries first in any directories
                     specified by the --LL options,  and  then  in  the
                     standard  directories.   This  option  is useful
                     only if it precedes the --ll options to  which  it
                     applies  on  the  command  line. The environment
                     variables LD_LIBRARY_PATH and LD_LIBRARY_PATH_64
                     may  be  used  to  supplement the library search
                     path (see ENVIRONMENT below).
    
    
    
         --ll x        Search a library lliibbx..ssoo or lliibbx..aa, the  conven-
                     tional  names  for  shared  object  and  archive
                     libraries,  respectively.   In   dynamic   mode,
                     unless  the  --BBssttaattiicc  option  is in effect, iilldd
                     searches each directory specified in the library
                     search  path  for a file lliibbx..ssoo or lliibbx..aa.  The
                     directory search stops at  the  first  directory
                     containing  either.  iilldd chooses the file ending
                     in ..ssoo if --llx expands to two files  whose  names
                     are  of  the  form  lliibbx..ssoo  and  lliibbx..aa.  If no
                     lliibbx..ssoo is found, then iilldd accepts  lliibbx..aa.   In
                     static  mode,  or when the --BBssttaattiicc option is in
                     effect, iilldd selects only the file ending in  ..aa.
                     A  library  is searched when its name is encoun-
                     tered, so the placement of --ll is significant.
    
         --oo outfile  Produce an output  object  file  named  outfile.
                     The name of the default object file is aa..oouutt.
    
         --QQ yy|nn      Under --QQyy, an iiddeenntt string is added to the ..ccoomm--
                     mmeenntt  section of the output file to identify the
                     version of the link editor used  to  create  the
                     file.   This  will  result in multiple lldd iiddeennttss
                     when there have  been  multiple  linking  steps,
                     such  as  when  using  lldd --rr.  This is identical
                     with the default action of the cccc command.   --QQnn
                     suppresses version identification.
    
         -R path     A  colon-separated  list  of  directories   that
                     specifies library search directories to the run-
                     time linker.  If present and not null,  path  is
                     recorded in the output object file and passed to
                     the runtime linker.  Multiple instances of  this
                     option  are  concatenated  and  separated  by  a
                     colon.
    
         --uu symname  Enter symname as an undefined symbol in the sym-
                     bol  table.  This is useful for loading entirely
                     from an archive  library,  since  initially  the
                     symbol  table  is empty and an unresolved refer-
                     ence is needed to force the loading of the first
                     routine.   The  placement  of this option on the
                     command line is significant; it must  be  placed
                     before the library that will define the symbol.
    
         --YY PP,,dirlist
                     Change the default directories used for  finding
                     libraries.   dirlist  is  a colon-separated path
                     list.
    
                     NOTE: The "-z name" form is used by iilldd for spe-
                     cial  options.   The  "-i_"  prefix  to  the  -z
                     options identifies  those  options  peculiar  to
                     iilldd.
    
         --zz aalllleexxttrraacctt||ddeeffaauulltteexxttrraacctt||wweeaakkeexxttrraacctt
                     Alter the extraction criteria  of  objects  from
                     any  archives  that  follow.  By default archive
                     members  are  extracted  to  satisfy   undefined
                     references  and to promote tentative definitions
                     with data definitions.  Weak  symbol  references
                     do  not trigger extraction. Under -z allextract,
                     all  archive  members  are  extracted  from  the
                     archive.  Under  -z weakextract, weak references
                     trigger archive  extraction.   -z defaultextract
                     provides  a  means  of  returning to the default
                     following use of the former extract options.
    
         --zz ddeeffss     Force a fatal error  if  any  undefined  symbols
                     remain  at  the  end  of  the link.  This is the
                     default when building an executable.  It is also
                     useful  when  building a shared object to assure
                     that the object is self-contained, that is, that
                     all  its symbolic references are resolved inter-
                     nally.
    
         --zz nnooddeeffss   Allow undefined symbols.  This  is  the  default
                     when  building  a shared object.  When used with
                     executables, the behavior of references to  such
                     "undefined symbols" is unspecified.
    
         --zz ii_ddrryyrruunn (iilldd only).  Print the list of files  iilldd  would
                     have linked and exit.
    
         --zz ii_ffuullll   (iilldd only).  Do a complete relink in incremental
                     mode.
    
         --zz ii_nnooiinnccrr (iilldd only).  Run  iilldd  in  non-incremental  mode
                     (not  recommended  for  customer  use - used for
                     testing only).
    
         --zz ii_qquuiieett  (iilldd only).  Turns off these two  iilldd  messages:
                     `ild:  (Performing  full  relink) ...' and `ild:
                     calling ld to finish link'.
    
         --zz ii_vveerrbboossee
                     (iilldd only).  Expands on default  information  in
                     these  two iilldd messages:  `ild: (Performing full
                     relink) ...' and  `ild:  calling  ld  to  finish
                     link'   whenever  the  default  text  ends  with
                     `[...]'.
    
    
    
    ENVIRONMENT
         LD_LIBRARY_PATH
              A list of directories in which to search for  libraries
              specified with the -l option.  Multiple directories are
              separated by a colon.  In the  most  general  case,  it
              will  contain  two directory lists separated by a semi-
              colon:
                     dirlist1;dirlist2
    
              If iilldd is called with any number of occurrences of  -L,
              as in:
                     ild ... -Lpath1 ... -Lpathn ...
    
              then the search path ordering is:
                     dirlist1 path1 ... pathn dirlist2 LIBPATH
    
              When the list of directories does not contain  a  semi-
              colon, it is interpreted as dirlist2.
    
              LD_LIBRARY_PATH is also used to specify library  search
              directories   to  the  runtime  linker.   That  is,  if
              LD_LIBRARY_PATH exists in the environment, the  runtime
              linker  will search the directories named in it, before
              its default directory, for shared objects to be  linked
              with the program at execution.
    
              Note:  When running a set-user-ID or set-group-ID  pro-
              gram, the runtime linker will only search for libraries
              in /usr/lib and any full pathname specified within  the
              executable  as  a  result  of a runpath being specified
              when  the  executable  was  constructed.   Any  library
              dependencies  specified  as  relative pathnames will be
              silently ignored.
    
         LD_LIBRARY_PATH_64
              On Solaris 7, this environment variable is  similar  to
              LD_LIBRARY_PATH  but  overrides  it  when searching for
              64-bit dependencies.
    
              When running Solaris 7 on a SPARC processor and linking
              in 32-bit mode, LD_LIBRARY_PATH_64 is ignored.  If only
              LD_LIBRARY_PATH is defined, it us used for both  32-bit
              and   64-bit  linking.   If  both  LD_LIBRARY_PATH  and
              LD_LIBRARY_PATH_64 are defined, the 32-bit linking will
              be  done  using  LD_LIBRARY_PATH and the 64-bit linking
              using LD_LIBRARY_PATH_64 .
    
              See Linker and Libraries Guide for more information  on
              these environment variables.
    
         LD_OPTIONS
              A default set  of  options  to  iilldd  .   LD_OPTIONS  is
              interpreted  by  iilldd  just as though its value had been
              placed on the command line, immediately  following  the
              name used to invoke iilldd , as in:
                     ild $LD_OPTIONS ... other-arguments ...
    
         LD_PRELOAD
              A list of shared objects that are to be interpreted  by
              the  runtime  linker.  The specified shared objects are
              linked in after the program being executed  and  before
              any other shared objects that the program references.
    
              Note:  When running a set-user-ID or set-group-ID  pro-
              gram, this option is silently ignored.
    
         LD_RUN_PATH
              An alternative mechanism for specifying  a  runpath  to
              the  link  editor (see -R option).  If both LD_RUN_PATH
              and the -R option are specified, -R supersedes.
    
         LD_DEBUG
              (not supported by iilldd) Provide a list  of  tokens  that
              will cause the runtime linker to print debugging infor-
              mation to the standard error. The  special  token  help
              indicates the full list of tokens available.
    
         Note:  Environment variable-names beginning with the charac-
         ters  `LD_' are reserved for possible future enhancements to
         lldd.  Environment variable-names beginning with  the  charac-
         ters `ILD_' are reserved for possible future enhancements to
         iilldd.
    
    NOTES
         If iilldd determines that an iilldd option is  unimplemented,  iilldd
         directly invokes //uussrr//ccssss//bbiinn//lldd to perform the link.
    
         The following lldd options are not supported by  iilldd  at  this
         time:
    
         -b
         -G
         -B symbolic
         -D token
         -F name
         -h name
         -M mapfile
         -z muldefs
         -z text
    
    BUGS
         iilldd uses the timestamp associated with  an  archive  library
         object  file to determine which files have been updated.  If
         multiple definitions of the same symbol do not exist in  the
         library, iilldd finds the correct (that is, only) symbol.  How-
         ever, multiple definitions of the same symbol  confuse  iilldd.
         iilldd   occasionally  silently  handles  multiple  definitions
         incorrectly.
    
         Option --mm produces a memory map but not  a  listing  of  the
         nonfatal multiply-defined symbols on the standard output.
    
         Once an object file is extracted from an  archive  file  and
         linked  into  an  incremental  executable,  that object file
         remains in the executable, even if all references to it  are
         removed, until the next complete relink (which can be forced
         by deleting the binary).
    
    FILES
         lliibbx..aa                   libraries
         aa..oouutt                    output file
         LIBPATH                  usually //uussrr//ccccss//lliibb:://uussrr//lliibb
    
    SEE ALSO
         cc(1), CC(1), ld(1), exec(2),  elf(3E),  end(3C),  a.out(4),
         ar(4) f77(1)
    
         Linker and Libraries Guide
    
         Sun WorkShop:  Debugging a Program With dbx manual
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру