JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Linker and Libraries Guide     Oracle Solaris 11 Express 11/10
search filter icon
search icon

Document Information

Preface

1.  Introduction to the Oracle Solaris Link Editors

2.  Link-Editor

3.  Runtime Linker

4.  Shared Objects

5.  Application Binary Interfaces and Versioning

6.  Support Interfaces

7.  Object File Format

8.  Thread-Local Storage

9.  Mapfiles

A.  Link-Editor Quick Reference

B.  Versioning Quick Reference

C.  Establishing Dependencies with Dynamic String Tokens

D.  Direct Bindings

E.  System V Release 4 (Version 1) Mapfiles

F.  Linker and Libraries Updates and New Features

Index

Preface

In the Oracle Solaris operating system (Oracle Solaris OS), application developers can create applications and libraries by using the link-editor ld(1), and execute these objects with the aid of the runtime linker ld.so.1(1). This manual is for engineers who want to understand more fully the concepts involved in using the Oracle Solaris link-editor, runtime linker and related tools.


Note - This Oracle Solaris release supports systems that use the SPARC and x86 families of processor architectures. The supported systems appear in the Solaris OS: Hardware Compatibility Lists. This document cites any implementation differences between the platform types.

In this document these x86 related terms mean the following:

For supported systems, see the Solaris OS: Hardware Compatibility Lists.


About This Manual

This manual describes the operations of the Oracle Solaris link-editor and runtime linker. Special emphasis is placed on the generation and use of dynamic executables and shared objects because of their importance in a dynamic runtime environment.

Intended Audience

This manual is intended for a range of programmers who are interested in the Oracle Solaris link-editor, runtime linker, and related tools, from the curious beginner to the advanced user.

Most programmers should not need to read this manual from cover to cover.

How This Book Is Organized

Chapter 1, Introduction to the Oracle Solaris Link Editors provides an overview of the linking processes under the Oracle Solaris OS. This chapter is intended for all programmers.

Chapter 2, Link-Editor describes the functions of the link-editor. This chapter is intended for all programmers.

Chapter 3, Runtime Linker describes the execution environment and program-controlled runtime binding of code and data. This chapter is intended for all programmers.

Chapter 4, Shared Objects provides definitions of shared objects, describes their mechanisms, and explains how to create and use them. This chapter is intended for all programmers.

Chapter 5, Application Binary Interfaces and Versioning describes how to manage the evolution of an interface provided by a dynamic object. This chapter is intended for all programmers.

Chapter 6, Support Interfaces describes interfaces for monitoring, and in some cases modifying, link-editor and runtime linker processing. This chapter is intended for advanced programmers.

Chapter 7, Object File Format is a reference chapter on ELF files. This chapter is intended for advanced programmers.

Chapter 8, Thread-Local Storage describes Thread-Local Storage. This chapter is intended for advanced programmers.

Chapter 9, Mapfiles describes the Version 2 mapfile directives to the link-editor. This chapter is intended for advanced programmers.

Appendix A, Link-Editor Quick Reference provides an overview of the most commonly used link-editor options, and is intended for all programmers.

Appendix B, Versioning Quick Reference provides naming conventions and guidelines for versioning shared objects, and is intended for all programmers.

Appendix C, Establishing Dependencies with Dynamic String Tokens provides examples of how to use reserved dynamic string tokens to define dynamic dependencies, and is intended for all programmers.

Appendix D, Direct Bindings describes the runtime symbol search model associated with direct bindings. This appendix is intended for advanced programmers.

Appendix E, System V Release 4 (Version 1) Mapfiles describes the Version 1 mapfile directives to the link-editor. This chapter is intended for advanced programmers.

Appendix F, Linker and Libraries Updates and New Features provides an overview of new features and updates to the link-editor, runtime linker, and related tools, indicating the release in which the changes were made.

Throughout this document, all command line examples use sh(1) syntax. All programming examples are written in the C language.

Documentation, Support, and Training

See the following web sites for additional resources:

Oracle Welcomes Your Comments

Oracle welcomes your comments and suggestions on the quality and usefulness of its documentation. If you find any errors or have any other suggestions for improvement, go to http://docs.sun.com and click Feedback. Indicate the title and part number of the documentation along with the chapter, section, and page number, if available. Please let us know if you want a reply.

Oracle Technology Network offers a range of resources related to Oracle software:

Typographic Conventions

The following table describes the typographic conventions that are used in this book.

Table P-1 Typographic Conventions

Typeface
Meaning
Example
AaBbCc123
The names of commands, files, and directories, and onscreen computer output
Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.

AaBbCc123
What you type, contrasted with onscreen computer output
machine_name% su

Password:

aabbcc123
Placeholder: replace with a real name or value
The command to remove a file is rm filename.
AaBbCc123
Book titles, new terms, and terms to be emphasized
Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.

Note: Some emphasized items appear bold online.

Shell Prompts in Command Examples

The following table shows the default UNIX system prompt and superuser prompt for shells that are included in the Oracle Solaris OS. Note that the default system prompt that is displayed in command examples varies, depending on the Oracle Solaris release.

Table P-2 Shell Prompts

Shell
Prompt
Bash shell, Korn shell, and Bourne shell
$
Bash shell, Korn shell, and Bourne shell for superuser
#
C shell
machine_name%
C shell for superuser
machine_name#