Linker and Libraries Guide
  Sök endast i den här boken
Visa den här boken i:
Ladda ner denna bok i PDF (2021 KB)

Appendix D Linker and Libraries Updates and New Features

This appendix provides an overview of the updates and new features that have been added to releases of the Solaris OS.

Solaris 10 5/08 Release

  • Global auditing can now be enabled by recording an auditor within an application together with the link-editor -z globalaudit option. See Recording Global Auditors.

  • Additional link-editor support interfaces, ld_open() and ld_open64() have been added. See Support Interface Functions.

Solaris 10 8/07 Release

  • Greater flexibility in executing an alternative link-editor is provided with the link-editor -z altexec64 option, and the LD_ALTEXEC environment variable. See The 32–bit link-editor and 64–bit link-editor.

  • Symbol definitions that are generated using mapfiles can now be associated to ELF sections. See Defining Additional Symbols with a mapfile.

  • The link-editors now provide for the creation of static TLS within shared objects. In addition, a backup TLS reservation is established to provide for limited use of static TLS within post-startup shared objects. See Program Startup.

Solaris 10 1/06 Release

  • Support for the x64 medium code model is provided. See Table 7–4, Table 7–8, and Table 7–10.

  • The command line arguments, environment variables, and auxiliary vector array of the process, can be obtained using the dlinfo(3C) flag RTLD_DI_ARGSINFO.

  • Greater flexibility in prohibiting direct binding from external references is provided with the link-editor -B nodirect option. See Direct Bindings.

Solaris 10 Release

Solaris 9 9/04 Release

Solaris 9 4/04 Release

  • The new section types SHT_SUNW_ANNOTATE, SHT_SUNW_DEBUGSTR, SHT_SUNW_DEBUG, and SHT_SPARC_GOTDATA are supported. See Table 7–5.

  • The analysis of runtime interfaces is simplified with the new utility lari(1).

  • Greater control of direct bindings is provided with the link-editor options -z direct and -z nodirect, together with the DIRECT and NODIRECT mapfile directives. See Defining Additional Symbols with a mapfile, and Direct Bindings.

Solaris 9 12/03 Release

  • Performance improvements within ld(1) can significantly reduce the link-edit time of very large applications.

Solaris 9 8/03 Release

  • dlsym(3C) symbol processing can be reduced using a dlopen(3C) handle that is created with the RTLD_FIRST flag. See Obtaining New Symbols.

  • The signal used by the runtime linker to terminate an erroneous process can be managed using the dlinfo(3C) flags RTLD_DI_GETSIGNAL, and RTLD_DI_SETSIGNAL.

Solaris 9 12/02 Release

Solaris 9 Release

Solaris 8 07/01 Release

Solaris 8 01/01 Release

  • The symbolic information that is made available from dladdr(3C) has been enhanced with the introduction of dladdr1().

  • The $ORIGIN of a dynamic object can be obtained from dlinfo(3C).

  • The maintenance of runtime configuration files that are created with crle(1) has been simplified. Inspection of a configuration file displays the command line options used to create the file. An update capability is provided with 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 Interfaces. This update extends the rd_plt_info_t structure. See rd_plt_resolution() under Procedure Linkage Table Skipping.

  • An application's stack can be defined non-executable by using the new mapfile segment descriptor STACK. See Segment Declarations.

Solaris 8 10/00 Release

  • 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 Interfaces. This update extends the rd_loadobj_t structure. See Scanning Loadable Objects.

  • You can now validate displacement relocated data in regard to its use, or possible use, with copy relocations. See Displacement Relocations.

  • 64–bit filters can be built solely from a mapfile by using the link-editor's -64 option. See Generating Standard Filters.

  • The search paths used to locate the dependencies of dynamic objects can be inspected using dlinfo(3C).

  • dlsym(3C) and dlinfo(3C) 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 Direct Bindings.

Solaris 8 Release

  • 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 linker's search paths can be achieved with the link-editor's -z nodefaultlib 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 enables you to use -z defs with externally defined symbols. See Defining Additional Symbols with a mapfile.

  • The new $ISALIST, $OSNAME, and $OSREL dynamic string tokens provide greater flexibility in establishing instruction set specific, and system specific dependencies. See Dynamic String Tokens.

  • The link-editor options -p and -P provide additional means of invoking runtime link auditing libraries. See Recording Local Auditors. The runtime link auditing interfaces la_activity() and la_objsearch() have been added. See Audit Interface Functions.

  • A new dynamic section tag, DT_CHECKSUM, enables you to coordinate ELF files with core images. See Table 7–32.