This section gives an overview of new features and updates that have been added to this document and indicates to which release they were added:
Unused dependencies can be determined using ldd(1) (see the -u option).
Various ELF ABI extensions have been added and the associated documentation revised. See "Initialization and Termination Sections", "Initialization and Termination Routines", Table 7-4, Table 7-7, Table 7-14, Table 7-15, "Section Groups", Table 7-17, Table 7-22, Table 7-43, Table 7-44, and "Program Loading (Processor-Specific)".
Greater flexibility in the use of link-editor specific environment variables has been provide with the addition of _32 and _64 variants. See "Environment Variables".
The symbolic information available from dladdr(3DL) has been enhanced with the introduction of dladdr1().
The $ORIGIN (see "Locating Associated Dependencies") of a dynamic object can be obtained from dlinfo(3DL).
The maintenance of runtime configuration files, created with crle(1), has been simplified with the display of the command-line options used to create the configuration file, together with an update capability (see the -u option).
The runtime linker and its debugger interface have been extended to detect procedure linkage table entry resolution. This update is identified by a new version number. See rd_init() under "Agent Manipulation". This update extends the rd_plt_info_t structure. See rd_plt_resolution() under "Procedure Linkage Table Skipping".
An applications stack can be defined non-executable using the new mapfile segment descriptor STACK. See "Segment Declarations".
The environment variable LD_BREADTH
is ignored by the runtime linker. See "Initialization and Termination Routines".
The runtime linker and its debugger interface have been extended for better runtime and core file analysis. This update is identified by a new version number. See rd_init() under "Agent Manipulation". This update extends the rd_loadobj_t structure. See "Scanning Loadable Objects".
The validation of displacement relocated data in regard to its use, or possible use, with copy relocations is now provided. See "Displacement Relocations".
64-bit filters can be built solely from a mapfile using the link-editors -64 option. See "Generating a Standard Filter".
Some explanatory notes on why $ORIGIN dynamic string token expansion is restricted within secure applications are provided in "Security".
The search paths used to locate the dependencies of dynamic objects can be inspected using dlinfo(3DL).
dlsym(3DL) and dlinfo(3DL) lookup semantics have been expanded with a new handle RTLD_SELF.
The runtime symbol lookup mechanism used to relocate dynamic objects can be significantly reduced by establishing direct binding information within each dynamic object. See "External Bindings" and "Direct Binding".
The secure directory from which files can be preloaded is now /usr/lib/secure for 32-bit objects and /usr/lib/secure/64 for 64-bit objects. See "Security".
Greater flexibility in modifying the runtime linkers search paths can be achieved with the link-editors -znodefaultlib option, and runtime configuration files created by the new utility crle(1). See "Directories Searched by the Runtime Linker" and "Configuring the Default Search Paths".
The new extern mapfile directive provides for -zdefs usage with externally defined symbols. See "Defining Additional Symbols".
Greater flexibility in establishing instruction set specific, and system specific dependencies is provided with the new $ISALIST, $OSNAME, and $OSREL dynamic string tokens. See "Dynamic String Tokens".
Some cautionary notes on the use of the link-editors -Bsymbolic option are provided in "The Use of -Bsymbolic".
Additional means of invoking runtime link auditing libraries is provided by the link-editor options -p and -P. See "Recording Local Auditors". Additional runtime link auditing interfaces la_activity() and la_objsearch() have been added. See "Audit Interface Functions".
Coordination of ELF files with core images is possible with a new dynamic section tag, DT_CHECKSUM. See Table 7-43.
The 64-bit ELF object format is now supported. See "File Format" for details. Link-editor extensions and differences for 64-bit processing
include: the use of /usr/lib/64 (see "Directories Searched by the Link-Editor", "Directories Searched by the Runtime Linker", and "Naming Conventions"), the environment variable LD_LIBRARY_PATH_64
(see "Using an Environment Variable", and "Directories Searched by the Runtime Linker"), and the runtime linker /usr/lib/64/ld.so.1 (see "Overview").
Shared objects can be built with optimized relocation sections using the link-editors -zcombreloc option. See "Combined Relocation Sections".
Greater flexibility in establishing dependencies within unbundled software is provided with the new $ORIGIN dynamic string token. See "Dynamic String Tokens".
The loading of a shared object can now be deferred until the object is actually referenced by the running program. See "Lazy Loading of Dynamic Dependencies".
The SHT_SUNW_COMDAT section has been added to allow for the elimination of multiply-defined symbols. See "Comdat Section".
The SHT_SUNW_move section has been added to allow for partially initialized symbols. See "Move Section".
Additional runtime link auditing interfaces la_symbind64(), la_sparcv9_pltenter(), and la_pltexit64(), together with a new link-auditing flag LA_SYMB_ALTVALUE, have been added. See "Audit Interface Functions".
Weak symbol references can trigger archive member extraction by using the link-editors -zweakextract option. Extracting all archive members can be achieved using the -zallextract option. See "Archive Processing".
Shared objects specified as part of a link-edit that are not referenced by the object being built can be ignored, and hence their dependency recording suppressed, using the link-editors -zignore option. See "Shared Object Processing".
The link-editor generates the reserved symbols _START_ and _END_ to provide a means of establishing an objects address range. See "Generating the Output Image".
Changes have been made to the runtime ordering of initialization and finalization code to better accommodate dependency requirements. See "Initialization and Termination Routines".
Symbol resolution semantics have been expanded for dlopen(3DL). See "Symbol Lookup", RTLD_GROUP in "Isolating a Group", and RTLD_PARENT in "Object Hierarchies".
Symbol lookup semantics have been expanded with a new dlsym(3DL) handle RTLD_DEFAULT. See "Default Symbol Lookup Model".
Extensions have been made to filter processing that allow more than one filtee to be defined, and provide for forcibly loading filtees. An example of creating a platform specific filter is also provided. See "Shared Objects as Filters".
Recording additional version dependencies can be achieved using the mapfile file control directive $ADDVERS. See "Binding to Additional Version Definitions".
A runtime linker audit interface provides support for monitoring and modifying a dynamically linked application from within the process. See "Runtime Linker Auditing Interface".
A runtime linker debugger interface provides support for monitoring and modifying a dynamically linked application from an external process. See "Runtime Linker Debugger Interface".
Additional section types are supported. See Table 7-11 for SHN_BEFORE and SHN_AFTER, and see Table 7-14 for SHF_ORDERED and SHF_EXCLUDE.
A new dynamic section tag, DT_1_FLAGS, is supported. See Table 7-45 for the various flag values.
A package of demonstration ELF programs is provided. See Chapter 7, Object Files.
The link-editors now support internationalized messages. All system errors are reported using strerror(3C).