1. Introduction to the Oracle Solaris Link Editors
The 32-bit link-editor and 64-bit link-editor
Linking With Additional Libraries
Linking With a Mix of Shared Objects and Archives
Position of an Archive on the Command Line
Directories Searched by the Link-Editor
Directories Searched by the Runtime Linker
Initialization and Termination Sections
Generating an Executable Output File
Generating a Shared Object Output File
Tentative Symbol Order Within the Output File
Defining Additional Symbols with the -u option
Augmenting a Symbol Definition
Identifying Capability Requirements
Identifying a Platform Capability
Identifying a Machine Capability
Identifying Hardware Capabilities
Identifying Software Capabilities
Software Capability Frame Pointer Processing
Creating a Family of Symbol Capabilities Functions
Creating a Family of Symbol Capabilities Data Items
Converting Object Capabilities to Symbol Capabilities
Exercising a Capability Family
5. Application Binary Interfaces and Versioning
A. Link-Editor Quick Reference
C. Establishing Dependencies with Dynamic String Tokens
E. System V Release 4 (Version 1) Mapfiles
Most options to the link-editor can be passed through the compiler driver command line. For the most part, the compiler and the link-editor options do not conflict. Where a conflict arises, the compiler drivers usually provide a command line syntax that you can use to pass specific options to the link-editor. You can also provide options to the link-editor by setting the LD_OPTIONS environment variable.
$ LD_OPTIONS="-R /home/me/libs -L /home/me/libs" cc -o prog main.c -lfoo
The -R and -L options are interpreted by the link-editor. These options precede any command line options that are received from the compiler driver.
The link-editor parses the entire option list for any invalid options or any options with invalid associated arguments. When either of these cases are found, a suitable error message is generated. If the error is deemed fatal, the link-edit terminates. In the following example, the illegal option -X, and the illegal argument to the -z option, are caught by the link-editor's checking.
$ ld -X -z sillydefs main.o ld: illegal option -- X ld: fatal: option -z has illegal argument `sillydefs'
If an option that requires an associated argument is specified twice, the link-editor produces a suitable warning and continue with the link-edit.
$ ld -e foo .... -e bar main.o ld: warning: option -e appears more than once, first setting taken
The link-editor also checks the option list for any fatal inconsistencies.
$ ld -dy -a main.o ld: fatal: option -dy and -a are incompatible
After processing all options, if no fatal error conditions have been detected, the link-editor proceeds to process the input files.
See Appendix A, Link-Editor Quick Reference for the most commonly used link-editor options, and ld(1) for a complete description of all link-editor options.