Home Explore Blog CI



man-pages

19th chunk of `ld.man`
04ed929cb92d087df1690f6fae46529c9014e55411d85bcc0000000100000fb7
 are  not
               exported between shared objects, which is not usually what’s intended.

           text
           notext
           textoff
               Report an error if DT_TEXTREL is set, i.e., if the position‐independent or shared object has dynamic relocations in read‐only sections.  Don’t report an error if notext or textoff.

           undefs
               Do not report unresolved symbol references from regular object files, either when creating an executable, or when creating a shared library.  This option is the inverse of -z defs.

           unique‐symbol
           nounique‐symbol
               Avoid duplicated local symbol names in the symbol string table.  Append "."number"" to duplicated local symbol names if unique‐symbol is used.  nounique‐symbol is the default.

           x86-64-baseline
           x86-64-v2
           x86-64-v3
           x86-64-v4
               Specify  the  x86-64  ISA  level  needed  in  .note.gnu.property  section.   x86-64-baseline  generates "GNU_PROPERTY_X86_ISA_1_BASELINE".  x86-64-v2 generates "GNU_PROPERTY_X86_ISA_1_V2".  x86-64-v3 generates
               "GNU_PROPERTY_X86_ISA_1_V3".  x86-64-v4 generates "GNU_PROPERTY_X86_ISA_1_V4".  Supported for Linux/i386 and Linux/x86_64.

           Other keywords are ignored for Solaris compatibility.

       -( archives -)
       --start-group archives --end-group
           The archives should be a list of archive files.  They may be either explicit file names, or -l options.

           The specified archives are searched repeatedly until no new undefined references are created.  Normally, an archive is searched only once in the order that it is specified on the command line.  If a symbol in that
           archive is needed to resolve an undefined symbol referred to by an object in an archive that appears later on the command line, the linker would not be able to resolve that reference.  By  grouping  the  archives,
           they will all be searched repeatedly until all possible references are resolved.

           Using this option has a significant performance cost.  It is best to use it only when there are unavoidable circular references between two or more archives.

       --accept-unknown-input-arch
       --no-accept-unknown-input-arch
           Tells the linker to accept input files whose architecture cannot be recognised.  The assumption is that the user knows what they are doing and deliberately wants to link in these unknown input files.  This was the
           default behaviour of the linker, before release 2.14.  The default behaviour from release 2.14 onwards is to reject such input files, and so the --accept-unknown-input-arch option has been added to restore the old
           behaviour.

       --as-needed
       --no-as-needed
           This  option  affects  ELF  DT_NEEDED  tags for dynamic libraries mentioned on the command line after the --as-needed option.  Normally the linker will add a DT_NEEDED tag for each dynamic library mentioned on the
           command line, regardless of whether the library is actually needed or not.  --as-needed causes a DT_NEEDED tag to only be emitted for a library that at that point in the link satisfies a non‐weak undefined  symbol
           reference  from  a  regular object file or, if the library is not found in the DT_NEEDED lists of other needed libraries, a non‐weak undefined symbol reference from another needed dynamic library.  Object files or
           libraries appearing on the command line after the library in question do not affect whether the library is seen  as  needed.   This  is  similar  to  the  rules  for  extraction  of  object  files  from  archives.
           --no-as-needed restores the default behaviour.

           Note: On Linux based systems the --as-needed option also has an affect on the behaviour of the --rpath and --rpath-link options.  See the description of --rpath-link for more details.

       --add-needed
       --no-add-needed

Title: LD (GNU Linker) - Keyword Options (Continued): Error Reporting, Symbol Handling, Architecture Flags, and Archive Grouping
Summary
This section covers the remaining linker options, including options for error reporting on dynamic relocations, handling unresolved symbol references, ensuring unique symbol names, specifying x86-64 ISA levels, grouping archives for circular dependencies, accepting unknown input architectures, controlling DT_NEEDED tags for dynamic libraries with --as-needed, and the start of options related to adding needed dependencies.