HP-UX Linker and Libraries User's Guide

The +allowunsats option still causes the linker to emit a warning message and output a.out.
If you do not specify the option and the linker finds an unsatisfied symbol, the linker displays an
error message and a non-executable a.out.
$ ld main.o -L. -lbar -lc
ld: Unsatisfied symbol "foo".
1 error.
Stripping Symbol Table Information from the Output File with -s and -x
The a.out file created by the linker contains symbol table, relocation, and (if debug options were
specified) information used by the debugger. Such information can be used by other commands
that work on a.out files, but is not actually necessary to make the file run. The ld command
provides two command line options for removing such information and, thus, reducing the size of
executables:
-s Strips all such information from the file. The executable becomes smaller, but difficult or
impossible to use with a symbolic debugger. You can get much the same results by running
the strip command on an executable (see strip(1)). In some cases, however, -s rearranges
the file to save more space than strip.
-x Strips only local symbols from the symbol table. It reduces executable file size with only a
minimal effect on commands that work with executables. However, using this option may still
make the file unusable by a symbolic debugger. These options can reduce the size of
executables drastically. Note, also, that these options can also be used when generating
shared libraries without affecting shareability.
Controlling Output from the Unwind Table with +strip unwind
Use the +stripunwind option to suppress output of the unwind table.
$ ld -b foo.o -o libfoo.sl +stripunwind
$ elfdump -U libfoo.sl
libfoo.sl:
Using the IPF Linker with +compat or +std
In the HP-UX 11.0 release, the linker toolset supports extended features for linking in PA-64 mode.
Since compatibility with the previous linker toolset is a high priority, on Itanium-based system the
linker uses much of the old behavior in the new toolset. The Itanium-based system linker includes
two options to allow you to instruct the linker to link in one of the following modes:
Compatibility mode, with the +compat option, to create a link and operation in PA-32 mode.
Because of some object file format restrictions, the mode is not completely compatible with
the style of the PA-32 linker.
Standard mode, with the +std option, set by default in the linker on Itanium-based system,
to create a link and load operation in PA-64 mode. This mode uses the new behaviors and
features of the PA-64 linker.
Using the Linker with +compat for Compatibility Mode
The +compat option instructs the linker to do a PA-32 link.
When you use the +compat option, the linker:
Uses PA-32 shared library internal name processing.
Lists all dependent shared libraries in a DT_HP_NEEDED entry the dynamic table using the
PA-32 shared library naming conventions. These dependent libraries are recorded as
46 Determining How to Link Programs or Libraries (Linker Tasks)