- -a search
Specify whether shared or archive libraries are searched
with the
-l
option.
The value of
search
should be one of
archive,
shared,
archive_shared,
shared_archive,
or
default.
This option can appear more than once,
interspersed among
-l
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
archive
or
shared
is active, only the specified library type is accepted.
If
archive_shared
is active, the archive form is preferred, but
the shared form is allowed.
If
shared_archive
is active, the shared form is preferred but the archive form is allowed.
To create a statically-bound program, use the
-noshared
option rather than
-a archive .
- -b
Create a shared library rather than a normal executable file.
Object files processed with this option must contain
position-independent code
(PIC), generated by default by the compiler.
See the discussion of
position-independent code in
cc(1),
aCC(1),
f90(1),
as(1),
and
Linker and Libraries Online User Guide.
- -c filename
Read ld 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
##.
- -d
Force definition of ``common'' symbols; that is, assign
addresses and sizes, for
-r
output.
- -dynamic
This option is the default. Instructs the linker to produce a dynamically
linked executable (a program which can use shared libraries).
This option is the complement of
-noshared.
If no shared libraries are linked in, the linker builds a dynamically
linked executable. However, in PA32-bit mode using the
+compat
option, if no shared libraries are linked in, the linker builds a
statically bound executable (or archive bound executable).
For dynamically linked executables, the dynamic loader is involved
in the process of loading the executable, regardless of whether it was
linked with shared libraries. For
-noshared
(or statically bound) programs, control
does not pass to the dynamic loader. See
dld.so(5)
for more information.
- -e epsym
Set the default entry point address for the output file to be that of
the symbol
epsym.
(This option only applies to executable files.)
- -h symbol
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 particular entry will not clash
with a definition in another file during future processing by
ld.
If used when building a shared library or program,
this option prevents the named symbol from being visible
to the dynamic loader.
You can specify more than one
symbol
on the command line with multiple option-symbol pairs, that is,
each
symbol
you specify must be preceded by the
-h
option.
- -k filename
Specify a mapfile that describes the output file memory map.
Please refer to
HP-UX Linker and Libraries User's Guide
guide and the
+nodefaultmap
for more information.
- -lx
Search a library
libx.a,
libx.so,
or
libx.sl,
where
x
is one or more characters.
The current state of the
-a
option determines whether the archive
(.a)
or shared
(.sl
or
.so)
version of a library is searched.
Because a library is searched when its name is encountered,
the placement of a
-l
is significant.
By default, 32-bit libraries are located in
/usr/lib/hpux32.
64-bit libraries are located in
/usr/lib/hpux64.
If the environment variable
LPATH
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
-L
options can still be used.
If a program uses shared libraries, the dynamic loader,
/usr/lib/hpux32/dld.so
for 32-bit, or
/usr/lib/hpux64/dld.so
for 64-bit,
attempts to load each library from the same directory
in which it was found at link time (see the
+s
and
+b
options).
- -l: library
Search the library specified. Similar to the
-l
option except the current state of the
-a
option is not important. The library name can be any valid filename.
- -m
Produce a load map on the standard output.
- -n
This option is ignored.
- -noshared
Force the linker to create a fully archive bound program
(also called statically-bound executable). Specify
/usr/ccs/lib/hpux32/crt0.o
or
/usr/ccs/lib/hpux64/crt0.o
(or equivalent startup code) on the ld command line when you use
this option.
This option is the complement of
-dynamic.
For dynamically linked executables, the dynamic loader is involved
in the process of loading the executable, regardless of whether it was
linked with shared libraries. For statically linked programs, control
does not pass to the dynamic loader.
- -noshared_dynamic
Create a dynamically linked program if shared libraries are linked in.
If no shared libraries are linked in, the linker creates a fully archive
bound program. This option is the default in compatibility mode
(with the
+compat)
options. See also the
-dynamic
and
-noshared
options.
- -o outfile
Produce an output object file named
outfile
(a.out
if
-o
outfile
is not specified).
- -q
This option is ignored.
- -r
Retain relocation information in the output file for subsequent re-linking.
The
ld
command does not report undefined symbols.
This option cannot be used when building a shared library (
-b
) or in conjunction with the
-s,
-x,
or the
+ild
incremental linking options.
- -s
Strip the output file of all symbol table, relocation,
and debug support information.
(The
strip(1)
command also removes this information.)
This option is incompatible with the
-r
option and the
+ild
option.
Note: Use of the
-s
option might impair or prevent the use of a symbolic debugger on the
resulting program.
- -symbolic symbol
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
-B symbolic,
but operates on a per symbol basis.
You can specify more than one
symbol
on the command line with multiple option-symbol pairs, that is,
each
symbol
you specify must be preceded by the
-symbolic
option.
- -t
Print a trace (to standard output) of each input file as
ld
processes it.
- -u symbol
Enter
symbol
as an undefined symbol in the symbol table.
The resulting unresolved reference is useful
for linking a program solely from object files in a library.
You can specify more than one
symbol
on the command line with multiple option-symbol pairs, that is,
each
symbol
you specify must be preceded by the
-u
option.
- -v
Display verbose messages during linking.
This option is equivalent to
+vtype all
(see the
+vtype
option for more information).
- -x
Strip local symbols from the output file. This reduces
the size of the output file without
impairing the effectiveness of object file utilities. This option is
incompatible with the
-r
option and the
+ild
options. (The incremental linker requires the parts of the output load
module which are stripped out with the
-x
option.)
Note: Use of the
-x
option might impair or prevent the use of a symbolic debugger on the
resulting program.
- -y symbol
Indicate each file in which
symbol
appears.
You can specify more than one
symbol
on the command line with multiple option-symbol pairs, that is,
each
symbol
you specify must be preceded by the
-y
option.
- -z
Arrange for run-time dereferencing of null pointers to produce a
SIGSEGV
signal. (This is the complement of the
-Z
option.
-Z
is the default.)
- -A name
This option is ignored and generates a warning message.
- -B bind
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:
- deferred
Bind addresses on first reference
rather than at program start-up time. This is the default.
- immediate
Bind addresses of all symbols immediately upon loading the library.
Commonly followed by
-B nonfatal
to allow procedure calls that cannot be resolved at program start-up
to be resolved on first reference.
Since
-B nonfatal
suppresses messages about unresolved symbols, also specify
-B verbose
to display those messages.
See the example below.
- nonfatal
If also using
-B immediate,
for code symbols that could not be bound at program startup,
defer binding them until they are referenced. See description of
-B immediate
above.
Since
-B nonfatal
suppresses messages about unresolved symbols, also specify
-B verbose
to display those messages.
- restricted
Causes the search for a symbol definition to be restricted to
those symbols that were visible when the library was loaded.
- symbolic
Used only when building a shared library. This option causes all
references in a shared library to be resolved internally if possible.
Such internally-resolved symbols are still externally visible. By default
(without the
-B symbolic
option), references to a symbol in a shared library are resolved to the
most visible definition. The first load module (a.out or shared library)
that exports that symbol contains the most visible definition. More than
one load module can define and export the same symbol. References to a
symbol in a shared library can be resolved to a definition in another shared
library even if that symbol is defined in the shared library. You can use
this option to enforce that all references in the shared library use their
own definitions, if defined in the shared library.
See the
+e
and
+ee
options for more information about using
-B symbolic
with those options.
- verbose
Display verbose messages when binding symbols. This is the default except when
-B nonfatal
is specified. In that case,
-B verbose
must be explicitly specified to get verbose messages.
Use the
+help
option or see the
HP-UX Linker and Libraries User's Guide
manual for more information on the uses of binding modes.
- -C n
This option is ignored and generates a warning message.
- -D offset
Set (in hexadecimal) the starting address of the data segment. This
option is useful with kernel and embedded applications.
The default address for 64-bit mode is 0x6000000000000000 and and the
default address for 32-bit mode is 0x40000000.
- -E
This option is the default.
Export all symbols defined by a program or
shared library. To hide individual symbols, use the
-h
option.
- -Fl
Force load the archive library. Equivalent to
+forceload.
- -Fw
This option is ignored and generates a warning.
- -Fz
This option is accepted and ignored.
- -G
Strip all unloadable data from the output file.
This option is typically used to strip debug information and is incompatible
with the
+ild
option.
Note: Use of the
-G
option might impair or prevent the use of a symbolic debugger on the
resulting program.
- -I
Instrument the code to collect profile information upon execution.
When an instrumented program is executed, a profile database file is output
(by default, named flow.data).
The profile data gathered during program
execution can be used in conjunction with the
-P
option.
ld
invokes
/opt/langtools/bin/sin
to instrument the output file.
This option should not be used with the
-P,
-O,
+ild,
or
+O
options.
NOTE:
The recommended method to instrument your programs is to use your compiler's
+I
option, rather than the
ld -I
option. If you invoke the linker directly, you must pass the
-u__sin_core__,
-u__sin_init,
and
-lsin
options to the linker. If you have both an instrumented shared library and
an instrumented shared executable that you want to link with that library,
you must include the
-h__sin_core__
and
-h__sin_lookup_ibt
options in addition to the
-u
options.
- -L dir
Search for
libx.a,
libx.sl,
or
libx.so,
in
dir
before looking in default locations.
You can specify more than one directory,
but each must be preceded by the
-L
option.
The
-L
option is effective only if it precedes the
-l
option on the command line.
- -N
In 32-bit mode only, cause the data to be placed immediately following the
text, and make the text writable. Files of this type cannot be shared.
- -O
Turn on linker optimizations.
Currently the optimization includes the removal of dead procedures.
-O
is passed to the linker by the compilers
when the
+O4
compiler option is selected.
This option is incompatible with the
+ild
option.
For more details on linker optimizations use the
+help
option or see the
HP-UX Linker and Libraries User's Guide
manual.
- -P
Examine the profile database file produced by an instrumented program
(see the
-I
option) to perform profile based optimizations on the code.
This option should not be used with the
+ild
option.
- -Pd
Reorder debuggable functions. Ordinarily
-P
does not reorder functions from
.o
files with debugging information, because reordering renders them
non-debuggable. This option overrides this and reorders the functions.
Reordering is based on link order file produced from flow.data by default.
If you specify the
-Pd
option, the linker does not use flow.data for reordering. This
option is incompatible with
+ild.
Note: Use of the
-Pd
option might impair or prevent the use of a symbolic debugger on the
resulting program.
- -PD filename
Save link order file generated by
fdp
during linking with
-P
option into user-specified file.
This option is incompatible with the
+ild
option.
- -PF filename
Indicate to the linker to use the specified file for the link order file
instead of generating it using
/usr/ccs/bin/fdp.
This option is incompatible with the
+ild
option.
- -Q
This option is ignored.
- -R offset
Set (in hexadecimal) the starting address of the text (i.e., code) segment.
This option is useful with kernel and embedded applications.
[The default address for 64-bit mode is 0x6000000000000000, and the
default address for 32-bit mode is 0x0400000100000000.]
The default address for 64-bit mode is 0x4000000000000000 and
0x04000000. If -N option is specified, the default is 0x1000.
- -S
This option is ignored and generates a warning message.
- -T
This option is ignored.
- -V
Output a message giving information about the version of
ld
being used.
- -Z
This is the default. Allow run-time dereferencing of null pointers.
See the discussions of
-Z
and
pointers
in
cc(1).
(This is the complement of the
-z
option.)
- +[no]allowunsats
Control unsatisfied symbol error reporting.
+allowunsats
does not flag errors if the resulting output file has unsatisfied symbols.
This is the default for relocatable links and shared library builds.
+noallowunsats
flags an error if the resulting output file has unsatisfied symbols.
This is the default for program files.
- +[no]forceload
The
+forceload
option
loads all object files from archive
libraries.
+noforceload
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.
- +b path_list
Specify a colon-separated list of directories
to be searched at program run-time to
locate shared libraries needed by the executable
output file that were specified with either the
-l
or
-l:
options.
This list of directories becomes the embedded path.
If either
+b
is not used or
if you specify a single colon
(:)
as the argument,
ld
builds an embedded path using all the directories specified by the
-L
option(s) and the
LPATH
environment variable (see the
+s
option).
- +cdp oldpath:newpath
This option is ignored.
- +compat
Turn on compatibility mode in the linker — mimic
behavior of PA-RISC 32-bit links.
- +[no]copyobjdebug
When you use the
+noobjdebug
linker option to override the effect of the
+objdebug
compiler option, the linker omits the
+objdebug
information from the object files (in addition to copying over
the debug information to the output file).
However, if any object files were the result of
previous
-r
links, the
+objdebug
information from these files is not omitted. The
+nocopyobjdebug
option, when
used in conjunction with the
+noobjdebug
option, forces the linker to omit
+objdebug
information from all
object files, including objects generated with the
-r
option.
+copyobjdebug
is the default.
- +[no]defaultrpath
+defaultrpath
is the default. Include any paths that are specified with
-L
in the embedded path, unless you specify the
+b
option. If you use
+b,
only the path list specified by
+b
is in the embedded path.
The
+nodefaultrpath
option removes all library paths that were specified with the
-L
option from
the embedded path. The linker searches the library paths specified by the
-L
option at link time. At run time, the only library paths searched are
those specified by the environment variables
LD_LIBRARY_PATH
and
SHLIB_PATH,
library paths specified by the
+b
linker option, and finally the default library paths.
- +df file
Used together with the
-P
option, this option specifies that
file
should be used as the profile database file.
The default value is
flow.data.
See the discussion of the
FLOW_DATA
environment variable for more information.
This option is incompatible with the
+ild
option.
- +dpv
Output information on procedures that were eliminated by procelim.
Equivalent to
+vtype rpcelim.
- +dumpextern filename
Valid for executables and shared library links. Instructs the linker to
dump all external symbols into the file specified by
filename.
This dumps all external symbols referred to within the load module (a.out or
shared library) but not defined within the load module into the specified
file. You can pass this file back to your compiler using the
-Bextern:filename
option. For more information, see the compiler options,
-Bextern:filename,
-Bhidden,
and
-Bprotected.
- +e symbol
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.
If you use the
+e
or
+ee
option with
-B symbolic,
references to the symbol specified are resolved internally if
defined. The runtime behavior may be different from using
+e
alone.
You can specify more than one
symbol
on the command line with multiple option-symbol pairs, that is,
each
symbol
you specify must be preceded by the
+e
option.
- +ee symbol
This option is similar to the
+e
option in that it exports a symbol.
However, unlike the
+e
option, the
+ee
option does not alter the visibility of
any other symbol in the file. When building a
+compat
mode executable, by default
ld
exports only those symbols that are actually
referenced by a shared library seen at link time.
The
+ee
option when specified with
+compat,
has the effect of exporting the specified symbol without
hiding any of the symbols exported by default.
In a
+std
mode link, all symbols are exported by
default, so +ee 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
(+Oprocelim).
The
+ee
option still retains its
export behavior if an option such as
+hideallsymbols
is also given.
You can specify more than one
symbol
on the command line with multiple option-symbol pairs, that is,
each
symbol
you specify must be preceded by the
+ee
option.
- +fb
Instruct the linker to run the fastbind tool
on the executable it has
produced. The executable should be linked with shared libraries. For more
details about
fastbind(1),
use the
+help
option, or see the
HP-UX Linker and Libraries User's Guide
manual.
This option is incompatible with the
+ild
option.
- +fbu
Pass the
-u
option to the fastbind tool. For more details about
fastbind(1),
use the
+help
option, or see the
HP-UX Linker and Libraries User's Guide
manual.
This option is incompatible with the
+ild
option.
- +fini function_name
Specify the terminator function to be invoked in forward order, the order
the functions appear left to right on the command line.
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
+fini
option.
- +[no]forceload
The default is
+noforceload.
+forceload
loads all object files from archive libraries.
+noforceload
loads only the required object files from archive libraries. The selected
mode, either explicitly or by default, remains in effect until you explicitly
change it.
- +gst
Enable the global symbol table hash mechanism,
used to look up values of symbol import/export entries.
The
+gst
and related options provide performance enhancements through use
of global symbol table which improves searching for exported symbols.
See
dld.so(5)
and the
HP-UX Linker and Libraries Online User Guide
for more information.
- +gstbuckets size
This option is ignored.
- +gstsize size
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
_HP_DLDOPTS
environment variable to the value
-symtab_size
prime number.
You can set the value using
chatr +gstsize
size
file.
- +h internal_name
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
internal_name
is recorded in the library list of the resulting output file instead of the
pathname of the input shared library.
That is, if
+h
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 more than one +h option is seen on the link line, the linker uses the first
one and emits a warning message.
- +help
Start the help browser utility
HP-UX Linker and Libraries Online User Guide
which comes with the HP-UX operating system.
For more information, see to the
HP-UX Linker and Libraries User's Guide
manual.
See
manuals(5)
for ordering information.
- +hideallsymbols
Prevent all the symbols from being exported unless explicitly exported
with the
+e.
This option marks all symbols as "local" in the symbol table. See also
the
-h
and
+e
options.
- +ild
Specify incremental linking.
If the output file does not exist, or if it was created without the
+ild
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.
The following options are incompatible with the
+ild
option.
If you specify one of the following incompatible ld option with
+ild,
the linker emits a warning message and ignores the
+ild
option.
- -r
create a relocatable object file.
- Strip options:
-s,
-x,
and
-G
strip the output file.
- Optimization options:
-I,
-O,
-P,
-PD,
-PF,
+df
file,
+fb,
+fbu,
+fbs,
+pgm
name,
+Oprocelim
The following options are compatible with the
+ild
option with limitations:
- -D offset, -R offset
Set the origin for the data and text segments. If you change the offset
after the initial incremental link, the linker performs an initial
incremental link automatically.
- -k mapfile
Provide a non-default mapfile. The user specified mapfile
specifications are permitted with the
+ild
option. But you should not modify
the mapfile after the initial incremental link. If the mapfile is
modified after the initial link, an initial incremental link is
performed automatically.
- +ildnowarn
Suppress incremental-linking related warnings. By default, the linker issues
all incremental-linking related warnings. This option is ignored if used
without
+ild
or
+ildrelink.
- +ildpad percentage
Control the amount of padding
percentage
the incremental linker allocates,
relative to sizes of object file structures being padded. By default the
linker allocates less than 20% of padding space.
This option is ignored if used without
+ild
or
+ildrelink.
- +ildrelink
Perform an initial incremental link, regardless of the output load
module.
In certain situations (for example, internal padding space is exhausted)
the incremental linker is forced to perform an initial incremental link.
The
+ildrelink
option allows you to avoid such unexpected initial
incremental links by periodically rebuilding the output file.
- +init function_name
Specify the initializer function to be invoked in reverse order, the
order the functions appear right to left on the command line.
You can specify more than one initializer function
on the command line with multiple option-symbol pairs, that is,
each initializer function
you specify must be preceded by the
+init
option.
- +interp filename
Change the
dld
path to use the program specified by
filename
for the "interpreter"
program as the dynamic loader. This is useful when using special versions
of dld.so for debugging.
The default path is
/usr/lib/hpux32/uld.so:/usr/lib/hpux32/dld.so
for 32-bit programs and
/usr/lib/hpux64/uld.so:/usr/lib/hpux64/dld.so
for 64-bit programs.
- +k
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.
- +n
Cause the linker to load all object modules before searching
any archive or shared libraries. The linker then searches the archive and
shared libraries specified on the command line in left to right order. It
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 dependencies on each other.
- +nodefaultmap
Do not use the default memory map. You must
supply a mapfile through the
-k
linker option.
- +nodynhash
Disable the default linker behavior of the
+gst
option to create the .dynhash section for executables 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 storing
pre-computed hash values is too high. This option has no effect when
used with the
-r
option.
- +noenvvar
Instruct the dynamic loader to ignore the dynamic path searching environment
variables, LD_LIBRARY_PATH and SHLIB_PATH,
at runtime.
By default, or if you specify the
+std
option, the dynamic loader looks at the environment variables, that is,
the environment variables are enabled.
If you specify the
+compat
option or the
+noenvvar
option, the option takes effect and the dynamic loader
ignores the variables (the environment variables are disabled).
See the
+compat
or
+std
options.
You can display the status of this
option in an executable or shared library from the 'shared library
dynamic path search' output of the
chatr
command. See
chatr(1)
for more information.
Generally, this option is used for secure programs.
- +noobjdebug
Override the
+objdebug
compiler option, and copy all debug information to the executable file.
When you use the
+objdebug
compiler option with
any of the
-g
options, linker leaves the
debug information in the object files instead of
copying it over to the output file.
You can use the
+noobjdebug
option at link time to force
the linker to copy the debug information over
to the output file and negate the effect of the
+objdebug
compiler option.
See also
+nocopyobjdebug.
- +nosectionmerge
With the
-r
option, allow procedures to be positioned independently. The default is
to merge all procedures into a single section.
- +nosmartbind
This option is ignored.
- +nosrcpos
In IC64 (32-bit and 64-bit), the compiler option
+srcpos
is the default.
+srcpos
causes the compiler to generate part of the debug information even
when the compiler option
-g
is not specified. The default
+srcpos
option also causes part of the debug information to be always
copied over to the executable file, resulting in larger executables.
+srcpos
enables the users to profile programs using tools like
cxperf,
caliper,
and
sin,
even in the absence of
-g
compilation.
The linker option
+nosrcpos
can be used to override the default
+srcpos
compiler option, and strip these debug information during link time.
+nosrcpos
can also be used with
"-g +objdebug"
to fully enforce the
+objdebug
mode (i.e., leaving the debug information in the object files).
- +objdebugonly
Ignore debug information from non-objdebug objects or
archives and proceed in
+objdebug
mode.
If you are debugging only files compiled with the
+objdebug
option,
+objdebugonly
can improve link time by instructing the linker to bypass the processing
of debug information from files compiled
with
+noobjdebug.
- +origin shared_library_name -lx
(Use only before the
-l
option or the name of a shared library.) Cause the linker to add $ORIGIN
before the
shared library name
in the shared library list and set the
DF_ORIGIN flag for the output module. At runtime, the dynamic loader
determines the current directory of the parent module (object module,
shared library, or executable) and replaces
$ORIGIN
for that directory name. For example,
$ ld -dynamic main.o +origin libx.so -L /usr/lib/hpux32/ -lc
While the
+origin
option is available, the
recommended way to specify
$ORIGIN
is in the embedded path with the
+b
option, fo example,
$ ld -dynamic main.o -L /usr/lib/hpux32/ -lc +b \$ORIGIN
For more details on
$ORIGIN,
use the
+help
option or see the
HP-UX Linker and Libraries User's Guide
manual.
- +paddata pagesize
Pads the data segment to a multiple of
pagesize
with zeros. This can improve page allocation, thus reduce TLB misses by
allowing the kernel to allocate fewer, larger data pages. Use of this
option increases your output file size.
- +padtext pagesize
Pads the text segment to a multiple of
pagesize
with zeros. This can improve page allocation, thus reduce TLB misses by
allowing the kernel to allocate fewer, larger data pages. Use of this
option increases your output file size.
- +pd size
Request a particular virtual memory page size that should be used for data.
Sizes of
4K,
16K,
64K,
256K,
1M,
4M,
16M,
64M,
256M,
D,
and
L
are supported. A size of
D
allows the kernel to choose what page size should
be used.
A size of
L
results in using the largest page size available.
The actual page size may vary if the requested size cannot
be fulfilled.
- +pdzero
This option is ignored.
- +pgm name
With the
-P
option, specify that
name
should be used as the look-up name in the profile database file.
The default is the basename of the output file (specified by the
-o
option.)
This option is incompatible with the
+ild
option.
- +pi size
Request a particular virtual memory page size that
should be used for instructions. See the
+pd
option for additional information.
- +plabel_cache flag
This option is ignored.
- +profilebucketsize [16|32]
Specifies the size of the profiling sample counter buckets.
Valid values are 16 or 32. See
gprof(1)
for more details.
- +s
This option is the default. Indicate that at run-time, the
dynamic loader can use the environment variables
SHLIB_PATH
and
LD_LIBRARY_PATH
to locate shared libraries needed by the executable
output file that allow dynamic library searching.
Shared libraries that allow dynamic library searching either
contain an internal name without the "/" (slash) character (for
example, the base name of the shared library pathname) or have
no internal name and were specified with either
-l
or
-L,
or just the base name of the shared library pathname.
The
environment variables should be set to a colon-separated list of
directories.
In compatibility mode using the
+compat
option, if both
+s
and
+b
are used, their relative order on the command line indicates which path
list is searched first (see the
+b
option). In standard mode (default mode or using the
+std
option),
the order of
+s
and
+b
does not affect the dynamic loader search order and the environment
variables are always searched first.
- +rpathfirst
This option will cause the paths specified in
RPATH
(embedded path) to be used before the paths specified in
LD_LIBRARY_PATH
or
SHLIB_PATH,
in searching for shared libraries. This changes the default search
order of
LD_LIBRARY_PATH,
SHLIB_PATH,
and
RPATH
(embedded path).
- +std
This option is the default. Turn on standard mode of the linker.
This option is the complement of the
+compat
option.
Options set on with this option are:
-dynamic.
Options set off or ignored when this option is specified are:
+compat,+noenvvar,-noshared.
- +stripunwind
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 aC++
exception handling.
Note: Use of the
+stripunwind
option might impair or prevent the use of a symbolic debugger on the
resulting program.
- +tools
This option is ignored.
- +vallcompatwarnings
This option is ignored.
- +v[no]compatwarnings
This option is ignored.
- +v[no]shlibunsats
Enable [disable] printing a list of unsatisfied
symbols used by shared
libraries. The default is
+vnoshlibunsats.
Some unsatisfied symbols reported by the linker are not required at run
time because the modules which reference the symbols are not used.
- +vtype type
Produces verbose output about the link operation.
type
can have the following values:
- all
Dumps all of the information from the
+vtype
options.
Same as
-v.
- files
Dump info about each object file loaded.
- heap
Dump info about the size of the heap used by a link.
- libraries
Dump info about libraries searched.
- procelim
Dump info about sections that have been eliminated by the
+Oprocelim
option
- sections
Dump info about each input section added to the output file.
- symbols
Dump info about global symbols referenced/defined from/in the input files.
- +FP flag
Specify how the environment for floating-point
operations should be initialized at program
start-up.
By default, all behaviors are disabled.
The following flags are supported
(upper case flag enables; lower case flag disables):
- D (d)
Enable sudden underflow (flush to zero) of denormalized values.
- I (i)
Trap on floating-point operations that produce inexact results.
- N (n)
Trap on Denormal|Unnormal operand floating-point operation.
- O (o)
Trap on floating-point overflow.
- U (u)
Trap on floating-point underflow.
- V (v)
Trap on invalid floating-point operations.
- Z (z)
Trap on divide by zero.
To dynamically change these settings at run-time, see
fesettrapenable(3M).
- +I function
Specify the name of the initializer function when building a shared library.
A shared library may have multiple initializers specified. Initializers are
executed in the order that they are specified on the command line.
You can specify more than one initializer function
on the command line with multiple option-symbol pairs, that is,
each initializer you specify must be preceded by the
+I
option.
This option is supported for compatibility. Use of the
+init
and
+finioptionsisrecommended.
For more details on the initializer function, use the
+help
option or see the
HP-UX Linker and Libraries User's Guide
manual.
- +O[no]fastaccess
This option is ignored.
- +O[no]procelim
Enable [disable] the elimination of procedures that are not referenced by
the application. The default is
+Onoprocelim.
Procedure elimination can occur at any optimization level, including level 0.
For more details use the
+help
option or see the
HP-UX Linker and Libraries User's Guide
manual.
This option is incompatible with the
+ild
option.
- +Oreusedir=dir
This option is ignored and generates a warning message.
- +Oselectivepercent n
This option is accepted and ignored.
- +Oselectivesize size
This option is accepted and ignored.
- +OselectiveO3
This option is accepted and ignored.
- +Ostaticprediction
This option is ignored and generates a warning message.