Go to main content

Oracle® Solaris 11.4 Linkers and Libraries Guide

Exit Print View

Updated: Draft
 
 

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 Oracle Solaris OS.

Oracle Solaris 11.4 Release

  • Deferred references can now be defined on a per-symbol basis. See Providing an Alternative to dlopen and Deferred Symbol References.

  • The following utilities are only delivered as 64-bit objects. ar(1), dump(1), elfcompress(1), elfdump(1), elfedit(1), elffile(1), elfwrap(1), ldd(1), mcs(1), nm(1), pvs(1), size(1), and strip(1). All utilities retain their ability to work with both 32-bit and 64-bit ELF objects.

  • Mapfiles can match symbol names against glob, regular expression, or literal text patterns, and generate replacement symbol names that incorporate substrings from the input names. See MATCH and MATCHREF Expressions.

  • Standard functions for section compression and decompression have been added to libelf. elf_compress(3ELF), elf_compress_gnu(3ELF), elf32_getchdr(3ELF), elf64_getchdr(3ELF), and gelf_getchdr(3ELF).

  • ld(1) provides the –z sx option to control ASLR, NXHEAP, NXSTACK, ADIHEAP and ADISTACK security extensions within individual executables. The –z sx option supersedes the –z aslr, –z nxheap and –z nxstack options. See Requesting Security Extensions.

  • The dependencies of kernel modules can be listed by the new utility kldd(1).

  • Oracle Solaris ELF objects provide names for program headers that represent mapping segments. These names are displayed by elfdump(1), elfedit(1), mdb(1), pmap(1), and pmadvise(1).

  • The significant differences between two ELF files can be analyzed by the new utility elfdiff(1).

  • The –z sysroot option, in conjunction with the $SYSROOT/ prefix to the –L option, can be used to direct the link-editor to search for libraries within a system image other than the system root directory /. The use of a sysroot is useful in cross linking scenarios where objects are being built to run on a system other than the build system. See ld(1).

  • The –S option to ldd(1) specifies the system root to be applied to all objects located by path searching. By default path searching is interpreted relative to the system root directory /.

Obsolete Feature

The following items have been made obsolete. These items provided internal, or seldom used features. Any existing use of the associated ELF definitions is ignored, however the definitions can still be displayed by tools such as elfdump(1).

$ISALIST

This dynamic token would expand to the native instruction sets of a platform, and could be employed to represent filter, runpath and dependency definitions. This token is no longer expanded by the link-editor, or runtime linker.

crle(1)

Support for the execution of alternative objects, that were created using the –I, or –G options, has been removed. The DF_1_CONFALT flag, which identified an alternative object within the DT_FLAGS_1 dynamic entry, can no longer be created. Any existing object containing this flag is rejected by the runtime linker.

The –f, –i, –I, –g, –G, and –t AOUT options have been removed. Any use of these options result in an error condition.

The –a and –A options have new restrictions on their use. Only files can be redirected, not entire directories. Any use of these options must be preceded by a –o option.

The RTLD_REL_ flags defined in the header file dlfcn.h, that were available to dldump(3C), are no longer supported. Any use of these flags with dldump(3C) result in an error condition.

SHF_ORDERED

Support for the SHF_ORDERED section header flag has been discontinued. This flag was never used in a shipping version of Oracle Solaris.

SHN_BEFORE / SHN_AFTER

Support for the SHN_BEFORE and SHN_AFTER special section indexes used with SHF_ORDERED and SHF_LINK_ORDER has been deprecated. Their use is discouraged, but remains supported in objects with fewer than SHN_LORESERVE sections. See Extended Section Header.