Add support for Score target.
[external/binutils.git] / ld / NEWS
1 -*- text -*-
2 * Add support for Score target.
3
4 * ELF: Add --dynamic-list option to specify a list of global symbols
5   whose references shouldn't be bound to the definition within the
6   shared library, or a list of symbols which should be added to the
7   symbol table in the executable.
8
9 * The default output section LMA has changed for allocatable sections from
10   being equal to VMA, to keeping the difference between LMA and VMA the same as
11   the previous output section in the same region.  This is a more useful
12   default when using overlays and other cases where you specify an LMA
13   differing from the VMA for some sections.
14
15 * New switch: --print-gc-sections to list any sections removed by garabge
16   collection.
17
18 Changes in 2.17:
19
20 * Support for the Infineon XC16X has been added by KPIT Cummins Infosystems.
21
22 * Modify the Linux linker search order to better match ld.so search order.
23   Look for DT_NEEDED libraries in paths specified by ld.so.conf before
24   searching the default directories, rather than vice versa.
25   Use $prefix/etc/ld.so.conf if it exists, otherwise /etc/ld.so.conf.
26
27 * PE-COFF: Forward exports from DLL's can now be specified in .def files
28   passed directly to ld.
29
30 * Support for the Z80 processor family has been added.
31
32 * Add support for the "@<file>" syntax to the command line, so that extra
33   switches can be read from <file>.
34
35 Changes in 2.16:
36
37 * Support for the R_ARM_V4BX relocation as defined in the ARM AAELF
38   specification has been added via the --fix-v4bx command-line option.
39
40 * New linker script construct AS_NEEDED(), which sets the --as-needed flag
41   for input files listed inside of it.
42
43 * A new command-line option, --sysroot, can be used to override the
44   default sysroot location.  It only applies to toolchains that were
45   configured using --with-sysroot.
46
47 * New linker script functions: ORIGIN() and LENGTH() which return information
48   about a specified memory region.
49
50 * Port to MAXQ processor contributed by HCL Tech.
51
52 * Added SEGMENT_START to the linker script language to permit the user to
53   override the base address for a segment from the command-line.
54
55 * ELF: --warn-shared-textrel option to warn if adding a DT_TEXTREL to a shared
56   object.
57
58 * Added SORT_BY_NAME and SORT_BY_ALIGNMENT to the linker script
59   language to permit sorting sections by section name or section
60   maximum alignment.
61
62 * Added a new linker command line switch, --sort-section name|alignment,
63   to sort sections by section name or maximum alignment.
64
65 * ELF: --add-needed/--no-add-needed options to control if a DT_NEEDED tag
66   should be added when a shared library comes from DT_NEEDED tags.
67
68 * Support for the crx-elf target added.
69
70 * Support for the sh-symbianelf target added.
71
72 * A new linker command line switch has been added which allows the hash table
73   size to be set to a suitable prime value near to its argument.  This switch
74   is --hash-size=<NUMBER>.  Also if the switch --reduce-memory-overheads is
75   used, and --hash-size has not been used, then the default value will be set
76   to 1021.
77
78 * Linker map files are now generated with an O(N) algorithm for finding symbols
79   that are defined in each section.  This uses about 40% more memory for
80   symbols than the old O(N^2) algorithm.  You can use the new
81   --reduce-memory-overheads option to select the old algorithm; this option
82   might also be used in the future to select similar tradeoffs.
83
84 Changes in 2.15:
85
86 * ELF: --as-needed/--no-as-needed options to control if a DT_NEEDED tag should
87   be added only when a shared library is referenced.
88   
89 * PE: --large-address-aware option to indicate executables support virtual
90   addresses greater than 2 gigabytes.
91
92 * DWARF 2 support for i386pe added.
93
94 * The linker script operator DEFINED() will now yield 1 only for a symbol that
95   is defined before the statement where DEFINED is used.
96
97 * The MIPS --embedded-relocs (used to embed relocations into binaries for
98   Embedded-PIC code) is deprecated and will be removed in a future release.
99
100 * cr16c support added by NSC.
101
102 * m32r Linux (ELF) support added by Renesas.
103
104 * Improved linker's handling of unresolved symbols.  The switch
105   --unresolved-symbols=<method> has been added to tell the linker when it
106   should report them and the switch --warn-unresolved-symbols has been added to
107   make reports be issued as warning messages rather than errors.
108
109 Changes in 2.14:
110
111 * Added support for Xtensa architecture.
112
113 * Added --with-sysroot configure switch to specify a target system root, for
114   linking against a target filesystem image.
115
116 * Added --accept-unknown-linker-format to restore old linker behaviour (pre
117   2.14) of silently accepting and linking in any files in an unknown binary
118   file format.
119
120 * Added --no-omagic to undo the effects of the -N option.
121
122 * Support for Texas Instruments TMS320C4x and TMS320C3x series of
123   DSP's contributed by Michael Hayes and Svein E. Seldal.
124   
125 * Added --with-lib-path configure switch to specify default value for
126   LIB_PATH.
127
128 * ARM port to QNX operating system added by Graeme Peterson.
129
130 * IP2K support added by Denis Chertykov.
131
132 Changes in 2.13:
133
134 * Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400
135   and FR500 included.
136
137 Changes in version 2.13:
138
139 * DEC VAX ELF support, by Matt Thomas.
140
141 Changes in version 2.12:
142
143 * Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
144
145 * Support for the OpenRISC 32-bit embedded processor by OpenCores.
146
147 * Support for -z nocopyreloc in the x86 ELF linker, which disables
148   production of copy relocs.  Warning: using this option may result in
149   non-sharable applications.
150
151 * Support for -z combreloc in the ELF linker, which puts dynamic
152   relocations against the same symbol together, so that dynamic linker
153   can use an one-entry symbol lookup cache.
154
155 * Support for ELF SHF_MERGE section merging, by Jakub Jelinek.
156
157 Changes in version 2.11:
158
159 * Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs.
160
161 * Support added for eliminating duplicate DWARF2 debug information by
162   having the compiler generate the information in sections called
163   .gnu.linkonce.wi.XXXX where XXXX is a checksum for the contents.  The
164   linker then merges these sections together into the normal .debug_info
165   section.
166
167 * The native ELF linker now searches the directories in DT_RUNPATH or
168   DT_RPATH of a shared library for shared libraries needed by it.
169
170 * TI C54x support, by Timothy Wall.
171
172 * Added command line switch --section-start to set the start address of any
173   specified section. 
174
175 * Added ability to emit full relocation information in linked executables,
176   enabled by --emit-relocs.  Some post-linkage optimization tools need
177   this information in order to be able to correctly identify and perform
178   symbol relative addressing in the event of changes in section contents
179   (instructions being added or deleted, extending data sections, etc.)
180
181 * Support for i860, by Jason Eckhardt (preliminary, alpha quality).
182
183 * Support for CRIS (Axis Communications ETRAX series).
184
185 * Support for PDP-11 and 2.11BSD a.out format, by Lars Brinkhoff.
186
187 Changes in version 2.10:
188
189 * Added AT> to the linker script language to allow load-time allocation of 
190   sections into regions.
191
192 * Added garbage collection of unused sections, enabled by --gc-sections. 
193   It does require a bit of backend support; currently implemented are
194   arm-elf, avr-elf, d10v-elf, fr30-elf, i386-elf, m32r-elf, m68k-elf,
195   mcore-elf, mips-elf, mn10300-elf, ppc-elf, sh-elf, sparc-elf, and v850-elf.
196   Others will ignore the option.
197
198 * Added SORT to the linker script language to permit sorting sections by file
199   name or section name.
200
201 * Added EXTERN to the linker script language as an equivalent to the -u
202   command-line option.
203
204 * Added ASSERT to the linker script language.
205
206 * Added EXCLUDE_FILE to the linker script language for further control over
207   wildcard file names.
208
209 * Added -O option to optimize linker output (as of this writing, this only
210   affects ELF shared library generation).
211
212 * The -e option now accepts a number as well as a symbol name.
213
214 * Added --no-undefined option to disallow undefined symbols when creating a
215   shared library.
216
217 * The linker now issues a warning, not an error, for an undefined symbol when
218   using -Bsymbolic; use the new --no-undefined option to get the old
219   behaviour.
220
221 * Added --demangle and --no-demangle options.
222
223 Changes in version 2.9:
224
225 * Added SQUAD to the linker script language.
226
227 * New option --no-warn-mismatch.
228
229 * The MEMORY command now parses the attributes to determine where sections that
230   are not placed in a specific memory region are placed.
231
232 Changes in version 2.8:
233
234 * Linker scripts may now contain shell wildcard characters for file and section
235   names.
236
237 * The linker now supports symbol versions in ELF.
238
239 * The NOCROSSREFS command was added to the linker script language.
240
241 * The LOADADDR expression was added to the linker script language.
242
243 * MAX and MIN functions were added to the linker script language.
244
245 * The OVERLAY construct was added to the linker script language.
246
247 * New option --warn-section-align to warn when the address of an output section
248   changes due to alignment of an input section.
249
250 * New options --filter/-F and --auxiliary/-f.
251
252 Changes in version 2.7:
253
254 * New option --cref to print out a cross reference table.
255
256 * New option --wrap SYMBOL.
257
258 * New option --no-whole-archive, to turn off the effect of --whole-archive.
259
260 * Input sections assigned to the output section /DISCARD/ in the linker script
261   are not included in the output file.
262
263 * The SunOS and ELF linkers now merge stabs debugging information which uses
264   the N_BINCL and N_EINCL stab types.  This reduces the amount of debugging
265   information generated.
266
267 Changes in version 2.6:
268
269 * When an ELF section name is representable as a C identifier (this is not true
270 of most ELF section names), the linker will automatically define symbols
271 __start_SECNAME and __stop_SECNAME, where SECNAME is the section name, at the
272 beginning and the end of the section.  This is used by glibc.
273
274 * When an ELF section named .gnu.warning is encountered in an input file, the
275 contents of the section are displayed as an error message, and the section is
276 not copied into the output file.  This is used by glibc.
277
278 * When an ELF section named .gnu.warning.SYMBOL is encountered in an input
279 file, and the symbol SYMBOL is referenced by some object file, the contents of
280 the section are displayed as an error message.  The section is not copied into
281 the output file, unless doing a relocatable or shared link.  This is used by
282 glibc.
283
284 * New options -split-by-reloc and -split-by-file.
285
286 * The linker now supports linking PIC compiled code on SPARC SunOS.  It can
287 also create SPARC SunOS shared libraries, and, like the native SunOS linker,
288 will do so whenever there is an undefined symbol in the link and neither the -e
289 nor the -r option was used.
290
291 * The -rpath option may be used on SunOS to set the list of directories to be
292 searched at run time.  This overrides the default of building the list from the
293 -L options.
294
295 * The COFF linker now combines debugging information for structs, unions, and
296 enums, so that even if the same type is defined in multiple input files it will
297 only be defined once in the output file.  The --traditional-format switch will
298 prevent this optimization.
299
300 Changes in version 2.5:
301
302 * The linker now supports linking against SunOS shared libraries.  It still can
303 not link SunOS PIC (Position Independent Code) files, so it can not be used to
304 generate shared libraries.
305
306 * The linker now supports linking against ELF shared libraries for the i386
307 (UnixWare) and SPARC (Solaris).  It can also link ELF PIC files, and can be
308 used to generate shared libraries.  Shared library generation is not well
309 tested; please report any problems encountered.  The linker is now enabled for
310 Solaris again.
311
312 * Eric Youngdale has contributed Linux support code, including linking against
313 Linux a.out shared libraries.  The linker produces Linux QMAGIC binaries.
314
315 * The ELF backend has been converted to the new linker code.  To use the new
316 ELF linker, each particular target requires a relocation function.  So far,
317 this function has been written for i386 (UnixWare), SPARC (Solaris) MIPS (Irix
318 5), and HPPA ELF targets.
319
320 * The -( (--start-group) and -) (--end-group) options have been added to
321 support searching a group of archives as though they were a single archive.
322 This can also be used in a linker script, as GROUP ( files ).
323
324 * When a file is named on the command line, and the linker does not recognize
325 it as an object file, the linker will now treat the file as a linker script
326 file.  A linker script named in this way augments, but does not replace, the
327 default linker script.
328
329 * The -warn-once option was added.  It causes the linker to only warn once per
330 undefined symbol, rather than once per reference.
331
332 * The COFF backend has been converted to the new linker code.  As with ELF, to
333 use the new linker, each particular target requires a relocation function.  So
334 far, this function has been written for the i386, m68k, a29k and SH targets.
335
336 * The -V flag was made a synonym for -v, for SVR4 compatibility.  The old -V
337 behaviour is available via --verbose.
338
339 Changes in version 2.4:
340
341 * New linker code, by Steve Chamberlain and Ian Taylor.  For a.out and ecoff
342   formats (so far), this should result in considerable savings in time
343   and memory used while linking; slightly poorer performance than
344   before for formats not converted yet.
345
346 * Command-line parsing is no longer done with flex.  This means
347   oddball characters in filenames won't get treated as argument
348   separators.
349
350 * HP-PA ELF support, by Jeff Law.  (No SOM support yet.)
351
352 * Mach i386 support, by David Mackenzie.
353
354 * Irix 4 shared libraries are now supported (Irix 5 uses ELF, and ELF shared
355   libraries are not yet supported).
356
357 * COFF shared libraries (as on SCO) should work as well.
358
359 * The linker is disabled for Solaris.  (Actually, it was in 2.3 also, I just
360   forgot to note it.)  Some of their C library routines don't work when
361   statically linked, and the GNU linker doesn't support dynamic linking yet.
362
363 Changes in version 2.3:
364
365 * Weak symbols are now supported.
366
367 * ELF support has been added.  The linker has been bootstrapped on
368   UnixWare and Solaris.
369
370 * Alpha OSF/1 support has been added (non dynamic linking only).
371
372 Changes in version 2.2:
373
374 * The `bfd' library has been updated to reduce a.out-format string
375   table size.  The effect of this is that files linked from many input
376   files with duplicate symbols (`-g' debugging records, or identical
377   static symbols) should be much smaller.
378
379 Changes in version 2.1:
380
381 * The ld -ySYMBOL flag (to trace references to SYMBOL) is now implemented.
382
383 * There is now support for writing ECOFF files, so ld and the
384   other utilities should work on Risc/Ultrix and Irix.
385
386 \f
387 Local variables:
388 fill-column: 79
389 End: