ld_pa man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

ld_pa(1)							      ld_pa(1)

NAME
       ld_pa: ld - link editor for PA-RISC systems

SYNOPSIS
   Common Options
       search]	filename]  epsym]  symbol]...  x | file]...  library] outfile]
	      symbol]...  symbol]...   bind]  offset]  lib]  dir]...   offset]
	      file]  file] func_sym_x=func_sym_y]...  path_list] file] symbol]
	      symbol]  shared_library_path]  function]	size]	internal_name]
	      function]	 file]	shared_library_path]  size]  name] size] size]
	      flag] symbol] dir] n] size]

   PA-RISC 32-Bit (SOM) Options
       name] n] oldpath:newpath] pathname] filename] size] flag]

   PA-RISC 64-Bit (ELF) Options
       filename]  bucketsizetype]  symbol]...	percentage]  symbol]...	  sym‐
	      bol]...  pagesize] pagesize] type]

   Remarks
       This  manpage  describes on PA-RISC systems.  For on Integrity systems,
       see ld_ia(1).

DESCRIPTION
       takes one or more object files or libraries as input and combines  them
       to produce a single (usually executable) file.  In doing so it resolves
       references to external symbols, assigns final addresses	to  procedures
       and  variables,	revises	 code  and  data  to  reflect new addresses (a
       process called "relocation"), and updates  symbolic  debug  information
       when present in the file.

       By  default,  produces  an executable file that can be run by the HP-UX
       loader (see exec(2)).  Alternatively, the linker can generate  a	 relo‐
       catable	file  that  is suitable for further processing by (see below).
       It can also generate a shared library (see below).   The	 linker	 marks
       the  output  file  non-executable if there are any duplicate symbols or
       any unresolved external references remain.

       may or may not generate an output file (see option) if any other errors
       occur during its operation.

       recognizes three kinds of input files:
       ·  Object  files	 created  by the compilers, assembler, or linker (also
	  known as files),
       ·  Shared libraries created by the linker, and
       ·  Archives of object files (called archive libraries).

       An archive library contains a table of all the externally-visible  sym‐
       bols from its component object files.  (The archiver command ar(1) cre‐
       ates and maintains this index.)	uses this table to resolve  references
       to external symbols.

       processes  files	 in the same order as they appear on the command line.
       It includes code and data from an archive library element if  and  only
       if  that object module provides a definition for a currently unresolved
       reference within the user's program  or	shared	library	 or  dependent
       shared library.

       It is common practice to list libraries following the names of all sim‐
       ple object files on the command line.

       Code and data from shared libraries is never copied into an  executable
       program.	 The dynamic loader on 32-bit links is invoked at startup time
       by the startup file if a	 program  uses	shared	libraries.   Identical
       copies of can be found in either or

       For 64-bit mode, the dynamic loader is and is invoked by exec for those
       programs that use shared libraries.  is not required  in	 shared	 bound
       links.

       The  dynamic  loader  attaches each required library to the process and
       resolves all symbolic references between the program and its libraries.

       NOTE: For information on linking secure programs with shared libraries,
       see the section below.

       The text segment of a shared library is shared among all processes that
       use the library; each process using the library receives its  own  copy
       of  the data segment.  If has been run on the executable that loads the
       library, the text segment of a shared library is mapped	privately  for
       each  process  running the executable.  recursively examines the depen‐
       dencies of shared libraries used by a program that was  created	by  If
       does  not  find a supporting shared library at the path recorded in the
       dependency list of a shared library,  and  if  the  dependency  is  the
       result  of  an  argument used when the shared library was created, will
       search all the directories that it would search for a library that  was
       specified with (see and

   Environment Variables
       Arguments  can be passed to the linker through the environment variable
       as well as on the command line.	The  linker  gets  the	value  of  and
       places its contents before any arguments on the command line.

       The  environment variable defines the full execution path for the debug
       preprocessor The default value is invokes on its output	file  if  that
       file is executable and contains debug information.  To defer invocation
       of until the first debug session, set to

       The environment variable can be used to specify default directories  to
       search for library files.  See the option.

   Common Options
       The  common options are listed first, followed by the options supported
       only in a 32-bit linker, and then  the  options	only  supported	 in  a
       64-bit linker.

	      Specify whether shared or archive libraries are searched
			     with  the	option.	 The value of search should be
			     one of or This option can appear more than	 once,
			     interspersed   among   options,  to  control  the
			     searching for each library.  The  default	is  to
			     use  the  shared  version	of a library if one is
			     available, or the archive version if not.

			     If	 either	 or  is	 active,  only	the  specified
			     library type is accepted.

			     If	 is active, the archive form is preferred, but
			     the shared form is allowed.

			     If is active, the shared form  is	preferred  but
			     the archive form is allowed.

	      Create a shared library rather than a normal executable file.
			     Object files processed with this option must con‐
			     tain (PIC).  See the discussion of PIC in	cc(1),
			     CC(1) (part of the optional C++ compiler documen‐
			     tation), f77(1), pc(1), as(1), and

	      Read	     options from a file.  Each line contains zero  or
			     more  arguments  separated	 by white space.  Each
			     line in the file, including the last  line,  must
			     end   with	 a  newline  character.	  A  character
			     implies that the rest of the line is  a  comment.
			     To escape a character, use the sequence

	      Force  definition of "common" storage; that is, assign addresses
	      and
			     sizes, for output.	 This option also strips  COM‐
			     DAT information from the output.

	      This  allows the linker to create a program which can use shared
	      libraries.
			     This is the default for 64-bit  links  unless  is
			     used.   In	 32-bit	 mode,	the  linker  creates a
			     static  executable	 if  there   are   no	shared
			     libraries on the link line.

	      Set  the	default	 entry point address for the output file to be
	      that of
			     the symbol epsym.	(This option only  applies  to
			     executable files.)

	      Prior to writing the symbol table to the output file,
			     mark this name as "local" so that it is no longer
			     externally visible.  This ensures that this  par‐
			     ticular entry will not clash with a definition in
			     another file during future processing by

			     More than one symbol can be specified,  but  must
			     precede each one.	If used when building a shared
			     library or	 program,  this	 option	 prevents  the
			     named  symbol  from  being visible to the dynamic
			     loader.

	      Search a library
			     or where x is one or more characters.   The  cur‐
			     rent  state  of the option determines whether the
			     archive  or  shared  version  of  a  library   is
			     searched.

			     Because  a	 library  is searched when its name is
			     encountered, the placement of a  is  significant.
			     By	 default,  32-bit libraries are located in and
			     64-bit libraries are located in

			     If the environment variable  is  present  in  the
			     user's  environment,  it  should contain a colon-
			     separated list of directories to  search.	 These
			     directories  are  searched instead of the default
			     directories, but options can still be used.

			     If a program uses shared libraries,  the  dynamic
			     loader  for  32-bit or for 64-bit will attempt to
			     load each library	from  the  same	 directory  in
			     which  it	was  found  at	link time (see the and
			     options).

	      Search the library specified.
			     Similar to the option except the current state of
			     the  option  is  not important.  The library name
			     can be any valid filename.	 (Note	that  previous
			     releases  required	 that the library name contain
			     the prefix and end with a suffix of or

	      This option produces a load map on the standard output.

	      This option is accepted but ignored by the 64-bit
			     Generate an executable output file with file type
			     This is the default.  This option is incompatible
			     with and

	      This option forces the linker to create a	 fully	archive	 bound
	      program.

	      Produce an output object file named
			     outfile if outfile is not specified).

	      This option is ignored for 64-bit links.
			     Generate an executable output file with file type
			     This option is incompatible with and

	      Retain relocation information in the output file for  subsequent
	      re-linking.
			     The  command  does	 not report undefined symbols.
			     This option cannot be used when building a shared
			     library  (	 or in conjunction with or incremental
			     linking options.

	      Strip the output file of all symbol table, relocation,
			     and debug support information.  This might impair
			     or	 prevent  the  use of a symbolic debugger or a
			     profiler on the resulting program.	  This	option
			     is	 incompatible  with (The strip(1) command also
			     removes this information.)	 This option is incom‐
			     patible  with  (The  incremental linking requires
			     the parts of the output  load  module  which  are
			     stripped out with option.)

	      Print a trace (to standard output) of each input file as
			     processes it.

	      Enter	     symbol  as	 an undefined symbol in the symbol ta‐
			     ble.  The resulting unresolved reference is  use‐
			     ful  for  linking	a  program  solely from object
			     files in a library.  More than one symbol can  be
			     specified, but each must be preceded by

	      Display verbose messages during linking.
			     On	 32-bit	 systems,  for each module loaded, the
			     linker indicates which symbol caused that	module
			     to	 be  loaded.   For  64-bit systems, the linker
			     indicates	this  information  only	 for   modules
			     loaded from archive libraries.

	      Strip local symbols from the output file.
			     This  reduces the size of the output file without
			     impairing the effectiveness of object file utili‐
			     ties.   This  option  is  incompatible  with  the
			     option.  This option  is  incompatible  with  the
			     option.   The  incremental	 linking  requires the
			     parts  of	the  output  load  module  which   are
			     stripped out with the option.

			     NOTE:  Use	 of might affect the use of a debugger
			     or profiler.

	      Indicate each file in which
			     symbol appears.  More  than  one  symbol  can  be
			     specified, but each must be preceded by

	      Arrange for run-time dereferencing of null pointers to produce a
			     signal.  (This is the complement of the option.)

	      Select  run-time	binding	 behavior  of  a  program using shared
	      libraries or
			     the  binding  preference  in  building  a	shared
			     library.  The most common values for bind are:
			     Create  a	direct	link between symbol references
			     and shared libraries by recording the name of the
			     resolved shared library during symbol resolution.
			     This  information	is  used  during  runtime   to
			     quickly resolve symbols without searching through
			     all currently loaded libraries.

				    implicitly turns on symbolic binding  (see
				    and disables dependent shared library pro‐
				    cessing.

				    Direct binding can be disabled during run‐
				    time by setting the environment variable.

			     Bind addresses on first reference
				    rather  than  at  program  start-up	 time.
				    This is the default.

			     Mark the shared library so that it behaves as  if
			     loaded with
				    flag to This does not affect the dependent
				    shared libraries.

				    NOTE: The binding mode is  currently  sup‐
				    ported only for 64-bit applications.

			     Bind  addresses  of  all symbols immediately upon
			     loading the library.
				    Commonly followed by  to  allow  procedure
				    calls  that	 cannot be resolved at program
				    start-up to be resolved  on	 first	refer‐
				    ence.

				    Since suppresses messages about unresolved
				    symbols, also  specify  to	display	 those
				    messages.

				    See the example below.

			     Only  record  direct  bind	 information to shared
			     libraries marked for
				    lazy loading.  See

			     Mark the  shared  library	so  that  an  explicit
			     unload using
				    or	 returns   success   silently  without
				    detaching  the  shared  library  from  the
				    process.  Subsequently, the shared library
				    handle is valid only for It stays  invalid
				    for and until the next explicit load using
				    or

			     Disallow direct binding.
				    Only a "direct hint" is recoreded for ref‐
				    erences to libraries marked for lazy load‐
				    ing.  This is the default behavior.

			     If also using
				    for code symbols that could not  be	 bound
				    at	program	 startup,  defer  binding them
				    until they are referenced.	 See  descrip‐
				    tion of above.

				    Since suppresses messages about unresolved
				    symbols, also  specify  to	display	 those
				    messages.

			     Causes  the  search for a symbol definition to be
			     restricted to
				    those symbols that were visible  when  the
				    library was loaded.

			     Used  only	 when  building a shared library (with
			     the
				    option), this option causes all unresolved
				    symbols  inside  a	library to be resolved
				    internally if possible.  By default, unre‐
				    solved  symbols  are  resolved to the most
				    visible definition in the library or  out‐
				    side the library.

				    NOTE:  Do not use this option while build‐
				    ing shared libraries on Integrity systems.
				    Use the option

			     Display verbose messages when binding symbols.
				    This  is the default except when is speci‐
				    fied.  In that case,  must	be  explicitly
				    specified to get verbose messages.

			     See the option or the manual for more information
			     on the uses of binding modes.

	      Set the origin (in hexadecimal) for the data segment.

			     When used with the option, if you change the off‐
			     set  after	 the  initial  incremental  link,  the
			     linker performs an initial incremental link auto‐
			     matically.

	      Mark all symbols defined by a program for export
			     to	 shared	 libraries.   In a 32-bit link or mode
			     64-bit link, marks only those  symbols  that  are
			     actually  referenced  by a shared library seen at
			     link time.	 In a 64-bit  link,  all  symbols  are
			     exported  by default, so is not necessary to make
			     symbols visible.  However, it has	an  additional
			     side  effect  of identifying all exported symbols
			     as necessary, so that they will  not  be  removed
			     when using dead code elimination

	      Force load all member objects of the archive library
			     lib.  If you do not use the linker only loads the
			     needed archive members from lib.  This option  is
			     useful  for creating a shared library from an ar‐
			     chive library (if the member  objects  are	 posi‐
			     tion-independent  code), or when you need to load
			     archive member  that  define  symbols  needed  by
			     shared libraries.

			     You can specify more than one library on the com‐
			     mand line	with  multiple	option-library	pairs;
			     that  is,	each  library you specify must be pre‐
			     ceded by the option.

	      Strip all unloadable data from the output file.
			     This option is  typically	used  to  strip	 debug
			     information.

	      Instrument  the  code to collect profile information upon execu‐
	      tion.
			     The profile data gathered during  program	execu‐
			     tion  can be used in conjunction with the option.
			     32-bit programs linked with  this	option	should
			     use  the  startup	file This option should not be
			     used with the or options.

	      Search for     or in dir before looking  in  default  locations.
			     More  than	 one  directory	 can be specified, but
			     each must be preceded by The option is  effective
			     only  if  it  precedes  the option on the command
			     line.

	      Turn on linker optimizations.
			     Currently the optimizations include the  elimina‐
			     tion of unnecessary instructions from the code in
			     the  executable  file  (32-bit  only),  and   the
			     removal of dead procedures.

			     is passed to the linker by the compilers when the
			     compiler option is selected.

			     This option is incompatible with the option.

			     For more details on linker optimizations refer to
			     the option or the manual.

	      Examine the data file produced by an instrumented program
			     (see  the	option) to perform profile based opti‐
			     mizations on the code.  This option should not be
			     used with the or options.

	      Ignored for 64-bit links.
			     Generate an executable output file with file type
			     or depending on whether or is specified.  This is
			     the default.  This option is incompatible with

	      Set  the	origin (in hexadecimal) for the text (i.e., code) seg‐
	      ment.

			     When used with the option, if you change the off‐
			     set  after	 the  initial  incremental  link,  the
			     linker performs an initial incremental link auto‐
			     matically.

	      In 32-bit mode, save the load data and relocation information
			     in	 temporary  files  instead of in memory during
			     linking.  This option reduces the virtual	memory
			     requirements  of  the linker.  If the environment
			     variable is set, the temporary files are  created
			     in the specified directory, rather than in

			     In	 64-bit mode, this option is equivalent to the
			     option.

	      Output a message giving information about the version of
			     being used.

	      Allow run-time dereferencing of null pointers.
			     See the discussions of  and  pointers  in	cc(1).
			     (This is the complement of the option.)

	      Reorder debuggable functions.
			     Ordinarily	 does not reorder functions from files
			     with debugging  information,  because  reordering
			     renders  them  non-debuggable.  This option over‐
			     rides this and reorders the functions.   Reorder‐
			     ing  is based on link order file produced from by
			     default.  If you specify the option,  the	linker
			     uses  the	specified  link order file, instead of
			     for reordering.  This option is incompatible with

	      Save link order file generated by
			     during linking with  option  into	user-specified
			     file.   This  option  is  incompatible  with  the
			     option.

	      Indicate to the linker to use the specified file for the	linker
	      file
			     instead  of  generating  it  using This option is
			     incompatible with the option.

	      Instruct the linker to  replace  the  function  symbol  with  an
	      alternate function
			     symbol  in	 shared	 library  and  executable file
			     links.

			     The option	 supports  function  symbol  aliasing.
			     Often  user  programs have functions that exactly
			     match  the	 functionality	of  optimized  library
			     functions	with  a	 different  name.  These user-
			     defined functions are usually  called  frequently
			     in	 the  program.	 With the option, you can make
			     significant gains in performance by replacing all
			     references to a user-defined function with refer‐
			     ences to a tuned  library	function  during  link
			     time, thus optimizing these functions with just a
			     relink.

			     Both functions must define the  same  number  and
			     type  of  parameters,  and	 return a value of the
			     same type.	 If they do not match, the results are
			     unpredictable, and the linker does not generate a
			     warning message.

			     Example:

			     In the example, the linker	 replaces  all	refer‐
			     ences  to the function symbol func_sym1 with ref‐
			     erences  to  func_sym2.   The  func_sym2	symbol
			     should  be an normal unaliased symbol.  It cannot
			     appear on the left-hand side of  "="  on  another
			     option.

			     You  can  specify	more  than one function symbol
			     alias on the command line with  multiple  option-
			     symbol pairs, that is, each symbol pair you spec‐
			     ify must be preceded by the option.

	      Allows multiple symbol definitions.
			     By	 default,  multiple  symbol  definitions  that
			     occur  between relocatable objects will result in
			     a fatal error condition.  This option  suppresses
			     the  error	 condition and allows the first symbol
			     definition to be taken.

	      Specify a colon-separated list of directories
			     (embedded path) to be searched  at	 program  run-
			     time  to  locate  shared  libraries needed by the
			     executable output file that were  specified  with
			     either the or option.

			     An	 argument  consisting  of a single colon indi‐
			     cates that should build the list  using  all  the
			     directories specified by the option and the envi‐
			     ronment variable (see the option).

			     For 32-bit links, if multiple options  appear  on
			     the   link	 line,	the  FIRST  one	 specified  is
			     recorded.	Also, a double colon is interpreted as
			     location  in  which  libraries  are found at link
			     time.

			     For 64-bit links, the LAST of multiple options is
			     recorded  in  the output file by default.	Use to
			     change this default  behavior.   A	 double	 colon
			     does  not	have special meaning (i.e., treated as
			     NULL entry).

	      This option is ignored for 32-bit links.
			     This option turns on compatibility	 mode  in  the
			     linker  —	64-bit	links mimic behavior of 32-bit
			     links).

	      Copy objdebug space.

	      Used together with the
			     option, this option specifies that file should be
			     used  as  the profile database file.  The default
			     value is See the discussion  of  the  environment
			     variable  for  more  information.	This option is
			     incompatible with the option.

	      When building a shared library or program,
			     mark the symbol for export to the dynamic loader.
			     Only  symbols  explicitly	marked	are  exported.
			     When building a shared library, calls to  symbols
			     that are not exported are resolved internally.

	      This option is similar to the
			     option  in	 that  it  exports a symbol.  However,
			     unlike the option, does not alter the  visibility
			     of any other symbol in the file.

			     In	 a 32-bit link or mode 64-bit link, it has the
			     effect of exporting the specified symbol  without
			     hiding  any  of  the symbols exported by default.
			     In	 a  64	link,  all  symbols  are  exported  by
			     default,  so  is  not  necessary to make a symbol
			     visible.  However, it  has	 the  additional  side
			     effect of identifying the symbol as necessary, so
			     that it will not be removed when using dead  code
			     elimination  Of  course, still retains its export
			     behavior if an option such as is also given.

	      Instructs the linker to run the fastbind tool
			     on the executable	it  has	 produced.   The  exe‐
			     cutable  should  be linked with shared libraries.
			     For  more	details	 refer	to  fastbind(1),   the
			     option, or the manual.  This option is incompati‐
			     ble with the option.

	      Pass the	     option to the fastbind tool.   For	 more  details
			     refer  to fastbind(1), the option, or the manual.
			     This option is incompatible with the option.

	      Enables the shared library filter mechanism, which allows you
			     divide a large library into a "filter"  and  sev‐
			     eral  "implementation"  libraries	for more effi‐
			     cient   organization   of	  shared    libraries.
			     shared_library_path specifies the location of the
			     filter library.  See the for more information.

	      Specify the terminator (finalizer) functions to be invoked in
			     forward order, the	 order	the  functions	appear
			     left  to right on the command line.  The termina‐
			     tor functions are called in reverse of the depth-
			     first order of initializers.

			     Use  this option while building a shared library,
			     an incomplete executable,	or  fully  bound  exe‐
			     cutable.	Functions  specified  with this option
			     should take no arguments and return nothing (void
			     functions).   Terminators	are  invoked  only  if
			     calls They are not called if calls

			     Do not use with the option.  (The linker  ignores
			     the option.)

			     You can specify more than one terminator function
			     on the command line with  multiple	 option-symbol
			     pairs, that is, each function you specify must be
			     preceded by the option.

			     For more details on the terminator function,  use
			     the option or see the

	      Enable the global symbol table hash mechanism,
			     used  to  look  up values of symbol import/export
			     entries.  The and related options provide perfor‐
			     mance  enhancements  through use of global symbol
			     table which improves searching for exported  sym‐
			     bols.   See  dld.sl(5)  and the for more informa‐
			     tion.

	      Request a particular hash array size using the global symbol
			     table hash mechanism.  The default value is 1103.
			     The value can be overridden at runtime by setting
			     the environment variable to the value prime  num‐
			     ber.  You can set the value using size file.

	      When building a shared library, record
			     internal_name  as	the name of the library.  When
			     the library is used to  link  another  executable
			     file  (program  or	 shared	 library), this inter‐
			     nal_name is recorded in the library list  of  the
			     resulting	output file instead of the file system
			     pathname of the input shared library.

			     That is, if is not used, the shared library  does
			     not  have an internal name and when an executable
			     is built with  the	 shared	 library,  the	linker
			     records the library name that it looks at.

			     If	 internal_name	is a fully-qualified pathname,
			     it is recorded in the library list	 of  any  exe‐
			     cutable  file  it is subsequently linked against.
			     internal_name is a relative pathname or no direc‐
			     tory component was specified, internal_name is to
			     the file system directory component of the	 input
			     shared  library  in  the library list of any exe‐
			     cutable file it is subsequently linked against.

			     If more than one +h option is seen	 on  the  link
			     line, the first one is used and a warning message
			     is emitted.

	      Starts the help window utility
			     which comes with some HP compilers.  (You must be
			     running  the X window system and your environment
			     variable must be set to the name of your worksta‐
			     tion or X terminal.)  For more information, refer
			     to	 the  manual.	See  manuals(5)	 for  ordering
			     information.

	      Specify  the  initializer	 functions  to	be  invoked in reverse
	      order, the order
			     the functions appear right to left on the command
			     line.   Initializers  are	called	in depth-first
			     order.  For example, when	a  shared  library  is
			     loaded,  the  initializers	 in  all its dependent
			     libraries are called first.

			     Use this option while building a shared  library,
			     an	 incomplete  executable,  or  fully bound exe‐
			     cutable.  Functions specified  with  this	option
			     should take no arguments and return nothing (void
			     functions).   Terminators	are  invoked  only  if
			     calls They are not called if calls

			     Do	 not use with the option.  (The linker ignores
			     the option.)

			     You can specify more than one  initializer	 func‐
			     tion  on  the  command line with multiple option-
			     symbol pairs, that is, each function you  specify
			     must be preceded by the option.

			     For more details on the initializer function, use
			     the option or see the

	      enables the feature to use
			     for reading the contents of shared libraries dur‐
			     ing  linking.   This  is  the  default  behavior.
			     Linking is usually much faster when input	shared
			     libraries	are  mmapped,  as compared to buffered
			     reading from disk.

			     disables the mmap feature and  tells  the	linker
			     not   to  mmap  text  segments  of	 input	shared
			     libraries.	 The linker uses buffered disk i/o  to
			     access  information  from	the  text  segments of
			     input shared libraries.

			     NOTE: Use only in	cases  where  the  link	 fails
			     because  of  mmap failures due to lack of memory,
			     as it can significantly increase  the  link  time
			     due to disk I/O.

	      Change the     path  to  use  the	 argument as the "interpreter"
			     program instead of the

	      Direct the linker to only create an executable if there were
			     no errors encountered during the link.  If	 there
			     were  errors  found  (system errors or unresolved
			     references), the output file will be removed.

	      Enables shared library segment merging feature.
			     See description of shared library segment merging
			     in	 the This enables all the data segments of the
			     shared libraries loaded at program startup to  be
			     merged.   This  increases run-time performance by
			     allowing the kernel to use larger size page table
			     entries.

	      Enables the feature to use
			     for writing the output data.  This is the default
			     behavior.	Linker enabled with is much faster.

	      Causes the linker to load all object modules before searching
			     any  archive  or  shared  libraries.    Then   it
			     searches  the archive and shared libraries speci‐
			     fied on the command line in left to right	order.
			     Repeats the left to right search of the libraries
			     on the command  line  until  there	 are  no  more
			     unsatisfied  symbols, or the last search added no
			     new definitions.  This option is  useful  if  two
			     libraries	are  specified that have symbol depen‐
			     dencies on each other.

	      Do not copy objdebug space.
			     Use this option (with object files	 on  the  link
			     line) to suppress the default behavior of copying
			     LINKMAP space to the executable file.

	      Override the   compiler option, and copy all  debug  information
			     to the executable file.

			     When  used	 with  leaves debug information in the
			     object files instead of copying it	 to  the  exe‐
			     cutable  file  at link time, resulting in shorter
			     link times and smaller executables.  The compile-
			     time default, copies the debug information to the
			     executable file.

			     When you specify  when  compiling,	 the  compiler
			     places  symbolic  debugging  information into the
			     object files.  By default, the linker calls which
			     compacts  this debug information and copies it to
			     the executable file.  When was  used  at  compile
			     time,  the linker leaves the debug information in
			     the object files.	To debug the executable	 file,
			     the  HP  WDB  debugger  must  have	 access to the
			     object files.  If you move the object files,  use
			     HP	 WDB's	command	 to  tell  it where the object
			     files are.	 The option reduces link time and  the
			     size  of  the  executable	file  by avoiding this
			     copying of debug information.

			     The compile-time default is If the linker detects
			     any  object  files	 that  were  compiled  with it
			     leaves the debug information in those files.  Any
			     object  files  not compiled with have their debug
			     information copied into the executable file.  You
			     can  leave debug information in some object files
			     and not in others.

			     When archive members are not compiled  with  (and
			     they  contain  debug  information,	 that is, they
			     were compiled with the debug information from the
			     archive  members  is  copied into the by default.
			     The linker does not copy debug  information  from
			     shared  libraries	into the regardless of whether
			     they are compiled with or

			     Use the option when linking  to  explicitly  tell
			     the  linker  to copy all debug information to the
			     executable file, even from files compiled with

	      Disables the shared library segment merging feature.
			     This is the default.

	      Disables the   feature and uses the normal buffering  method  to
			     write into the output file.  Do not use unless in
			     cases like the system has very low memory and the
			     linker fails because of this.

	      Ignore debug information from non-objdebug objects or
			     archives and proceed in mode.  This option can be
			     passed from the C or C++ compiler command line as
			     If you are debugging only files compiled with the
			     option, can improve link time by instructing  the
			     linker to bypass the processing of debug informa‐
			     tion from files compiled with  With  the  option,
			     the linker suppresses the call to

	      (Use only before the
			     option  or	 the name of a shared library.)	 Cause
			     the linker to add before the shared library  name
			     in	 the  shared  library  list.   At runtime, the
			     dynamic loader determine the current directory of
			     the  parent module (shared library or executable)
			     and replaces for that directory name.

			     Example:

			     While the option is  available,  the  recommended
			     way  to  specify is in the embedded path with the
			     option, for example,

			     For more details on use the option or see the

	      Request a particular virtual memory page	size  that  should  be
	      used for data.
			     Sizes of and are supported.  A size of allows the
			     kernel to choose what page size should  be	 used.
			     A	size  of will result in using the largest page
			     size available.  The actual page size may vary if
			     the requested size cannot be fulfilled.

	      Used together with the
			     option, this option specifies that name should be
			     used to name the dataset  corresponding  to  this
			     program  when writing profile data into the data‐
			     base file.	 The default look-up name used is  the
			     name of the program as obtained from at runtime.

			     Used together with the option, this option speci‐
			     fies that name should be used as the look-up name
			     (dataset  name as mentioned above) in the profile
			     database file.  The default is  the  basename  of
			     the output file (specified by the option).

			     This option is incompatible with the option.

	      Request a particular virtual memory page size that
			     should  be used for instructions.	See the option
			     for additional information.

	      Controls the size of profiling counters.
			     The acceptable value for this variable is	16  or
			     32.   A  warning is issued if the value specified
			     is other than 16 or 32.  The default value of the
			     counter  is 16, which is used if a valid value is
			     not specified.  Value at linktime can be overrid‐
			     den  by  using  environment  variable.   See  the
			     description in gprof(1) for more details.

	      This option turns on the linkage table protection mode.
			     When this option is used, the linker  aligns  the
			     linkage  table  within page boundaries so that no
			     other data resides in the same page.  At runtime,
			     the pages containing the linkage table are marked
			     READ_ONLY.

			     This option turns on immediate binding. For  more
			     information  about immediate binding, see binding
			     under option

			     The options incompatible with  this  option  are:
			     and

	      Indicates that at run-time, the shared library loader
			     can  use  the  environment	 variable  and (64-bit
			     only) to locate shared libraries  needed  by  the
			     executable	 output	 file that were specified with
			     either the or option.  The environment  variables
			     should be set to a colon-separated list of direc‐
			     tories.  If both and  are	used,  their  relative
			     order  on	the  command line indicates which path
			     list will be searched first (see the option).

	      This option is ignored for 32-bit links.
			     Turns on standard mode, which is the  default  in
			     64-bit  mode.   The  options  turned on with this
			     option is: Options turned	off  or	 ignored  when
			     this option is specified are: and

	      This option is accepted but ignored by the 64-bit
			     Show  more detail for any warnings about compati‐
			     bility issues.  By default, only a terse  message
			     is	 printed.   See	 the section below for further
			     details.

	      This option is accepted but ignored by the 64-bit
			     Enable [disable] printing warnings about compati‐
			     bility issues between systems.  This includes any
			     functionality  which   may	  change   in	future
			     releases.	 The  default is See the section below
			     for further details.

	      Enable [disable] printing a list of unsatisfied
			     symbols used by shared  libraries.	  The  default
			     behavior  in  shared  library  build  is  and the
			     default in executable build is  Some  unsatisfied
			     symbols  reported	by the linker are not required
			     at run time because the modules  which  reference
			     the symbols are not used.

	      Specify how the environment for floating-point
			     operations	  should  be  initialized  at  program
			     start-up.	By default, modes are specified by the
			     IEEE floating-point standard: all traps disabled,
			     gradual underflow, and rounding to nearest.

			     The option supports the  following	 modes	(upper
			     case flag enables; lower case flag disables):

			     Trap on invalid floating-point operations

			     Trap on divide by zero

			     Trap on floating-point overflow

			     Trap on floating-point underflow

			     Trap  on  floating-point  operations that produce
			     inexact results.

			     Enable sudden underflow (flush to zero) of denor‐
			     malized values.

			     Enable rounding upward (toward +Infinity).

			     Enable rounding downward (toward -Infinity).

			     Enable rounding toward zero (truncate, chop).

			     Enable rounding to nearest (the default).

				       NOTE:  Enabling	sudden underflow is an
				       undefined    operation	 on    PA-RISC
				       1.0-based systems, but it is defined on
				       all  subsequent	versions  of  PA-RISC.
				       Selecting   this	 flag  enables	sudden
				       underflow only if it  is	 available  on
				       the processor being used at run-time.

			     More  than one mode can be specified with a comma
			     separated list.  For example:
			     specifies sudden underflow, trapping on  overflow
			     and  invalid, and rounding toward zero.  The com‐
			     mas and the space between and the	modes  may  be
			     omitted.  Thus, is equivalent to

			     To dynamically change these settings at run-time,
			     see  fesettrapenable(3M),	 fesetflushtozero(3M),
			     and fesetround(3M).

	      Specify the name of the initializer function
			     when building a shared library.  A shared library
			     may have multiple initializers  specified.	  Ini‐
			     tializers are executed in the order that they are
			     specified.	 You can specify more  than  one  ini‐
			     tializer,	but  each must be preceded by For more
			     details on the initializer function, refer to the
			     option or the manual.

	      Enable [disable] fast access to global data.
			     The  linker rearranges the data to further reduce
			     the number of instructions in the executable.

			     This optimization may reveal some subtle program‐
			     ming  errors  related  to	assumptions about data
			     layout.  This optimization can occur at optimiza‐
			     tion  levels 2, 3 and 4.  The default is at opti‐
			     mization levels 2	and  3,	 and  at  optimization
			     level 4.

			     Using  the option in the presence of debug infor‐
			     mation generates a warning message and can	 cause
			     corruption of the debug information.  Avoid using
			     with the option.

			     This option is accepted but ignored by the 64-bit

	      Enable [disable] the elimination of procedures and data that are
	      not
			     referenced by the application.  The default is

			     Procedure	and  data elimination can occur at any
			     optimization level,  i  ncluding  level  0.   The
			     elimination  occurs  on  a per section basis; the
			     section is removed only if all procedures/data in
			     the  section  are unreferenced.  For more details
			     refer to the option or the manual.	  This	option
			     is incompatible with the option.

			     Note  that compilers may set for higher optimiza‐
			     tion levels; refer to compiler documentation  for
			     detail.

	      Specify the name of the directory to use as the reuse repository
	      for
			     the object code reuse  feature.   This  directory
			     holds  the	 compiled object files for reuse.  dir
			     can be an absolute or relative path to  directory
			     where  you invoked the linker.  The option short‐
			     ens link time  by	not  recompiling  intermediate
			     object code to object code when using or profile-
			     based optimization.

	      Instructs the interprocedural optimizer driver to pass the first
			     n percent of the object files to the  high	 level
			     optimizer	for interprocedural optimizations such
			     as inlining.

	      Instructs the interprocedural optimizer driver to
			     pass the first k routines to the high level opti‐
			     mizer  for interprocedural optimization where the
			     size of k routines are approaching but less  than
			     size.

	      Instructs the interprocedural optimizer driver to
			     compile the routines not included in the +O4 list
			     to be compiled at +O3.

	      Meaningful only on PA-RISC 2.0 architecture, this option
			     sets the branch prediction bit in the output exe‐
			     cutable file's auxiliary header.

   PA-RISC 32-Bit Options
	      This option specifies incremental loading.
			     Linking  is arranged so that the resulting object
			     can be read into an  already  executing  program.
			     The  argument  name specifies a file whose symbol
			     table provides the basis for defining  additional
			     symbols.	Only  newly linked material is entered
			     into the text and data portions of	 but  the  new
			     symbol  table reflects all symbols defined before
			     and after the incremental load.

			     Also, the option can be used in conjunction  with
			     which allows the newly linked segment to commence
			     at the corresponding address.  The default start‐
			     ing address is the old value of

			     The option is incompatible with and

			     Also  note	 that a program that dynamically loads
			     code with cannot use shared libraries.

			     See the option or the manual for a description of
			     this option.

	      Set the maximum parameter-checking level to
			     n.	  The  default maximum is 3.  See the language
			     manuals for the meanings of the  parameter-check‐
			     ing level.

	      Don't emit unwind tables.
			     Do	 not use this option if your compiler or tools
			     require unwind tables.

	      Disable the linker feature that translates some calls to
			     to calls to

	      Generate an executable output file with file type
			     This option is incompatible with and This	option
			     causes  the data to be placed immediately follow‐
			     ing the text, and makes the text writable.	 Files
			     of this type cannot be shared.

	      Generate an Initial Program Loader (IPL) auxiliary header
			     for the output file, instead of the default HP-UX
			     auxiliary header.

	      Replace the recorded path for a shared
			     library in the In 32-bit mode, records the	 abso‐
			     lute  path names of any shared libraries searched
			     at link time  in  the  file.   When  the  program
			     begins execution, the dynamic loader attaches any
			     shared libraries that were searched at link time.
			     Although you can use the and/or linker options to
			     direct  the  dynamic  loader  to  directories  to
			     search  for  the  shared  libraries,  the dynamic
			     loader, as a last resort, searches for the shared
			     libraries in its absolute, recorded path in the

			     You can specify more than one shared library old‐
			     path:newpath, but each must be  preceded  by  the
			     option.

	      Specify the use of
			     pathname  as  the	code  generator	 for compiling
			     ISOMs to SOMs.  See  the  discussion  of  profile
			     based optimization in the for more information.

	      Display verbose messages regarding procedures which have been
			     removed  due  to dead procedure elimination.  The
			     symbol name, input object file, and the size  (in
			     bytes)  of	 the  deleted procedure are displayed.
			     The total size (in bytes) of the  deleted	proce‐
			     dures is also displayed.

	      Exports all the symbols in the file
			     filename.

	      Request  a  particular  number  of  buckets  per entry using the
	      global symbol
			     table hash mechanism.  The default	 value	is  3.
			     The value can be overridden at runtime by setting
			     the environment variable  to  the	value  number.
			     You can set the value using size file.

	      Disable SmartBind when binding a shared library.
			     With  this	 option enabled, the linker places all
			     symbols in the link into a single SmartBind  mod‐
			     ule  instead of placing each file in its own mod‐
			     ule.

	      Enable the plabel caching mechanism.
			     Use this option with the option.

			     This option is only effective with C++.   In  C++
			     applications, the dynamic loader needs to repeti‐
			     tively  access  information  (import  stub).   In
			     order  to	make  this  access faster, the dynamic
			     loader uses the global symbol table structure  to
			     also  contain  entries.  This behavior is enabled
			     when the flag is set in the  dl_header  structure
			     (enabled or

   PA-RISC 64-Bit Options
	      Preserve compiler generated relocation sections in output
			     file

	      Specify a mapfile that describes the output file memory map.

			     The  user	specified  mapfile  specifications are
			     permitted with the option.	 But  you  should  not
			     modify  the mapfile after the initial incremental
			     link.  If the mapfile is modified after the  ini‐
			     tial  link,  an  initial incremental link is per‐
			     formed automatically.

			     Please refer to guide for more information.  Also
			     see

	      Specify the    to	 optimize  the hash table size (number of hash
			     buckets).	The valid  values  for	bucketsizetype
			     are:
			     Sets  the number of hash buckets to half the num‐
			     ber of dynamic symbols in the library.

			     Sets the number of hash buckets  to  the  highest
			     power  of	2  that	 is  less  than	 the number of
			     dynamic symbols in the library.

			     Sets the number of hash buckets  to  the  largest
			     prime  number  that  is  less  than the number of
			     dynamic symbols in the library.  (This option  is
			     the default.)

	      When building a shared library, causes the linker to resolve all
	      references
			     to the specified symbol to the symbol defined  in
			     the library.  This option is similar to but oper‐
			     ates on a per symbol basis.

			     You can specify more than one symbol on the  com‐
			     mand line with multiple option-symbol pairs, that
			     is, each symbol you specify must be  preceded  by
			     the option.

			     symbol  can  also	be  a  regular expression that
			     matches multiple symbol names.   Regular  expres‐
			     sions are described in regexp(5).

	      Suppress all warnings.

	      Force storage allocation for hidden "common" symbols in
			     output.   This  is	 similar  to the option, which
			     allocates storage for all "common"	 symbols.   If
			     is specified in combination with the option, will
			     take precedence.

	      (Kernel virtual environment support only.)
			     Allow generation of dynamic relocations in	 read-
			     only  sections  such  as  and Normally the linker
			     emits an error message when a dynamic  relocation
			     is	 required in read-only sections.  See for more
			     information.

	      Does not flag errors if the resulting output file	 has  unsatis‐
	      fied symbols.
			     This  is  the  default  for relocatable links and
			     shared library builds.  Flags  an	error  if  the
			     resulting	output	file  has unsatisfied symbols.
			     This is the default for program files.

	      [Disable] Enable concatenation of search path specified
			     using

	      is the default.
			     Include any paths that are specified with in  the
			     embedded path, unless you specify the option.  If
			     you use only the path list specified by is in the
			     embedded path.

			     The  option  removes  all library paths that were
			     specified with the option from the embedded path.
			     The  linker  searches the library paths specified
			     by the option at link time.   At  run  time,  the
			     only  library  paths searched are those specified
			     by the environment variables  and	library	 paths
			     specified	by  the linker option, and finally the
			     default library paths.

	      loads all object files from archive
			     libraries.	 is  the  default  —  loads  only  the
			     required  object  files  from  archive libraries.
			     The mode that is selected, either	explicitly  or
			     by default, remains on until it is changed.

	      This  option  is	used  to  prevent  all	the symbols from being
	      exported unless
			     explicitly exported with the

	      Specify incremental linking.

			     If the output file does not exist, or if  it  was
			     created  without  the option, the linker performs
			     an initial incremental  link.   The  output  file
			     produced  is  suitable for subsequent incremental
			     links.  The incremental link option is valid  for
			     both executable and shared library links.

			     NOTE:  The HP WDB symbolic debugger only supports
			     debugging of incrementally	 linked	 load  modules
			     that you create with the compiler option enabled.
			     (The  HP  DDE  debugger  does  not	 support   the
			     option.)

			     To	 debug	incrementally  linked  binaries,  they
			     should be compiled and linked with both and

			     If you specify one of the following  incompatible
			     option  with  the	linker emits a warning message
			     and ignores the option.

			     · The option: create a relocatable object file.

			     · Strip options: and strip the output file.  (The
			       incremental  linking  requires the parts of the
			       output load module which are stripped out  with
			       these options.)

			     · Optimization options: file, name, and

			     The  following  options  are  compatible with the
			     option with limitations:

			     ·
			       Set the origin for the data and text  segments.
			       If  you	change	the  offset  after the initial
			       incremental link, the linker performs  an  ini‐
			       tial incremental link automatically.

			     ·
			       provide a non-default mapfile.  The user speci‐
			       fied mapfile specifications are permitted  with
			       the option.  But you should not modify the map‐
			       file after the initial  incremental  link.   If
			       the mapfile is modified after the initial link,
			       an initial incremental link is performed	 auto‐
			       matically.

	      Suppress incremental-linking related warnings.
			     By	 default,  the	linker issues all incremental-
			     linking related warnings.	This option is ignored
			     if used without or

	      Control the amount of padding
			     percentage the incremental linker allocates, rel‐
			     ative to sizes of object  file  structures	 being
			     padded.   By  default the linker allocates 25% of
			     padding space.  This option is  ignored  if  used
			     without or

	      Perform  an  initial  incremental link, regardless of the output
	      load
			     module.

			     In certain situations (for example, internal pad‐
			     ding  space  is exhausted) the incremental linker
			     is forced to perform an initial incremental link.
			     The  option  allows  you to avoid such unexpected
			     initial   incremental   links   by	  periodically
			     rebuilding the output file.

	      Used only when building a shared library.
			     This  creates  a  shared library that can be used
			     for interposition.	 When resolving references for
			     an	 application  with  direct binding information
			     (see  the	dynamic	 loader	 searches   interposer
			     libraries	 first.	   If  the  symbol  cannot  be
			     resolved to any interposing libraries, the direct
			     binding information is used.

	      Enable [disable] lazy loading of shared libraries.
			     Loading  of  shared  libraries  specified	as  is
			     deferred until a reference is made to  it	during
			     execution.

			     Dependent	libraries of shared libraries will not
			     be processed during link time,  unless  they  are
			     explicitly specified on the link line.

			     Lazy  loading  can be disabled at runtime by set‐
			     ting the environment variable.

	      (Kernel virtual environment support only.)
			     Create linker-generated symbols even if  building
			     a	shared library.	 The kernel with virtual envi‐
			     ronment support is built with the option which by
			     default  does not create linker-generated symbols
			     in shared libraries.  See for more information.

	      Pads the data segment with zeros, so that the data  segment  can
	      be mapped
			     with a single call to at runtime.	Normally, data
			     segments require one call for file-backed storage
			     and a second call for blank static storage (bss).
			     Use of this option	 increases  your  output  file
			     size.

	      This option tells the linker not to use the default memory map.
			     The  user	needs  to supply a mapfile through the
			     linker option.

	      Disables the default linker behavior of the
			     option to create the .dynhash  section  for  exe‐
			     cutables or shared libraries.  Use this option to
			     eliminate generation of pre-computed  hash	 table
			     information  for  a library or an executable that
			     is rarely	used  with  the	 global	 symbol	 table
			     lookup  scheme or for which the overhead of stor‐
			     ing pre-computed hash values is too high.

			     This option has no	 effect	 when  used  with  the
			     option.

	      Instructs the dynamic loader to not look at the
			     and  environment  variables  at runtime.  This is
			     turned on if is specified.	 (The dynamic  loader,
			     however,  uses  the environment variable with the
			     option.)  This is turned off by default or if  is
			     specified.	 See or Generally, this option is used
			     for secure programs (e.g.

	      Do not remove  symbol when  using	 dead  code  elimination  This
			     option  can be used for hidden symbols as well as
			     exported symbols.

			     You can specify more than one symbol on the  com‐
			     mand line with multiple option-symbol pairs, that
			     is, each symbol you specify must be  preceded  by
			     the option.

	      Used with the  option to allow procedures to be positioned inde‐
			     pendently.	 The default is to  merge  all	proce‐
			     dures into a single section.

	      When building a shared library with
			     causes the linker to exclude the specified symbol
			     from symbol resolution.

			     You can specify more than one symbol on the  com‐
			     mand line with multiple option-symbol pairs, that
			     is, each symbol you specify must be  preceded  by
			     the option.

			     symbol  can  also	be  a  regular expression that
			     matches multiple symbol names.   Regular  expres‐
			     sions are described in regexp(5).

	      Pads the data segment to a multiple of
			     pagesize with zeros.  This can improve page allo‐
			     cation, thus reduce TLB misses.

	      Pads the text segment to a multiple of
			     pagesize with zeros.  This can improve page allo‐
			     cation, thus reduce TLB misses.

	      Generates a zero page of 4K bytes at the beginning of the data
			     segment.	It  also  sets	the  default  starting
			     address	of     the     data	segment	    to
			     0x8000000000000000.  This option improves perfor‐
			     mance by reducing TLB misses by allowing the ker‐
			     nel to allocate bigger data pages.

	      Do not output the unwind table.
			     This  creates smaller executable sizes.  Use this
			     option if you do not need the  unwind  table  for
			     debugging or C++ exception handling.

	      Request  that  the  application  be  linked  for	profiling with
	      CXperf.

	      Produces verbose output about the link operation.
			     type can have the following values:
			     Dump info about each object file loaded.

			     Dump info about the size of the heap  used	 by  a
			     link.

			     Dump info about libraries searched.

			     Dump  info about sections that have been rejected
			     by the
				    option

			     Dump info about each input section added  to  the
			     output file.

			     Dump info about global symbols referenced/defined
			     from/in the input files.

			     Dumps all of the above info.
				    Same as

   Defaults
       Unless otherwise directed, names its output The option overrides	 this.
       Executable  output  files are of type The default state of is to search
       shared  libraries  if  available,  archive  libraries  otherwise.   The
       default bind behavior is

       The default value of the option is

       For 64-bit mode, is on by default.

   Incremental linking with ld (64-bit Mode ONLY)
       In  the	edit-compile-link-debug development cycle, link time is a sig‐
       nificant component.  The incremental linker (available through the  and
       can  reduce  the link time by taking advantage of the fact that you can
       reuse most of  the  previous  version  of  the  program	and  that  the
       unchanged object files do not need to be processed.

       The  incremental linker allows you to insert object code into an output
       file (executable or shared library) that you created  earlier,  without
       relinking  the  unmodified  object  files.  The time required to relink
       after the initial incremental link depends on the number of modules you
       modify.

       The linker performs the following different modes of linking:

       ·  normal  link:	 the  default operation mode in which the linker links
	  all modules.

       ·  initial incremental link: the	 mode  entered	when  you  request  an
	  incremental  link,  but the output module created by the incremental
	  linker does not exist, or it exists but the  incremental  linker  is
	  unable to perform an incremental update.

       ·  incremental  link:  the mode entered when you request an incremental
	  link, an output module created by the incremental linker exists, and
	  the incremental linker does not require an initial incremental link.

       Incremental  links  are usually much faster than regular links.	On the
       initial link, the incremental linker requires about the same amount  of
       time  that  a  normal link process requires, but subsequent incremental
       links can be much faster than a normal link.  A change  in  one	object
       file  in	 a moderate size link (tens of files, several megabytes total)
       normally is about 10 times faster than a regular link.  The incremental
       linker perform as many incremental links as allocated padding space and
       other constrains permit.	 The cost of  the  reduced  link  time	is  an
       increase in the size of the executable or shared library.

       The  incremental	 linker	 allocates padding space for all components of
       the output file.	 Padding  makes	 modules  larger  than	those  modules
       linked  by As object files increase in size during successive incremen‐
       tal links, the incremental linker can exhaust  the  available  padding.
       If  this occurs, it displays a warning message and does a complete ini‐
       tial incremental link of the module.

       When an object file changes, the incremental linker not	only  replaces
       the  content  of	 that  file  in the executable or shared library being
       linked, but also adjusts references  to	all  symbols  defined  in  the
       object  file  and referenced by other objects.  This is done by looking
       at relocation records saved in the incrementally linked	executable  or
       shared library.

       On  the initial incremental link, the linker processes the input object
       files and libraries in the same way as the normal link.	In addition to
       the  normal  linking  process, the incremental linker saves information
       about object files, global symbols, and relocations, and pads  sections
       in the output file for expansion.  On subsequent incremental links, the
       linker uses timestamps and file sizes to determine which	 object	 files
       have changed, and updates those modules.

       Under  certain conditions, the incremental linker cannot perform incre‐
       mental links.  When this occurs, the incremental	 linker	 automatically
       performs	 an  initial  incremental link to restore the process.	In the
       following situations, the  linker  automatically	 performs  an  initial
       incremental link of the output file:

       ·  Changed  linker command line, where the linker command line does not
	  match the command line stored in the output file.  (With the	excep‐
	  tions of the verbose and tracing options)

       ·  Any of the padding spaces have been exhausted.

       ·  Modules  have been modified by the or options or tools (for example,
	  strip(1)).  The incremental linking requires the parts of the output
	  load module which are stripped out with these options.

       ·  Incompatible	incremental linker version, when you run a new version
	  of the incremental linker on an executable created by an older  ver‐
	  sion.

       ·  New working directory, where the incremental linker performs an ini‐
	  tial incremental link if current directory changes.

       ·  Archive or shared libraries are  added/removed  to/from  the	linker
	  command line.

       ·  Objects are added/removed to/from the linker command line.

       See the Online Linker and Libraries User's Guide for more information.

       The  incremental linker searches an archive library if there are unsat‐
       isfied symbols.	It extracts all archive members satisfying unsats  and
       processes them as new object files.  If an archive library is modified,
       the linker replaces the modified archive library.

       An object file extracted from an archive library in the	previous  link
       remains	in  the	 output	 load module even if all references to symbols
       defined in the object file have been removed.  The linker removes these
       object files when it performs the next initial incremental link.

       In  an initial incremental link, the linker scans shared library symbol
       tables and resolves unsats the same way it would in a regular link.  In
       incremental  links,  the	 linker	 does not process shared libraries and
       their symbol tables at all and does not report shared  library  unsats.
       The  dynamic  loader  detects  them  at run time.  If any of the shared
       libraries on the command line was modified, the linker  reverts	to  an
       initial incremental link.

       Performance  of the incremental linker may suffer greatly if you change
       a high percentage of object files.

       The incremental linker may not link small programs much faster, and the
       relative	 increase  in  size of the executable is greater than that for
       larger programs.

       Generally, the linker needs to scan through all shared libraries	 on  a
       link  line  in  order  to determine all the unsats, even in incremental
       links.  This process may slow down incremental links.  The  incremental
       linker  does  not  scan shared libraries and leaves detection of shared
       library unsats to the dynamic loader.

       Do not use the incremental linker to create final  production  modules.
       Because	it  reserves  additional padding space, modules created by the
       incremental linker are considerably larger than those created in	 regu‐
       lar links.

       The  HP	WDB symbolic debugger only supports debugging of incrementally
       linked load modules that you create with the compiler  option  enabled.
       (The HP DDE debugger does not support the option.

       Any  program  that  modifies an executable (for example, strip(1)), may
       affect the ability of to perform an incremental link.  When  this  hap‐
       pens,  the  incremental linker issues a message and performs an initial
       incremental link.

       Third-party tools that work on object files may have unexpected results
       on modules produced by the incremental linker.

   Kernel Virtual Environment Support
       For  virtual environment support for the kernel, build your kernel with
       the following linker options (instead of the option):

       By using these options, you  create  the	 kernel	 as  a	self-contained
       shared  library	with  no  exported  symbols  (with  the	 and options).
       Because the kernel contains references to linker-generated symbols such
       as  and	the option instructs the linker to create these symbols (which
       it does not do for shared libraries by default).	 The  kernel  contains
       direct  calls  and relocations in read-only data space.	Normally these
       are applied at  link  time  and	are  fixed  up	to  link-time  virtual
       addresses.

       In  the case of relocatable kernels, the linker needs to create dynamic
       relocations to  fix  up	these  references  at  run-time.   The	option
       instructs the linker to allow dynamic relocations in read-only sections
       (Normally the linker issues an error message).

   Security Restrictions
       On a system that supports fine-grained privileges, if a	process	 gains
       any  privileges	from  the  binary's  extended attributes, dynamic path
       lookup is disabled.  Similarly, on a system that supports compartments,
       if   a  process	changes	 compartment  due  to  the  binary's  extended
       attributes, the dynamic path lookup is disabled.

       See setflexsec(1M) on how to set extended attributes on a binary.   See
       privileges(5) and compartments(5) for more information about privileges
       and compartments.  Secure programs are programs that are	 commonly  run
       by  privileged users, such as or programs that run with elevated privi‐
       leges due to or protection.  Special precautions should be  taken  when
       linking	secure programs that use shared libraries.  The default linker
       behavior may be sufficient for 32-bit applications, but not for	64-bit
       applications.

       Secure  64-bit programs should be linked with the option to disable the
       use of and for locating shared  library	dependencies.	Secure	64-bit
       programs should also link with to prevent the automatic construction of
       an embedded search path based  on  search  directories  specified  with
       options.	  Most	directories  searched  at  link	 time don't need to be
       searched at run time, and if these directories are specified  as	 rela‐
       tive  paths,  they expose the program to the same security risks as the
       use of and

       Normal programs that depend on libraries that only exist in a directory
       specified  in  or  (64-bit  mode	 only)	must  be linked with to enable
       searching and Programs that depend on or cannot be protected as	setuid
       or setgid programs.

       uses the dynamic path lookup (with and only if the following conditions
       are satisfied:

       That is, if the or does not match its effective counterpart,  does  not
       check  the  directories specified in and which causes the runtime error
       "".

EXTERNAL INFLUENCES
   Environment Variables
       The following environment variables affect the execution of
       Specifies the path name of the HTML browser to display the when you use
       the option.

       By default, when an instrumented executable (see the
	      option)  writes  the profile data, it creates a separate process
	      which runs in the background; and the main  process  exits.   If
	      this  environment	 variable  is  set  to	"OFF", then a separate
	      process is not created but the same process writes out the  pro‐
	      file  data.   This  is useful if you get errors when removing or
	      modifying the executable after it has been executed.

	      This environment variable is valid for 32-bit executables	 only.
	      For  instrumented shared libraries, profile data is always writ‐
	      ten by the same process.

       Serves the same purpose as
	      but for 64-bit executables.

       An instrumented executable (see the
	      option) writes out the profile data to a database file named  in
	      the  current  directory.	The name and location of this file can
	      be specified by setting to the desired path name.	  The  profile
	      data is stored in the database file under a look-up name that is
	      the same as the basename of the  executable  file	 specified  at
	      run-time.	 A single file can hold profile data

       Arguments can be passed to the linker through the
	      environment variable as well as on the command line.  The linker
	      gets the value of and places its contents before	any  arguments
	      on the command line.

       Specifies default directories
	      to search for library files.  See the option.

       Specifies, at runtime, directories
	      to search for library files.  See the option, dld.sl(5), and the
	      option for the manual for more information.

       Specifies, at runtime, the path of the shared library to be
	      profiled (See HP-UX Linker and Libraries Online User's Guide for
	      details.)

       Specifies at runtime, the path of the profiler used to profile
	      shared  libraries.   The default value is for 32bit applications
	      and for 64bit applications.

       Specifies a directory
	      for temporary files.

       The following internationalization variables affect the execution of
       Determines the locale category for native language, local  customs  and
       coded  character set in the absence of and other environment variables.
       If is not specified or is set to the empty string, a  default  of  (see
       lang(5)) is used instead of

       Determines the values for all locale categories and has precedence over
	      and other environment variables.

       Determines the locale that should be used to affect the format
	      and contents of diagnostic messages written to standard error.

       Determines the locale category for numeric formatting.

       Determines the locale category for character handling functions.

       Determines the location of message catalogs for the processing
	      of

       If  any	internationalization  variable	contains  an  invalid setting,
       behaves as if all internationalization variables are set to  See	 envi‐
       ron(5).

RETURN VALUES
       returns the following values:

	      Successful completion.
		      The link is successful.
	      Failure.
		      An error has occurred.

EXAMPLES
       Link  part  of a C program for later processing by (Note the suffix for
       the output object file; this is an HP-UX convention  for	 indicating  a
       linkable object file):

       On  32-bit,  link  a  simple  FORTRAN program for use with the symbolic
       debugger (see dde(1)).  Output file name is since there is no option in
       the command line.

       To do this on 64-bit:

       On  64-bit, link a shared bound program in standard mode.  Note that is
       not specified because for shared links, it is no longer necessary.

       On 64-bit, link a compatibility mode program.  is included because this
       is an archive link.

       Create a shared library:

       Create a shared library with an internal name:

       If  you	do  not use the shared library does not have an internal name.
       The linker does not check whether is a symbolic link.  It  records  the
       library name that it looks at, if it does not have the internal name.

       On  32-bit,  link  a  program with but use the archive version of the C
       library.	 Specify the immediate binding mode together with the nonfatal
       modifier and allow verbose diagnostics to be displayed:

       To do this on 64-bit:

       On 32-bit, link a Pascal program:

       Note that in the above examples, can be replaced by

WARNINGS
       recognizes  several  names  as  having special meanings.	 The symbol is
       reserved by the linker to refer to the first address beyond the end  of
       the program's address space.  Similarly, the symbol refers to the first
       address beyond the initialized data, and the symbol refers to the first
       address	beyond	the program text.  The symbols and are also defined by
       the linker, but only if the program contains a reference to these  sym‐
       bols  and  does	not define them (see end(3C) for details).  On 32-bit,
       the symbol is the total thread local storage size required by the  pro‐
       gram or shared library.

       On  64-bit,  the	 linker defines a few more symbols.  The symbol is the
       total thread local storage size.	 The symbol is the initial  status  of
       the  FPU status register.  The symbol is the largest architecture revi‐
       sion level used by any compilation unit.

       The linker treats a user definition of any of the symbols  listed  here
       as an error.

       Through	its  options,  the  link editor gives users great flexibility.
       However, those who invoke the linker directly must  assume  some	 added
       responsibilities.  Input options should ensure the following properties
       for programs:

       · When the link editor is called through cc(1), a start-up  routine  is
	 linked	 with  the  user's  program.  This routine calls exit(2) after
	 execution of the main program.	 If users  call	 directly,  they  must
	 ensure	 that the program always calls rather than falling through the
	 end of the entry routine.

       · When linking for use with the symbolic debugger dde,  the  user  must
	 ensure that the program contains a routine called Also, the user must
	 link in the file on 32-bit and on 64-bit as the last  file  named  on
	 the command line.

       There  is  no guarantee that the linker will pick up files from archive
       libraries and include them in the final program in  the	same  relative
       order that they occur within the library.

       The linker emits warnings wherever it detects any compatibility issues.
       Among other things, these issues include architectural ones, as well as
       functionality that may change over time.	 Some of these include:

	      · Linking	 a  PA 2.0 object file, which will not run on a PA 1.x
		system.

	      · Incremental loading with the option.

	      · Procedure call parameter and return type  checking,  including
		the option.

	      · Symbols	 with  the same name but different types, such as CODE
		and DATA.

	      · Checking of unsatisfied symbols by the linker, which sometimes
		skips  certain	object	files  from an archived library.  This
		warning is only given if the option is also provided.

	      · Versioning of objects within a shared library.

       These messages can be turned off with the option.

       As noted in the Options section, certain options no longer exist	 in  a
       64-bit linker.  They are:
	      ·
	      ·
	      ·
	      ·
	      ·
	      ·
	      ·
	      ·

AUTHOR
       was developed by AT&T, the University of California, Berkeley, and HP.

FILES
       32-bit system archive and shared libraries

       64-bit system archive and shared libraries

       32-bit development archive and shared libraries

       64-bit development object files, archive and shared libraries

       output file

       32-bit dynamic loader

       64-bit dynamic loader

       for use with the 32-bit
	      debugger

       for use with the 64-bit
	      debugger

       32-bit run-time startup file

       Identical to

       64-bit run-time startup file

       32-bit only.
	      Used with option links

       32-bit run-time startup with profiling (see
	      prof(1))

       32-bit millicode library automatically searched by

       64-bit millicode library automatically searched by

       run-time start-up with profiling (see
	      gprof(1))

       32-bit run-time start-up with profiling (see
	      discussion of profile based optimization above.)

       message catalog

       temporary files

       file containing profile data generated by running an
	      instrumented executable

       program for creating the procedure link order from
	      a	 profile  database file created by an instrumented executable;
	      forked by the option

       PA-RISC
	      code generator

SEE ALSO
   Profiling and Debugging Tools
       adb(1)		 absolute debugger
       gprof(1)		 display call graph profile data
       prof(1)		 display profile data
       dde(1)		 C, C++, FORTRAN, and Pascal symbolic debugger

   System Tools
       aCC(1)		 invoke the HP-UX aC++ compiler
       ar(1)		 create archived libraries
       CC(1)		 invoke the HP-UX C++ compiler
       cc(1)		 invoke the HP-UX C compiler
       chatr(1)		 change program's internal attributes
       exec(2)		 execute a file
       f77(1)		 invoke the HP-UX FORTRAN 77 compiler
       f90(1)		 invoke the HP-UX Fortran 90 compiler
       fastbind(1)	 invoke the fastbind tool
       nm(1)		 print name list of object file
       pc(1)		 invoke the HP-UX Pascal compiler
       strip(1)		 strip symbol and  line	 number	 information  from  an
			 object file

   Miscellaneous
       setflexsec(1M)

       crt0(3)		 execution startup routine
       end(3C)		 symbol of the last locations in program
       a.out(4)		 assembler, compiler, and linker output
       ar(4)		 archive format
       compartments(5)
       dld.sl(5)	 dynamic loader
       privileges(5)

   Texts and Tutorials
       (See the		 option)
       (See		 manuals(5) for ordering information)

STANDARDS CONFORMANCE
PA-RISC Systems Only						      ld_pa(1)
[top]

List of man pages available for HP-UX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net