ld(1)
NAME
ld − link editor
SYNOPSIS
ld [-bdmnqrstvxzEGINOPQSTVZ] [+b path_list] [+cg pathname] [+df file] [+dpd] [+dpv] [+e symbol] ... [+h internal_name] [+help] [+n] [+pgm name] [+s] [+FP flag] [+I symbol] [+O[ no ]fastaccess] [+O[ no ]procelim] [+Ostaticprediction] [-a search] [-c filename] [-e epsym] [-h symbol] ... [-l x | file] ... [-l: library] [-o outfile] [-u symbol] ... [-y symbol] ... [-A name] [-B bind] [-C n [-D offset] [-L dir] ... [-R offset] [-X num] [+v[no]shlibunsats] [+vallcompatwarnings] [+v[no]compatwarnings]
DESCRIPTION
ld 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, ld produces an executable file that can be run by the HP-UX loader exec() (see exec(2)). Alternatively, the linker can generate a relocatable file that is suitable for further processing by ld (see -r below). It can also generate a shared library (see -b below). The linker marks the output file non-executable if there are any duplicate symbols or any unresolved external references remain. ld may or may not generate an output file if any other errors occur during its operation. ld recognizes three kinds of input files: object files created by the compilers, assembler, or linker (also known as .o 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 symbols from its component object files. (The archiver command ar(1) creates and maintains this index.) ld uses this table to resolve references to external symbols.
ld 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. It is common practice to list libraries following the names of all simple object files on the command line.
Code and data from shared libraries is never copied into an executable program. The dynamic loader /usr/lib/dld.sl is invoked at startup time by the startup file crt0.o if a program uses shared libraries. Identical copies of crt0.o can be found in either /usr/ccs/lib/crt0.o or /opt/langtools/lib/crt0.o. The dynamic loader attaches each required library to the process and resolves all symbolic references between the program and its libraries. 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.
ld recursively examines the dependencies of shared libraries used by a program that was created by ld. If ld 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 −l argument used when the shared library was created, ld will search all the directories that it would search for a library that was specified with −l (see −L and LPATH).
Environment Variables
Arguments can be passed to the linker through the LDOPTS environment variable as well as on the command line. The linker gets the value of LDOPTS and places its contents before any arguments on the command line.
The LD_PXDB environment variable defines the full execution path for the debug preprocessor pxdb. The default value is /opt/langtools/bin/pxdb. ld invokes pxdb on its output file if that file is executable and contains debug information. To defer invocation of pxdb until the first debug session, set LD_PXDB to /dev/null.
The LPATH environment variable can be used to specify default directories to search for library files. See the -l option.
Options
ld recognizes the following options:
-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.
-b Create a shared library rather than a normal executable file. Object files processed with this option must contain position-independent code (PIC). See the discussion of PIC in cc(1), CC(1) [part of the optional C++ compiler documentation], f77(1), pc(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” storage; that is, assign addresses and sizes, for -r output.
-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.
More than one symbol can be specified, but -h 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.
-lx Search a library libx.a 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) 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, libraries are located in /usr/lib and /usr/ccs/lib. 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/dld.sl will attempt 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 must contain the prefix lib and end with a suffix of .a or .sl.
-m Produce a load map on the standard output.
-n Generate an executable output file with file type SHARE_MAGIC. This is the default. This option is incompatible with -N and -q.
-o outfile Produce an output object file named outfile (a.out if -o outfile is not specified).
-q Generate an executable output file with file type DEMAND_MAGIC. This option is incompatible with -n, -N, and -Q.
-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 -A.
-s Strip the output file of all symbol table, relocation, and debug support information. This might impair or prevent the use of a symbolic debugger on the resulting program. This option is incompatible with -r. (The strip(1) command also removes this information.)
-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. More than one symbol can be specified, but each must be preceded by -u.
-v Display verbose messages during linking. For each library module that is loaded, the linker indicates which symbol caused that module to be loaded.
-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 . Note: use of -x might affect the use of a debugger.
-y symbol Indicate each file in which symbol appears. More than one symbol can be specified, but each must be preceded by -y.
-z Arrange for run-time dereferencing of null pointers to produce a SIGSEGV signal. (This is the complement of the -Z option.)
-A name 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 a.out, but the new symbol table reflects all symbols defined before and after the incremental load. Also, the -R option can be used in conjunction with -A, which allows the newly linked segment to commence at the corresponding address. The default starting address is the old value of _end. The -A option is incompatible with -r and -b. Also note that a program that dynamically loads code with ld -A cannot use shared libraries. See the +help option or the Programming on HP-UX manual for a description of this option. This option may be obsoleted in future releases.
-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 (with the -b option), this option causes all unresolved symbols inside a library to be resolved internally. By default, unresolved symbols are resolved by either definitions in the library or outside of the library.
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.
See the +help option or the Programming on HP-UX manual for more information on the uses of binding modes.
-Cn Set the maximum parameter-checking level to n. The default maximum is 3. See the language manuals for the meanings of the parameter-checking level. This option may be obsoleted in future releases.
-D offset Set the origin (in hexadecimal) for the data segment.
-E Mark all symbols defined by a program for export to shared libraries. By default, ld marks only those symbols that are actually referenced by a shared library seen at link time.
-G Strip all unloadable data from the output file. This option is typically used to strip debug information.
-I Instrument the code to collect profile information upon execution. The profile data gathered during program execution can be used in conjunction with the -P option. Programs linked with this option should use the startup file /opt/langtools/lib/icrt0.o instead of crt0.o. This option should not be used with the -P, -A, -O, or +O options.
-L dir Search for libx.a or libx.sl in dir before looking in default locations. More than one directory can be specified, but each must be preceded by -L. The -L option is effective only if it precedes the -l option on the command line.
-N Generate an executable output file with file type EXEC_MAGIC. This option is incompatible with -n and -q. This option causes the data to be placed immediately following the text, and makes the text writable. Files of this type cannot be shared.
-O Turn on linker optimizations. Currently the optimizations include the elimination of unnecessary ADDIL instructions from the code in the executable file, and the removal of dead procedures.
-O is passed to the linker by the compilers when the +O4 compiler option is selected.
For more details on linker optimizations refer to the +help option or the Programming on HP-UX manual.
-P Examine the data 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 -A option.
-Q Generate an executable output file with file type EXEC_MAGIC or SHARE_MAGIC, depending on whether -N or -n is specified. This is the default. This option is incompatible with -q.
-R offset Set the origin (in hexadecimal) for the text (i.e., code) segment.
-S Generate an Initial Program Loader (IPL) auxiliary header for the output file, instead of the default HP-UX auxiliary header.
-T 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 TMPDIR environment variable is set, the temporary files are created in the specified directory, rather than in /var/tmp.
-V Output a message giving information about the version of ld being used.
-X num This option is obsolete.
-Z 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.)
+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: option. An argument consisting of a single colon (:) indicates that ld should build the list using all the directories specified by the -L option and the LPATH environment variable (see the +s option).
+cg pathname Specify the use of pathname as the code generator for compiling ISOMs to SOMs. See the discussion of profile based optimization for more information.
+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.
+dpv 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 procedures is also displayed.
+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.
+fb Instructs the linker to run the fastbind tool on the executable it has produced. The executable should be linked with shared libraries. For more details refer to fastbind(1), the +help option, or the Programming on HP-UX manual.
+fbu Pass the -u option to the fastbind tool. For more details refer to fastbind(1), the +help option, or the Programming on HP-UX manual.
+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 file system pathname of the input shared library.
If internal_name is a fully-qualified pathname, it is recorded as is in the library list of any executable file it is subsequently linked against. If internal_name is a relative pathname or no directory component was specified, internal_name is appended to the file system directory component of the input shared library in the library list of any executable 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.
+help Starts the HP-UX Linker and Libraries Online User Guide which comes with some HP compilers. (You must be running the X window system and your $DISPLAY environment variable must be set to the name of your workstation or X terminal.) For more information, refer to the Programming on HP-UX manual. See manuals(5) for ordering information.
+n Causes the linker to load all object modules before searching any archive or shared libraries. Then it searches the archive and shared libraries specified 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 dependencies on each other.
+pgm name Used together with the -P option, this option specifies 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.)
+s Indicates that at run-time, the shared library loader can use the environment variable SHLIB_PATH to locate shared libraries needed by the executable output file that were specified with either the -l or -l: option. The SHLIB_PATH environment variable should be set to a colon-separated list of directories. If both +s and +b are used, their relative order on the command line indicates which path list will be searched first (see the +b option).
+vallcompatwarnings
Show more detail for any warnings about compatability issues. By default, only a terse message is printed. See the WARNINGS section below for further details.
+v[no]compatwarnings
Enable [disable] printing warnings about compatibility issues between systems. This includes any functionality which may change in future releases. The default is +vcompatwarnings. See the WARNINGS section below for further details.
+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.
+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):
V (v) Trap on invalid floating-point operations
Z (z) Trap on divide by zero
O (o) Trap on floating-point overflow
U (u) Trap on floating-point underflow
I (i) Trap on floating-point operations that produce inexact results.
D (d) Enable sudden underflow (flush to zero) of denormalized values.
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.
To dynamically change these settings at run-time, see fpgetround(3M).
+I symbol 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. For more details on the initializer function, refer to the +help option or the Programming on HP-UX manual.
+O[no]fastaccess
Enable [disable] fast access to global data. The linker rearranges the data to further reduce the number of ADDIL instructions in the executable.
This optimization may reveal some subtle programming errors related to assumptions about data layout. This optimization can occur at optimization levels 2, 3 and 4. The default is +Onofastaccess at optimization levels 2 and 3, and +Ofastaccess at optimization level 4.
+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 refer to the +help option or the Programming on HP-UX manual.
+Ostaticprediction
Meaningful only on PA 2.0 architecture, this option sets the branch prediction bit in the output executable file’s auxiliary header.
Defaults
Unless otherwise directed, ld names its output a.out. The -o option overrides this. Executable output files are of type SHARE_MAGIC. The default state of -a is to search shared libraries if available, archive libraries otherwise. The default bind behavior is deferred.
The default value of the -Z/-z option is -Z.
EXTERNAL INFLUENCES
Environment Variables
The following internationalization variables affect the execution of ld:
LANG
Determines the locale category for native language, local customs and coded character set in the absence of LC_ALL and other LC_* environment variables. If LANG is not specified or is set to the empty string, a default of C (see lang(5)) is used instead of LANG.
LC_ALL
Determines the values for all locale categories and has precedence over LANG and other LC_* environment variables.
LC_MESSAGES
Determines the locale that should be used to affect the format and contents of diagnostic messages written to standard error.
LC_NUMERIC
Determines the locale category for numeric formatting.
LC_CTYPE
Determines the locale category for character handling functions.
NLSPATH
Determines the location of message catalogs for the processing of LC_MESSAGES.
If any internationalization variable contains an invalid setting, ld behaves as if all internationalization variables are set to C. See environ(5).
In addition, the following environment variable affects ld:
TMPDIR
Specifies a directory for temporary files (see tmpnam(3S)).
DIAGNOSTICS
ld returns zero when the link is successful. A non-zero return code indicates that an error occurred.
EXAMPLES
Link part of a C program for later processing by ld. (Note the .o suffix for the output object file; this is an HP-UX convention for indicating a linkable object file):
ld -r file1.o file2.o -o prog.o
Link a simple FORTRAN program for use with the dde symbolic debugger (see dde(1)). Output file name is a.out since there is no -o option in the command line.
ld /usr/ccs/lib/crt0.o ftn.o -lcl -lisamstub -lc /opt/langtools/lib/end.o
Create a shared library:
ld -b -o libfunc.sl func1.o func2.o func3.o
Create a shared library with an internal name:
ld -b -o libfoo1.1 foo1.o foo2.o +h libfoo1.1
Link a program with libfunc.sl 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:
ld /usr/ccs/lib/crt0.o -B immediate -B nonfatal -B verbose program.o -L .\
-lfunc -a archive -lc
Link a Pascal program:
ld /usr/ccs/lib/crt0.o main.o -lcl -lm -lc
Note that in the above examples, /usr/ccs/lib/crt0.o can be replaced by /opt/langtools/lib/crt0.o.
WARNINGS
ld recognizes several names as having special meanings. The symbol _end is reserved by the linker to refer to the first address beyond the end of the program’s address space. Similarly, the symbol _edata refers to the first address beyond the initialized data, and the symbol _etext refers to the first address beyond the program text. The linker treats a user definition of any of these symbols as an error. The symbols end, edata, and etext are also defined by the linker, but only if the program contains a reference to these symbols and does not define them (see end(3C) for details).
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 ld directly, they must ensure that the program always calls exit() 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 main. Also, the user must link in the file /opt/langtools/lib/end.o 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 where ever 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 -A option.
• Procedure call parameter and return type checking, including the -C 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 -v option is also provided.
• Versioning of objects within a shared library.
These messages can be turned off with the +vnocompatwarnings option.
ADVANCED FEATURES
The linker searches for the symbol $START$ as the program entry point. This symbol is defined in the file crt0.o, which should be the first file loaded for all programs regardless of source language. Use the -e option to select a different entry point.
By default, the data segment begins at offset 0x40001000. Since certain optimizations are now performed in the page previous to 0x40001000, some applications will not function as before if the start of the data segment is set to be within the range 0x40000000 through 0x40001000.
When invoking ld directly to link a C program whose main procedure is located in a library, the -u main option should be used to force the linker to load main from the library, since this symbol is not actually referenced until the _start routine is loaded from the C library. When using cc(1) to link the program, the compiler automatically passes this option to the linker. Because of this behavior, do not use cc to link a program containing a FORTRAN or Pascal main program; use f77 or pc instead.
Executable files generated with the -N option cannot be shared. Typically, -N is used when rebuilding the kernel or when preparing an image for dynamic loading. For these files, the data segment begins on the next page following the text segment. This option can also be used if a process needs more virtual data address space than is available with SHARE_MAGIC and DEMAND_MAGIC files.
When the -A option is used to do an incremental link, the linker generates extra code where a procedure call crosses a quadrant boundary (a quadrant is one gigabyte, or one fourth of the addressing space). Text is normally in the first quadrant and data is in the second quadrant. When an object file is intended to be read into an already-executing program, both its code and data must be placed in the second quadrant, since the first quadrant is set to read-only. Procedure calls from one quadrant to the other require the extra code, called inter-space calling stubs. The linker generates an “export” stub for the entry point designated in the incremental link, and “import” stubs for each procedure in the basis program that is called by the new object file. The import stubs require the existence of a routine in the basis program called _sr4export, which is supplied in crt0.o. If a procedure in the basis program is called indirectly by the new object file, the linker cannot detect the crossing of the quadrant boundary, and therefore will not generate the needed stub. A special version of $$dyncall placed in /usr/ccs/lib/dyncall.o is provided for handling the inter-quadrant branch. This routine should be linked in when the -A option is in effect.
ld treats both duplicate symbols and unresolved symbols in the same manner: an output file is generated and marked as non-executable if errors occur during its operation (see DESCRIPTION).
The default file type is SHARE_MAGIC. See the +help option or the Programming on HP-UX manual for a discussion of the various file types.
The linker works in conjunction with the compilers to support profile-based optimization: transformations that use profile data gathered from previous runs of a program to improve run-time performance. Profile data collection and profile-based optimizations can be performed within the bodies of procedures compiled with the +I option to cc, CC, or f77 (see cc(1), f77(1), and CC(1)) [part of the optional C++ compiler documentation]. For example, code can be repositioned within procedures so that fewer branches are executed and better code locality is achieved. The linker can also instrument calls between procedures, even if they were not compiled with the +I option. After profile data is collected, the program can be relinked and the linker will reposition the procedures to further improve code locality. See the -I, -P, +cg, +df, and +pgm options above. Also see the discussion of profile-based optimization from the +help option or the Programming on HP-UX manual.
Object files that are compiled with the +I or +P option (see cc(1), CC(1), and f77(1)) contain intermediate code instead of PA-RISC object code. The linker then invokes a PA-RISC code generator on these files before linking them into the executable file. Because of this, linking object files compiled with +I or +P may take significantly more time than linking ordinary object files. The object files that are generated by compiling the intermediate code are written to the directory specified by the TMPDIR environment variable, or /var/tmp if TMPDIR is not specified. The object files are deleted before the linker exits.
The following environment variables are related to profile-based optimization:
FLOW_DATA An instrumented executable (see the -I option) writes out the profile data to a database file named flow.data in the current directory. The name and location of this file can be specified by setting FLOW_DATA 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 flow.data file can hold profile data for multiple program files.
FLOW_DATA_DIR Obsolete environment variable. Do not use.
AUTHOR
ld was developed by AT&T, the University of California, Berkeley, and HP.
FILES
/usr/lib/lib* system archive and shared libraries
/usr/ccs/lib* development archive and shared libraries
a.out output file
/usr/lib/dld.sl dynamic loader
/opt/langtools/lib/end.o for use with the dde debugger
/usr/ccs/lib/crt0.o run-time startup
/opt/langtools/lib/crt0.o Identical to /usr/ccs/lib/crt0.o
/usr/ccs/lib/dyncall.o used with -A option links
/opt/langtools/lib/mcrt0.o run-time startup with profiling (see prof(1))
/usr/lib/milli.a millicode library automatically searched by ld
/opt/langtools/lib/gcrt0.o run-time start-up with profiling (see gprof(1))
/opt/langtools/lib/icrt0.o run-time start-up with profiling (see discussion of profile based optimization above.)
/opt/langtools/lib/scrt0.o startup for profiling shared libraries for profile based optimization.
/usr/lib/nls/$LANG/ld.cat message catalog
/var/tmp/ld* temporary files
flow.data file containing profile data generated by running an instrumented executable
/usr/ccs/bin/fdp program for creating the procedure link order from a profile database file created by an instrumented executable; forked by the -P option
/usr/ccs/lbin/uccom PA-RISC code generator for the C language
/opt/fortran/lbin/uf77pass1 PA-RISC code generator for the FORTRAN language
/opt/langtools/lbin/ucomp Default 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:
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 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:
a.out(4) assembler, compiler, and linker output
ar(4) archive format
crt0(3) execution startup routine
dld.sl(5) dynamic loader
end(3C) symbol of the last locations in program
Texts and Tutorials:
HP-UX Linker and Libraries Online User Guide
(See the +help option)
Programming on HP-UX
(See manuals(5) for ordering information)
STANDARDS CONFORMANCE
ld: SVID2, SVID3, XPG2, XPG4
Hewlett-Packard Company — HP-UX Release 10.20: July 1996