Go to main content
oracle home
Oracle® Solaris 11.3 Linkers and Libraries Guide
Exit Print View
Search Term
Search Scope:
This Document
Entire Library
Documentation Home
»
Oracle Solaris 11.3 Information Library
»
Oracle
®
Solaris 11.3 Linkers ...
»
Linker and Libraries Appendices
Updated: March 2018
Oracle
®
Solaris 11.3 Linkers and Libraries Guide
Document Information
Using This Documentation
Product Documentation Library
Access to Oracle Support
Feedback
Part I Using the Link-Editor and Runtime Linker
Chapter 1 Introduction to the Oracle Solaris Link Editors
Link Editing With the Link-Editor
Static Executables
Runtime Linking
Related Topics
Dynamic Linking
Application Binary Interfaces
32-Bit Environments and 64-Bit Environments
Environment Variables
Support Tools
Chapter 2 Link Editor
Invoking the Link-Editor
Direct Invocation
Using a Compiler Driver
Cross Link-Editing
Specifying the Link-Editor Options
Input File Processing
Archive Processing
Shared Object Processing
Linking With Additional Libraries
Library Naming Conventions
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
Symbol Processing
Symbol Visibility
Symbol Resolution
Simple Resolutions
Complex Resolutions
Fatal Resolutions
Undefined Symbols
Generating an Executable Output File
Generating a Shared Object Output File
Weak Symbols
Tentative Symbol Order Within the Output File
Defining Additional Symbols
Defining Additional Symbols with the -u option
Defining Symbol References
Defining Absolute Symbols
Defining Tentative Symbols
Augmenting a Symbol Definition
Reducing Symbol Scope
Symbol Elimination
External Bindings
String Table Compression
Generating the Output File
Relocation Processing
Displacement Relocations
Stub Objects
Using Stub Objects to Hide Obsolete Interfaces
Ancillary Objects
Debugger Access and Use of Ancillary Objects
Compressed Debug Sections
Compression Costs And Benefits
Parent Objects
Debugging Aids
Chapter 3 Runtime Linker
Shared Object Dependencies
Locating Shared Object Dependencies
Directories Searched by the Runtime Linker
Configuring the Default Search Paths
Dynamic String Tokens
Relocation Processing
Relocation Symbol Lookup
Default Symbol Lookup
Runtime Interposition
When Relocations Are Performed
Relocation Errors
Preloading Additional Objects
Lazy Loading of Dynamic Dependencies
Providing an Alternative to dlopen()
Deferred Dependencies
Initialization and Termination Routines
Limitations and Pitfalls of Initialization and Termination Code
Initialization and Termination Order
Runtime Security
Runtime Linking Programming Interface
Loading Additional Objects
Relocation Processing
Symbol Lookup
Obtaining New Symbols
Testing for Functionality
Using Interposition
Debugging Aids
Runtime Linker Debugging Facility
Debugger Module
Chapter 4 Shared Objects
Naming Conventions
Recording a Shared Object Name
Inclusion of Shared Objects in Archives
Recorded Name Conflicts
Shared Objects With Dependencies
Dependency Ordering
Shared Objects as Filters
Generating Standard Filters
Generating Weak Filters
Generating Auxiliary Filters
Filtering Combinations
Processing
Part II Linker and Libraries Quick Reference
Chapter 5 Link-Editor Quick Reference
Static Mode
Creating a Relocatable Object
Creating a Static Executable
Dynamic Mode
Creating a Shared Object
Creating a Dynamic Executable
Chapter 6 Symbol Capabilities Example
Creating a Symbol Capabilities Example
Exercising a Symbol Capabilities Example
Part III Linker and Libraries Advanced Topics
Chapter 7 Direct Bindings
Observing Symbol Bindings
Enabling Direct Binding
Using the –B direct Option
Using the –z direct Option
Using the DIRECT mapfile Keyword
Direct Bindings and Interposition
Localizing Symbol Instances
Removing Multiply Defined Symbols of the Same Name
Defining Explicit Interposition
Preventing a Symbol from being Directly Bound to
Using the –B nodirect Option
Using the NODIRECT mapfile Keyword
Chapter 8 Capability Processing
Identifying Capability Requirements
Identifying a Platform and Machine Capability
Identifying Hardware Capabilities
Identifying Software Capabilities
Software Capability Frame Pointer Processing
Software Capability Address Space Restriction Processing
Creating a Family of Symbol Capabilities Functions
Creating a Family of Symbol Capabilities Data Items
Converting Object Capabilities to Symbol Capabilities
Archive Considerations
Exercising a Capability Family
Development Evolution with Capabilities
Chapter 9 Building Objects to Optimize System Performance
Analyzing Files With elfdump
Underlying System
Lazy Loading of Dynamic Dependencies
Position-Independent Code
–K pic and –K PIC Options
Removing Unused Material
Removing Unused Sections
Removing Unused Files
Removing Unused Dependencies
Maximizing Shareability
Move Read-Only Data to Text
Collapse Multiply-Defined Data
Use Automatic Variables
Allocate Buffers Dynamically
Minimizing Paging Activity
Relocations
Symbol Lookup
When Relocations are Performed
Combined Relocation Sections
Copy Relocations
Using the –B symbolic Option
Profiling Shared Objects
Chapter 10 Mapfiles in the Link-Editor
Mapfile Structure and Syntax
Mapfile Version
Conditional Input
Directive Syntax
MATCH and MATCHREF Expressions
Example: Redirecting Sections
Mapfile Directives
CAPABILITY Directive
HW Attribute
HW_1 / HW_2 Attributes
MACHINE Attribute
PLATFORM Attribute
SF Attribute
SF_1 Attribute
DEPEND_VERSIONS Directive
ALLOW Attribute
REQUIRE Attribute
FILTER Directive
FILTEE Attribute
TYPE Attribute
HDR_NOALLOC Directive
PHDR_ADD_NULL Directive
LOAD, NOTE, NULL, and RESERVE_SEGMENT Directives
ALIGN Attribute (LOAD)
ASSIGN_SECTION Attribute (LOAD, NOTE, NULL)
DISABLE Attribute (LOAD, NOTE, NULL)
FLAGS Attribute (LOAD)
IS_ORDER Attribute (LOAD, NOTE, NULL)
MAX_SIZE Attribute (LOAD)
NOHDR Attribute (LOAD)
OS_ORDER Attribute (LOAD, NOTE, NULL)
PADDR Attribute (LOAD, RESERVE)
ROUND Attribute (LOAD)
SIZE Attribute (RESERVE)
SIZE_SYMBOL Attribute (LOAD, RESERVE)
VADDR (LOAD, RESERVE)
SEGMENT_ORDER Directive
STACK Directive
STUB_OBJECT Directive
SYMBOL_SCOPE and SYMBOL_VERSION Directives
ASSERT Attribute
AUXILIARY Attribute
FILTER Attribute
FLAGS Attribute
SIZE Attribute
TYPE Attribute
VALUE Attribute
Predefined Segments
Mapping Examples
Example: Section to Segment Assignment
Example: Predefined Section Modification
Link-Editor Internals: Section and Segment Processing
Section To Segment Assignment
Mapfile Directives for Predefined Segments and Entrance Criteria
Chapter 11 Interfaces and Versioning
Interface Compatibility
Internal Versioning
Creating a Version Definition
Creating a Weak Version Definition
Defining Unrelated Interfaces
Binding to a Version Definition
Verifying Versions in Additional Objects
Specifying a Version Binding
Binding to Additional Version Definitions
Version Stability
Relocatable Objects
External Versioning
Coordination of Versioned Filenames
Multiple External Versioned Files in the Same Process
Chapter 12 Establishing Dependencies with Dynamic String Tokens
Capability Specific Shared Objects
Reducing Capability Searches
Instruction Set Specific Shared Objects
Reducing Instruction Set Searches
System Specific Shared Objects
Locating Associated Dependencies
Dependencies Between Unbundled Products
Security in Coded Processes
Chapter 13 Extensibility Mechanisms
Link-Editor Support Interface
Invoking the Support Interface
32-Bit Environments and 64-Bit Environments
Support Interface Functions
Support Interface Example
Runtime Linker Auditing Interface
Establishing a Namespace
Creating an Audit Library
Invoking the Auditing Interface
Recording Local Auditors
Recording Global Auditors
Audit Interface Interactions
Audit Interface Functions
Audit Interface Control Flow
Audit Interface Example
Audit Interface Demonstrations
Audit Interface Limitations
Exercising Application Code
Use of la_pltexit()
Functions That Directly Inspect the Stack
Runtime Linker Debugger Interface
Interaction Between Controlling and Target Process
Debugger Interface Agents
Debugger Exported Interface
Agent Manipulation Interfaces
Error Handling
Scanning Loadable Objects
Event Notification
Procedure Linkage Table Skipping
Dynamic Object Padding
Debugger Import Interface
Part IV ELF Application Binary Interface
Chapter 14 Object File Format
File Format
Data Representation
ELF Header
ELF Identification
Data Encoding
Section Headers
Extended Section Header
Section Merging
Section Compression
-Style Section Compression
Special Sections
Ancillary Section
Section
Group Section
Capabilities Section
Hash Table Section
Move Section
Note Section
Program Header Name Section
Relocation Sections
Relocation Calculations
SPARC: Relocation Entries
SPARC: Relocation Types
64-bit SPARC: Relocation Types
x86: Relocation Entries
32-bit x86: Relocation Types
x64: Relocation Types
String Table Section
Symbol Table Section
Symbol Values
Symbol Table Layout and Conventions
Symbol Sort Sections
Register Symbols
Table Section
Versioning Sections
Version Definition Section
Version Dependency Section
Version Symbol Section
Chapter 15 Program Loading and Dynamic Linking
Program Header
Base Address
Segment Permissions
Segment Contents
Program Loading (Processor-Specific)
Program Interpreter
Runtime Linker
Dynamic Section
Global Offset Table (Processor-Specific)
Procedure Linkage Table (Processor-Specific)
32-bit SPARC: Procedure Linkage Table
64-bit SPARC: Procedure Linkage Table
32-bit x86: Procedure Linkage Table
x64: Procedure Linkage Table
Chapter 16 Thread-Local Storage
C/C++ Programming Interface
Thread-Local Storage Section
Runtime Allocation of Thread-Local Storage
Program Startup
Thread Creation
Post-Startup Dynamic Loading
Deferred Allocation of Thread-Local Storage Blocks
Thread-Local Storage Access Models
SPARC: Thread-Local Variable Access
SPARC: General Dynamic (GD)
SPARC: Local Dynamic (LD)
32-bit SPARC: Initial Executable (IE)
64-bit SPARC: Initial Executable (IE)
SPARC: Local Executable (LE)
SPARC: Thread-Local Storage Relocation Types
32-bit x86: Thread-Local Variable Access
32-bit x86: General Dynamic (GD)
x86: Local Dynamic (LD)
32-bit x86: Initial Executable (IE)
32-bit x86: Local Executable (LE)
32-bit x86: Thread-Local Storage Relocation Types
x64: Thread-Local Variable Access
x64: General Dynamic (GD)
x64: Local Dynamic (LD)
x64: Initial Executable (IE)
x64: Local Executable (LE)
x64: Thread-Local Storage Relocation Types
Part V Linker and Libraries Appendices
Appendix A Linker and Libraries Updates and New Features
Oracle Solaris 11.3 Release
Oracle Solaris 11.2 Release
Oracle Solaris 11.1 Release
Oracle Solaris 11
Oracle Solaris 10 1/13 Release
Oracle Solaris 10 8/11 Release
Obsolete Feature
Solaris 10 5/08 Release
Solaris 10 8/07 Release
Solaris 10 1/06 Release
Solaris 10 Release
Appendix B System V Release 4 (Version 1) Mapfiles
Mapfile Structure and Syntax
Segment Declarations
Mapping Directives
Section-Within-Segment Ordering
Size-Symbol Declarations
File Control Directives
Mapping Example
Mapfile Option Defaults
Internal Map Structure
Index
Index Numbers and Symbols
Index A
Index B
Index C
Index D
Index E
Index F
Index G
Index I
Index L
Index M
Index N
Index O
Index P
Index R
Index S
Index T
Index U
Index V
Index W
Please tell us how to improve our documentation:
Provide more details about the topic
Fix incorrect information
0 of 500
Provide missing information
0 of 500
Provide translated version
--Select--
Deutsch
Español
Français
Italiano
Português Brasil
日本語
한국어
简体中文
繁體中文
Other Language
Other
0 of 500
Terms of Use |
Your Privacy Rights
|
|
Ad Choices
Thank you for your feedback! If you want to participate in content improvement and share additional information, please click Feedback button.
Rate this document:
Print View
Language:
English
Part V
Linker and Libraries Appendices
Previous
Next