diff options
Diffstat (limited to 'ld/ld.texinfo')
-rw-r--r-- | ld/ld.texinfo | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 55f861e..f50d79a 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -972,6 +972,18 @@ behaviour from release 2.14 onwards is to reject such input files, and so the @samp{--accept-unknown-input-arch} option has been added to restore the old behaviour. +@kindex --as-needed +@kindex --no-as-needed +@item --as-needed +@itemx --no-as-needed +This option affects ELF DT_NEEDED tags for dynamic libraries mentioned +on the command line after the @option{--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. @option{--as-needed} causes DT_NEEDED tags to only be emitted +for libraries that satisfy some reference from regular objects. +@option{--no-as-needed} restores the default behaviour. + @kindex -assert @var{keyword} @item -assert @var{keyword} This option is ignored for SunOS compatibility. @@ -1101,15 +1113,6 @@ generating dynamically linked ELF executables. The default dynamic linker is normally correct; don't use this unless you know what you are doing. -@cindex MIPS embedded PIC code -@kindex --embedded-relocs -@item --embedded-relocs -This option is only meaningful when linking MIPS embedded PIC code, -generated by the -membedded-pic option to the @sc{gnu} compiler and -assembler. It causes the linker to create a table which may be used at -runtime to relocate any data which was statically initialized to pointer -values. See the code in testsuite/ld-empic for details. - @kindex --fatal-warnings @item --fatal-warnings @@ -1133,9 +1136,9 @@ it ends in a @code{.exe} suffix. @itemx --gc-sections Enable garbage collection of unused input sections. It is ignored on targets that do not support this option. This option is not compatible -with @samp{-r}, nor should it be used with dynamic linking. The default -behaviour (of not performing this garbage collection) can be restored by -specifying @samp{--no-gc-sections} on the command line. +with @samp{-r}. The default behaviour (of not performing this garbage +collection) can be restored by specifying @samp{--no-gc-sections} on +the command line. @cindex help @cindex usage @@ -1702,9 +1705,9 @@ Here is a trivial example: @smallexample void * -__wrap_malloc (int c) +__wrap_malloc (size_t c) @{ - printf ("malloc called with %ld\n", c); + printf ("malloc called with %zu\n", c); return __real_malloc (c); @} @end smallexample @@ -2353,7 +2356,7 @@ at address @samp{0x8000000}. After the linker places the @samp{.data} output section, the value of the location counter will be @samp{0x8000000} plus the size of the @samp{.data} output section. The effect is that the linker will place the @samp{.bss} output section -immediately after the @samp{.data} output section in memory +immediately after the @samp{.data} output section in memory. The linker will ensure that each output section has the required alignment, by increasing the location counter if necessary. In this @@ -4643,6 +4646,23 @@ page of memory, and changes them to use the eight-bit address form. (That is: the linker turns @samp{mov.b @code{@@}@var{aa}:16} into @samp{mov.b @code{@@}@var{aa}:8} whenever the address @var{aa} is in the top page of memory). + +@item bit manipulation instructions +@command{ld} finds all bit manipulation instructions like @code{band, bclr, +biand, bild, bior, bist, bixor, bld, bnot, bor, bset, bst, btst, bxor} +which use 32 bit and 16 bit absolute address form, but refer to the top +page of memory, and changes them to use the 8 bit address form. +(That is: the linker turns @samp{bset #xx:3,@code{@@}@var{aa}:32} into +@samp{bset #xx:3,@code{@@}@var{aa}:8} whenever the address @var{aa} is in +the top page of memory). + +@item system control instructions +@command{ld} finds all @code{ldc.w, stc.w} instrcutions which use the +32 bit absolute address form, but refer to the top page of memory, and +changes them to use 16 bit address form. +(That is: the linker turns @samp{ldc.w @code{@@}@var{aa}:32,ccr} into +@samp{ldc.w @code{@@}@var{aa}:16,ccr} whenever the address @var{aa} is in +the top page of memory). @end table @ifclear GENERIC @@ -4750,6 +4770,12 @@ But it also sets the bottom bit of the address, so that it can be branched to using a BX instruction, and the program will start executing in Thumb mode straight away. +@cindex BE8 +@kindex --be8 +The @samp{--be8} switch instructs @command{ld} to generate BE8 format +executables. This option is only valid when linking big-endian objects. +The resulting image will contain big-endian data and little-endian code. + @ifclear GENERIC @lowersections @end ifclear |