Home Explore Blog CI



man-pages

45th chunk of `ld.man`
1d1c141baedff67bf64909e0c71700f7a1cc7276f778471c0000000100000fa7
 proprietary tools.  The problem with this default is that it will
           result in slightly different images being produced each time the same sources are linked.  The option --no-insert-timestamp can be used to insert a zero  value  for  the  timestamp,  this  ensuring  that  binaries
           produced from identical sources will compare identically.

           If  --insert-timestamp  is  active  then  the time inserted is either the time that the linking takes place or, if the "SOURCE_DATE_EPOCH" environment variable is defined, the number of seconds since Unix epoch as
           specified by that variable.

       --enable-reloc-section
       --disable-reloc-section
           Create the base relocation table, which is necessary if the image is loaded at a different image base than specified in the PE header.  This option is enabled by default.

       The C6X uClinux target uses a binary format called DSBT to support shared libraries.  Each shared library in the system needs to have a unique index; all executables use an index of 0.

       --dsbt-size size
           This option sets the number of entries in the DSBT of the current executable or shared library to size.  The default is to create a table with 64 entries.

       --dsbt-index index
           This option sets the DSBT index of the current executable or shared library to index.  The default is 0, which is appropriate for generating executables.  If a shared library is generated with a DSBT index  of  0,
           the "R_C6000_DSBT_INDEX" relocs are copied into the output file.

           The --no-merge-exidx-entries switch disables the merging of adjacent exidx entries in frame unwind info.

       --branch-stub
           This  option  enables  linker branch relaxation by inserting branch stub sections when needed to extend the range of branches.  This option is usually not required since C-SKY supports branch and call instructions
           that can access the full memory range and branch relaxation is normally handled by the compiler or assembler.

       --stub-group-size=N
           This option allows finer control of linker branch stub creation.  It sets the maximum size of a group of input sections that can be handled by one stub section.  A negative value of N locates stub  sections  after
           their branches, while a positive value allows stub sections to appear either before or after the branches.  Values of 1 or -1 indicate that the linker should choose suitable defaults.

       The 68HC11 and 68HC12 linkers support specific options to control the memory bank switching mapping and trampoline code generation.

       --no-trampoline
           This option disables the generation of trampoline. By default a trampoline is generated for each far function which is called using a "jsr" instruction (this happens when a pointer to a far function is taken).

       --bank-window name
           This  option indicates to the linker the name of the memory region in the MEMORY specification that describes the memory bank window.  The definition of such region is then used by the linker to compute paging and
           addresses within the memory window.

       The following options are supported to control handling of GOT generation when linking for 68K targets.

       --got=type
           This option tells the linker which GOT generation scheme to use.  type should be one of single, negative, multigot or target.  For more information refer to the Info entry for ld.

       The following options are supported to control microMIPS instruction generation and branch relocation checks for ISA mode transitions when linking for MIPS targets.

       --insn32
       --no-insn32
           These options control the choice of microMIPS instructions used in code generated by the linker, such as that in the PLT or lazy binding stubs, or in relaxation.  If --insn32 is used, then  the  linker  only  uses
           32-bit instruction encodings.  By default

Title: LD (GNU Linker) DSBT, Branch Relaxation, and Target-Specific Options
Summary
This section covers linker options specific to certain target architectures. It discusses DSBT (Dynamic Shared Binary Translation) size and index options for C6X uClinux, branch relaxation for C-SKY, trampoline generation and memory bank window configuration for 68HC11/68HC12, GOT (Global Offset Table) generation schemes for 68K targets, and microMIPS instruction selection for MIPS targets. Also explained is the --no-merge-exidx-entries switch which disables the merging of adjacent exidx entries in frame unwind info.