1-*- text -*- 2 3Changes in 2.34: 4 5* cr16c support removed. 6 7* Add support for z80-elf. 8 9* Add support for relocation of each byte or word of multibyte value to Z80 10 targets. 11 12* Add support for Zilog eZ80 (both ADL and Z80 mode) and Zilog Z180 CPUs. 13 14Changes in 2.33: 15 16* Add command-line option --no-print-map-discarded. 17 18* The Cortex-A53 Erratum 843419 workaround now supports a choice of which 19 workaround to use. The option --fix-cortex-a53-843419 now takes an 20 optional argument --fix-cortex-a53-843419[=full|adr|adrp] which can be 21 used to force a particular workaround to be used. See --help for AArch64 22 for more details. 23 24* Add target handlers for AArch64 for ELF GNU program properties. 25 26* Add support for GNU_PROPERTY_AARCH64_FEATURE_1_BTI in ELF GNU program 27 properties in the AArch64 ELF linker. 28 29* Add support for GNU_PROPERTY_AARCH64_FEATURE_1_PAC in ELF GNU program 30 properties in the AArch64 ELF linker. 31 32* Add -z force-bti for AArch64 to enable GNU_PROPERTY_AARCH64_FEATURE_1_BTI 33 on output while warning about missing GNU_PROPERTY_AARCH64_FEATURE_1_BTI 34 on inputs and use PLTs protected with BTI. 35 36* Add -z pac-plt for AArch64 to pick PAC enabled PLTs. 37 38Changes in 2.32: 39 40* Report property change in linker map file when merging GNU properties. 41 42* Add support for the C-SKY processor series. 43 44* -t now doesn't report members within archives, unless -t is given twice. 45 A single -t is now more useful when generating a list of files that should be 46 packaged for a linker bug report. For example: 47 gcc hello.c -save-temps -Wl,-t | xargs realpath | sort | uniq > files 48 tar cJf test.tar.xz `cat files` 49 50Changes in 2.31: 51 52* Speed up direct linking with DLLs for Cygwin and Mingw targets. 53 54* Add a configure option --enable-separate-code to decide whether 55 -z separate-code should be enabled in ELF linker by default. Default 56 to yes for Linux/x86 targets. Note that -z separate-code can increase 57 disk and memory size. 58 59Changes in 2.30: 60 61* Add -z separate-code to generate separate code PT_LOAD segment. 62 63* Add "-z undefs" command-line option as the inverse of the "-z defs" option. 64 65* Add -z globalaudit command-line option to force audit libraries to be run 66 for every dynamic object loaded by an executable - provided that the loader 67 supports this functionality. 68 69* Tighten linker script grammar around file name specifiers to prevent the use 70 of SORT_BY_ALIGNMENT and SORT_BY_INIT_PRIORITY on filenames. These would 71 previously be accepted but had no effect. 72 73* The EXCLUDE_FILE directive can now be placed within any SORT_* directive 74 within input section lists. 75 76Changes in 2.29: 77 78* Support for -z shstk in the x86 ELF linker to generate 79 GNU_PROPERTY_X86_FEATURE_1_SHSTK in ELF GNU program properties. 80 81* Add support for GNU_PROPERTY_X86_FEATURE_1_SHSTK in ELF GNU program 82 properties in the x86 ELF linker. 83 84* Add support for GNU_PROPERTY_X86_FEATURE_1_IBT in ELF GNU program 85 properties in the x86 ELF linker. 86 87* Support for -z ibtplt in the x86 ELF linker to generate IBT-enabled 88 PLT. 89 90* Support for -z ibt in the x86 ELF linker to generate IBT-enabled 91 PLT as well as GNU_PROPERTY_X86_FEATURE_1_IBT in ELF GNU program 92 properties. 93 94* Add support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX. 95 96* Add support for ELF GNU program properties. 97 98* Add support for the Texas Instruments PRU processor. 99 100* When configuring for arc*-*-linux* targets the default linker emulation will 101 change if --with-cpu=nps400 is used at configure time. 102 103* Improve assignment of LMAs to orphan sections in some edge cases where a 104 mixture of both AT>LMA_REGION and AT(LMA) are used. 105 106* Orphan sections placed after an empty section that has an AT(LMA) will now 107 take an load memory address starting from LMA. 108 109* Section groups can now be resolved (the group deleted and the group members 110 placed like normal sections) at partial link time either using the new linker 111 option --force-group-allocation or by placing FORCE_GROUP_ALLOCATION into the 112 linker script. 113 114Changes in 2.28: 115 116* The EXCLUDE_FILE linker script construct can now be applied outside of the 117 section list in order for the exclusions to apply over all input sections in 118 the list. 119 120* Add support for the RISC-V architecture. 121 122* The command-line option --no-eh-frame-hdr can now be used in ELF based 123 linkers to disable the automatic generation of .eh_frame_hdr sections. 124 125* Add --in-implib=<infile> to the ARM linker to enable specifying a set of 126 Secure Gateway veneers that must exist in the output import library specified 127 by --out-implib=<outfile> and the address they must have. As such, 128 --in-implib is only supported in combination with --cmse-implib. 129 130* Extended the --out-implib=<file> option, previously restricted to x86 PE 131 targets, to any ELF based target. This allows the generation of an import 132 library for an ELF executable, which can then be used by another application 133 to link against the executable. 134 135Changes in 2.27: 136 137* Add a configure option --enable-relro to decide whether -z relro should 138 be enabled in ELF linker by default. Default to yes for all Linux 139 targets except FRV, HPPA, IA64 and MIPS. Note that -z relro can increase 140 disk and memory size. 141 142* Support for -z noreloc-overflow in the x86-64 ELF linker to disable 143 relocation overflow check. 144 145* Add -z common/-z nocommon options for ELF targets to control whether to 146 convert common symbols to the STT_COMMON type during a relocatable link. 147 148* Support for -z nodynamic-undefined-weak in the x86 ELF linker, which 149 avoids dynamic relocations against undefined weak symbols in executable. 150 151* The NOCROSSREFSTO command was added to the linker script language. 152 153* Add --no-apply-dynamic-relocs to the AArch64 linker to do not apply link-time 154 values for dynamic relocations. 155 156Changes in 2.26: 157 158* Add --fix-stm32l4xx-629360 to the ARM linker to enable a link-time 159 workaround for a bug in the bus matrix / memory controller for some of 160 the STM32 Cortex-M4 based products (STM32L4xx) 161 162* Add a configure option --enable-compressed-debug-sections={all,ld} to 163 decide whether DWARF debug sections should be compressed by default. 164 165* Add support for the ARC EM/HS, and ARC600/700 architectures. 166 167* Experimental support for linker garbage collection (--gc-sections) 168 has been enabled for COFF and PE based targets. 169 170* New command-line option for ELF targets to compress DWARF debug 171 sections, --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]. 172 173* New command-line option, --orphan-handling=[place|warn|error|discard], to 174 adjust how orphan sections are handled. The default is 'place' which gives 175 the current behaviour, 'warn' and 'error' issue a warning or error 176 respectively when orphan sections are found, and 'discard' will discard all 177 orphan sections. 178 179* Add support for LLVM plugin. 180 181* Add --print-memory-usage option to report memory blocks usage. 182 183* Add --require-defined option, it's like --undefined except the new symbol 184 must be defined by the end of the link. 185 186Changes in 2.25: 187 188* PE binaries now once again contain real timestamps by default. To disable 189 the inclusion of a timestamp in a PE binary, use the --no-insert-timestamp 190 command-line option. 191 192* Replace support for openrisc and or32 with support for or1k. 193 194* Add support for the --build-id command-line option to COFF based targets. 195 196* x86/x86_64 pe-coff now supports the --build-id option. 197 198* Add support for the Andes NDS32. 199 200Changes in 2.24: 201 202* Add LOG2CEIL() builtin function to the linker script language 203 204* Add support for the Texas Instruments MSP430X processor. 205 206* Add support for Altera Nios II. 207 208* Add support for the V850E3V5 architecture. 209 210* Add support for the Imagination Technologies Meta processor. 211 212* --enable-new-dtags no longer generates old dtags in addition to new dtags. 213 214* Remove linker support for MIPS ECOFF targets. 215 216* Add ALIGN_WITH_INPUT to the linker script language to force the alignment of 217 an output section to use the maximum alignment of all its input sections. 218 219Changes in 2.23: 220 221* Enable compressed debug section feature for x86/x86_64 pe-coff. 222 223* Add support for the 64-bit ARM architecture: AArch64. 224 225* Added SORT_NONE to the linker script language to disable section sorting. 226 227* Add a linker-provided symbol when producing ELF output, '__ehdr_start' 228 to point to the ELF file header (and nearby program headers) in the 229 program's memory image. 230 231* Add support for S12X processor. 232 233* Add support for the VLE extension to the PowerPC architecture. 234 235* Add support for the Freescale XGATE architecture. 236 237* Add option -f FILE on AIX (for response file). 238 239* Add support for the Renesas RL78 architecture. 240 241* Add support for the Adapteva EPIPHANY architecture. 242 243Changes in 2.22: 244 245* --copy-dt-needed-entries is no longer enabled by default. Instead 246 --no-copy-dt-needed-entries is the default. 247 248* INPUT_SECTION_FLAGS has been added to the linker script language 249 to allow selection of input sections by section header section flags. 250 251* Add support for the Tilera TILEPro and TILE-Gx architectures. 252 253* Added SORT_BY_INIT_PRIORITY to the linker script language to permit 254 sorting sections by numerical value of the GCC init_priority attribute 255 encoded in the section name. 256 257Changes in 2.21: 258 259* Linker script expression evaluation is somewhat more sane. This may 260 break scripts that depend on quirks of the old expression evaluation. 261 262* Turn off underscoring for x86_64 PE+-COFF targets. For old behavior the 263 option --enable-leading-mingw64-underscores can be used on configure of 264 bfd. 265 266* Add support for the TMS320C6000 (TI C6X) processor family. 267 268* --add-needed renamed to --copy-dt-needed-entries in order to avoid confusion 269 with --as-needed option. 270 271* Extend .def file syntax by '== <ID>' for imports and exports. This allows 272 to alias the import/export table name written in PE image. 273 274* Add --exclude-all-symbols option to PE based linkers. This prevents all 275 symbols from automatically being exported. 276 277* Add support for the Renesas RX processor. 278 279* Add support for alpha-vms target. 280 281Changes in 2.20: 282 283* GNU/Linux targets now support the STB_GNU_UNIQUE symbol binding. This is a 284 GNU extension to the standard set of ELF symbol bindings. The binding will 285 be passed on to the dynamic linker which will make sure that in the entire 286 process there is just one symbol with the given name and type in use. 287 288* PE targets now support a GNU extension to allow the alignment of common 289 common symbols to be specified. This support uses custom options in 290 the .drectve section, which will be disregarded by the native tools. 291 292* PE targets now add primitive support for ELF version scripts; symbols 293 are not versioned, but the local and global symbol visibility directives 294 are respected when filtering symbols in auto-export mode. 295 296* New option --no-export-dynamic to undo the effect of the -E and 297 --export-dynamic options. 298 299* ELF: --warn-alternate-em option to warn if an object has alternate 300 ELF machine code. 301 302* New script function REGION_ALIAS to add alias names to memory regions. 303 304* PE targets no longer make use of the long section names PE extension to 305 the COFF format when generating executable images, by default. The old 306 (slightly non-conformant) behaviour can still be invoked by using the 307 new '--enable-long-section-names' command-line option. It is also enabled 308 automatically in the presence of un-stripped debug information, as GDB 309 needs to be able to find the debug info sections by their full names. 310 311* For GNU/Linux systems the linker will now avoid processing any relocations 312 made against symbols of the STT_GNU_IFUNC type and instead emit them into 313 the resulting binary for processing by the loader. 314 315* --as-needed now links in a dynamic library if it satisfies undefined 316 symbols in regular objects, or in other dynamic libraries. In the 317 latter case the library is not linked if it is found in a DT_NEEDED 318 entry of one of the libraries already linked. 319 320* Add a new command-line option, -Ttext-segment ADDR, for ELF targets 321 to set the address of the first byte of the text segment. 322 323* Add support for Sunplus score architecture. 324 325* Add new option --use-nul-prefixed-import-tables to ld for PE targets to 326 allow fallback to old import table generation with null element prefix. 327 328* Windows PE systems now support a new --exclude-modules-for-implib option, 329 allowing users to partition object files and archive members between a DLL 330 and its associated import library as they are generated during linking. 331 332* Add support for Lattice Mico32 (lm32) architecture. 333 334* Add CR16 ELF --embedded-relocs (used to embedded relocations into binaries 335 for Embedded-PIC code) option. 336 337* Add to the PE/PE+ targets the support of two different kinds of 338 pseudo-relocations. They can be selected by the switches 339 --enable-runtime-pseudo-reloc-v1 and --enable-runtime-pseudo-reloc-v2. 340 For the switch --enable-runtime-pseudo-reloc it uses for 32-bit 341 runtime pseudo relocation version one, for 64-bit the version two. 342 343Changes in 2.19: 344 345* Linker scripts support a new INSERT command that makes it easier to 346 augment the default script. 347 348* Linker script input section filespecs may now specify a file within an 349 archive by writing "archive:file". 350 351* The --sort-common switch now has an optional argument which specifies the 352 direction of sorting. 353 354* The M68K linker now supports multiple GOT generation schemes controlled via 355 the --got=<type> command-line option. 356 357* The ARM EABI linker will now generate stubs for function calls to symbols 358 that are too far away. The placement of the stubs is controlled by a new 359 linker command-line option: --stub-group-size=N. 360 361Changes in 2.18: 362 363* Linker sources now released under version 3 of the GNU General Public 364 License. 365 366* ELF: New --build-id option to generate a unique per-binary identifier 367 embedded in a note section. 368 369* Added support for National Semicondutor CompactRISC (ie CR16) target. 370 371* -l:foo now searches the library path for a filename called foo, 372 without converting it to libfoo.a or libfoo.so. 373 374* Add a new command-line option '--default-script=FILE' or '-dT FILE' 375 which specifies a replacement for the built in, default linker 376 script. 377 378* ELF: Add -Bsymbolic-functions, --dynamic-list-cpp-new, which puts C++ 379 operator new and delete on the dynamic list, and --dynamic-list-data, 380 builtin list for --dynamic-list, which puts global data symbols on the 381 dynamic list. 382 383* Add support for x86_64 PE+ target. 384 385* Add support for Score target. 386 387* ELF: Add --dynamic-list option to specify a list of global symbols 388 whose references shouldn't be bound to the definition within the 389 shared library, or a list of symbols which should be added to the 390 symbol table in the executable. 391 392* The default output section LMA has changed for allocatable sections from 393 being equal to VMA, to keeping the difference between LMA and VMA the same as 394 the previous output section in the same region. This is a more useful 395 default when using overlays and other cases where you specify an LMA 396 differing from the VMA for some sections. 397 398* New switch: --print-gc-sections to list any sections removed by garabge 399 collection. 400 401* ARM: Added --vfp11-denorm-fix option to work around an erratum in current 402 VFP11 coprocessors. 403 404Changes in 2.17: 405 406* Support for the Infineon XC16X has been added by KPIT Cummins Infosystems. 407 408* Modify the Linux linker search order to better match ld.so search order. 409 Look for DT_NEEDED libraries in paths specified by ld.so.conf before 410 searching the default directories, rather than vice versa. 411 Use $prefix/etc/ld.so.conf if it exists, otherwise /etc/ld.so.conf. 412 413* PE-COFF: Forward exports from DLL's can now be specified in .def files 414 passed directly to ld. 415 416* Support for the Z80 processor family has been added. 417 418* Add support for the "@<file>" syntax to the command line, so that extra 419 switches can be read from <file>. 420 421Changes in 2.16: 422 423* Support for the R_ARM_V4BX relocation as defined in the ARM AAELF 424 specification has been added via the --fix-v4bx command-line option. 425 426* New linker script construct AS_NEEDED(), which sets the --as-needed flag 427 for input files listed inside of it. 428 429* A new command-line option, --sysroot, can be used to override the 430 default sysroot location. It only applies to toolchains that were 431 configured using --with-sysroot. 432 433* New linker script functions: ORIGIN() and LENGTH() which return information 434 about a specified memory region. 435 436* Port to MAXQ processor contributed by HCL Tech. 437 438* Added SEGMENT_START to the linker script language to permit the user to 439 override the base address for a segment from the command-line. 440 441* ELF: --warn-shared-textrel option to warn if adding a DT_TEXTREL to a shared 442 object. 443 444* Added SORT_BY_NAME and SORT_BY_ALIGNMENT to the linker script 445 language to permit sorting sections by section name or section 446 maximum alignment. 447 448* Added a new linker command-line switch, --sort-section name|alignment, 449 to sort sections by section name or maximum alignment. 450 451* ELF: --add-needed/--no-add-needed options to control if a DT_NEEDED tag 452 should be added when a shared library comes from DT_NEEDED tags. 453 454* Support for the crx-elf target added. 455 456* Support for the sh-symbianelf target added. 457 458* A new linker command-line switch has been added which allows the hash table 459 size to be set to a suitable prime value near to its argument. This switch 460 is --hash-size=<NUMBER>. Also if the switch --reduce-memory-overheads is 461 used, and --hash-size has not been used, then the default value will be set 462 to 1021. 463 464* Linker map files are now generated with an O(N) algorithm for finding symbols 465 that are defined in each section. This uses about 40% more memory for 466 symbols than the old O(N^2) algorithm. You can use the new 467 --reduce-memory-overheads option to select the old algorithm; this option 468 might also be used in the future to select similar tradeoffs. 469 470Changes in 2.15: 471 472* ELF: --as-needed/--no-as-needed options to control if a DT_NEEDED tag should 473 be added only when a shared library is referenced. 474 475* PE: --large-address-aware option to indicate executables support virtual 476 addresses greater than 2 gigabytes. 477 478* DWARF 2 support for i386pe added. 479 480* The linker script operator DEFINED() will now yield 1 only for a symbol that 481 is defined before the statement where DEFINED is used. 482 483* The MIPS --embedded-relocs (used to embed relocations into binaries for 484 Embedded-PIC code) is deprecated and will be removed in a future release. 485 486* cr16c support added by NSC. 487 488* m32r Linux (ELF) support added by Renesas. 489 490* Improved linker's handling of unresolved symbols. The switch 491 --unresolved-symbols=<method> has been added to tell the linker when it 492 should report them and the switch --warn-unresolved-symbols has been added to 493 make reports be issued as warning messages rather than errors. 494 495Changes in 2.14: 496 497* Added support for Xtensa architecture. 498 499* Added --with-sysroot configure switch to specify a target system root, for 500 linking against a target filesystem image. 501 502* Added --accept-unknown-linker-format to restore old linker behaviour (pre 503 2.14) of silently accepting and linking in any files in an unknown binary 504 file format. 505 506* Added --no-omagic to undo the effects of the -N option. 507 508* Support for Texas Instruments TMS320C4x and TMS320C3x series of 509 DSP's contributed by Michael Hayes and Svein E. Seldal. 510 511* Added --with-lib-path configure switch to specify default value for 512 LIB_PATH. 513 514* ARM port to QNX operating system added by Graeme Peterson. 515 516* IP2K support added by Denis Chertykov. 517 518Changes in 2.13: 519 520* Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400 521 and FR500 included. 522 523Changes in version 2.13: 524 525* DEC VAX ELF support, by Matt Thomas. 526 527Changes in version 2.12: 528 529* Support for Don Knuth's MMIX, by Hans-Peter Nilsson. 530 531* Support for the OpenRISC 32-bit embedded processor by OpenCores. 532 533* Support for -z nocopyreloc in the x86 ELF linker, which disables 534 production of copy relocs. Warning: using this option may result in 535 non-sharable applications. 536 537* Support for -z combreloc in the ELF linker, which puts dynamic 538 relocations against the same symbol together, so that dynamic linker 539 can use an one-entry symbol lookup cache. 540 541* Support for ELF SHF_MERGE section merging, by Jakub Jelinek. 542 543Changes in version 2.11: 544 545* Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs. 546 547* Support added for eliminating duplicate DWARF2 debug information by 548 having the compiler generate the information in sections called 549 .gnu.linkonce.wi.XXXX where XXXX is a checksum for the contents. The 550 linker then merges these sections together into the normal .debug_info 551 section. 552 553* The native ELF linker now searches the directories in DT_RUNPATH or 554 DT_RPATH of a shared library for shared libraries needed by it. 555 556* TI C54x support, by Timothy Wall. 557 558* Added command-line switch --section-start to set the start address of any 559 specified section. 560 561* Added ability to emit full relocation information in linked executables, 562 enabled by --emit-relocs. Some post-linkage optimization tools need 563 this information in order to be able to correctly identify and perform 564 symbol relative addressing in the event of changes in section contents 565 (instructions being added or deleted, extending data sections, etc.) 566 567* Support for i860, by Jason Eckhardt (preliminary, alpha quality). 568 569* Support for CRIS (Axis Communications ETRAX series). 570 571* Support for PDP-11 and 2.11BSD a.out format, by Lars Brinkhoff. 572 573Changes in version 2.10: 574 575* Added AT> to the linker script language to allow load-time allocation of 576 sections into regions. 577 578* Added garbage collection of unused sections, enabled by --gc-sections. 579 It does require a bit of backend support; currently implemented are 580 arm-elf, avr-elf, d10v-elf, fr30-elf, i386-elf, m32r-elf, m68k-elf, 581 mcore-elf, mips-elf, mn10300-elf, ppc-elf, sh-elf, sparc-elf, and v850-elf. 582 Others will ignore the option. 583 584* Added SORT to the linker script language to permit sorting sections by file 585 name or section name. 586 587* Added EXTERN to the linker script language as an equivalent to the -u 588 command-line option. 589 590* Added ASSERT to the linker script language. 591 592* Added EXCLUDE_FILE to the linker script language for further control over 593 wildcard file names. 594 595* Added -O option to optimize linker output (as of this writing, this only 596 affects ELF shared library generation). 597 598* The -e option now accepts a number as well as a symbol name. 599 600* Added --no-undefined option to disallow undefined symbols when creating a 601 shared library. 602 603* The linker now issues a warning, not an error, for an undefined symbol when 604 using -Bsymbolic; use the new --no-undefined option to get the old 605 behaviour. 606 607* Added --demangle and --no-demangle options. 608 609Changes in version 2.9: 610 611* Added SQUAD to the linker script language. 612 613* New option --no-warn-mismatch. 614 615* The MEMORY command now parses the attributes to determine where sections that 616 are not placed in a specific memory region are placed. 617 618Changes in version 2.8: 619 620* Linker scripts may now contain shell wildcard characters for file and section 621 names. 622 623* The linker now supports symbol versions in ELF. 624 625* The NOCROSSREFS command was added to the linker script language. 626 627* The LOADADDR expression was added to the linker script language. 628 629* MAX and MIN functions were added to the linker script language. 630 631* The OVERLAY construct was added to the linker script language. 632 633* New option --warn-section-align to warn when the address of an output section 634 changes due to alignment of an input section. 635 636* New options --filter/-F and --auxiliary/-f. 637 638Changes in version 2.7: 639 640* New option --cref to print out a cross reference table. 641 642* New option --wrap SYMBOL. 643 644* New option --no-whole-archive, to turn off the effect of --whole-archive. 645 646* Input sections assigned to the output section /DISCARD/ in the linker script 647 are not included in the output file. 648 649* The SunOS and ELF linkers now merge stabs debugging information which uses 650 the N_BINCL and N_EINCL stab types. This reduces the amount of debugging 651 information generated. 652 653Changes in version 2.6: 654 655* When an ELF section name is representable as a C identifier (this is not true 656of most ELF section names), the linker will automatically define symbols 657__start_SECNAME and __stop_SECNAME, where SECNAME is the section name, at the 658beginning and the end of the section. This is used by glibc. 659 660 Addendum: Current versions of the linker (at least for version 2.18 onwards 661and possibly much earlier as well) place two restrictions on this feature: The 662symbols are only implemented for orphaned sections, not for explicitly placed 663sections and they are PROVIDEd rather than being defined. 664 665* When an ELF section named .gnu.warning is encountered in an input file, the 666contents of the section are displayed as an error message, and the section is 667not copied into the output file. This is used by glibc. 668 669* When an ELF section named .gnu.warning.SYMBOL is encountered in an input 670file, and the symbol SYMBOL is referenced by some object file, the contents of 671the section are displayed as an error message. The section is not copied into 672the output file, unless doing a relocatable or shared link. This is used by 673glibc. 674 675* New options -split-by-reloc and -split-by-file. 676 677* The linker now supports linking PIC compiled code on SPARC SunOS. It can 678also create SPARC SunOS shared libraries, and, like the native SunOS linker, 679will do so whenever there is an undefined symbol in the link and neither the -e 680nor the -r option was used. 681 682* The -rpath option may be used on SunOS to set the list of directories to be 683searched at run time. This overrides the default of building the list from the 684-L options. 685 686* The COFF linker now combines debugging information for structs, unions, and 687enums, so that even if the same type is defined in multiple input files it will 688only be defined once in the output file. The --traditional-format switch will 689prevent this optimization. 690 691Changes in version 2.5: 692 693* The linker now supports linking against SunOS shared libraries. It still can 694not link SunOS PIC (Position Independent Code) files, so it can not be used to 695generate shared libraries. 696 697* The linker now supports linking against ELF shared libraries for the i386 698(UnixWare) and SPARC (Solaris). It can also link ELF PIC files, and can be 699used to generate shared libraries. Shared library generation is not well 700tested; please report any problems encountered. The linker is now enabled for 701Solaris again. 702 703* Eric Youngdale has contributed Linux support code, including linking against 704Linux a.out shared libraries. The linker produces Linux QMAGIC binaries. 705 706* The ELF backend has been converted to the new linker code. To use the new 707ELF linker, each particular target requires a relocation function. So far, 708this function has been written for i386 (UnixWare), SPARC (Solaris) MIPS (Irix 7095), and HPPA ELF targets. 710 711* The -( (--start-group) and -) (--end-group) options have been added to 712support searching a group of archives as though they were a single archive. 713This can also be used in a linker script, as GROUP ( files ). 714 715* When a file is named on the command line, and the linker does not recognize 716it as an object file, the linker will now treat the file as a linker script 717file. A linker script named in this way augments, but does not replace, the 718default linker script. 719 720* The -warn-once option was added. It causes the linker to only warn once per 721undefined symbol, rather than once per reference. 722 723* The COFF backend has been converted to the new linker code. As with ELF, to 724use the new linker, each particular target requires a relocation function. So 725far, this function has been written for the i386, m68k, a29k and SH targets. 726 727* The -V flag was made a synonym for -v, for SVR4 compatibility. The old -V 728behaviour is available via --verbose. 729 730Changes in version 2.4: 731 732* New linker code, by Steve Chamberlain and Ian Taylor. For a.out and ecoff 733 formats (so far), this should result in considerable savings in time 734 and memory used while linking; slightly poorer performance than 735 before for formats not converted yet. 736 737* Command-line parsing is no longer done with flex. This means 738 oddball characters in filenames won't get treated as argument 739 separators. 740 741* HP-PA ELF support, by Jeff Law. (No SOM support yet.) 742 743* Mach i386 support, by David Mackenzie. 744 745* Irix 4 shared libraries are now supported (Irix 5 uses ELF, and ELF shared 746 libraries are not yet supported). 747 748* COFF shared libraries (as on SCO) should work as well. 749 750* The linker is disabled for Solaris. (Actually, it was in 2.3 also, I just 751 forgot to note it.) Some of their C library routines don't work when 752 statically linked, and the GNU linker doesn't support dynamic linking yet. 753 754Changes in version 2.3: 755 756* Weak symbols are now supported. 757 758* ELF support has been added. The linker has been bootstrapped on 759 UnixWare and Solaris. 760 761* Alpha OSF/1 support has been added (non dynamic linking only). 762 763Changes in version 2.2: 764 765* The `bfd' library has been updated to reduce a.out-format string 766 table size. The effect of this is that files linked from many input 767 files with duplicate symbols (`-g' debugging records, or identical 768 static symbols) should be much smaller. 769 770Changes in version 2.1: 771 772* The ld -ySYMBOL flag (to trace references to SYMBOL) is now implemented. 773 774* There is now support for writing ECOFF files, so ld and the 775 other utilities should work on Risc/Ultrix and Irix. 776 777 778Copyright (C) 2012-2020 Free Software Foundation, Inc. 779 780Copying and distribution of this file, with or without modification, 781are permitted in any medium without royalty provided the copyright 782notice and this notice are preserved. 783 784Local variables: 785fill-column: 79 786End: 787