]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - binutils/NEWS
gdb: resolve dynamic type in one value_cast case
[thirdparty/binutils-gdb.git] / binutils / NEWS
CommitLineData
252b5132 1-*- text -*-
0bd09323 2
5079bf89
JR
3* SFrame stack trace format now represents an undefined return address as
4 an SFrame FRE without any offsets. libsframe provides a new API to test
5 for RA undefined, which is used when dumping SFrame information (e.g. using
6 objdump and readelf) to show such FREs as "RA undefined".
7
81e90cf6
L
8* Add --got-contents option to readelf to display the contents of
9 Global Offset Table (GOT) sections.
10
5e83077d
AM
11* Internal changes to plugin support, and stricter target checking may result
12 in some errors being exposed in user options passed to the various binutils.
13 For example objcopy --target=TARGET now will only work if the input file is
14 for TARGET whereas prior versions of objcopy accepted other target input
15 files and produced a TARGET output. If you do in fact want the old
16 behaviour the correct usage is objcopy --output-target=TARGET.
17
014ae6af
L
18* NaCl target support is removed.
19
5c778308
NC
20Changes in 2.45:
21
6a959b12
IB
22* New versioned release of libsframe: libsframe.so.2. This release introduces
23 versioned symbols with version node name LIBSFRAME_2.0. Some new symbols
24 have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and
25 retrieving flags from SFrame decoder and encoder objects:
26 - Addition of sframe_decoder_get_flags,
27 sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags,
28 sframe_encoder_get_offsetof_fde_start_addr.
29 This release also includes backward-incompatible ABI changes:
30 - Removal of sframe_get_funcdesc_with_addr.
31 - Change in the behavior of sframe_decoder_get_funcdesc_v2,
32 sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
33
2b1dd315
JR
34* On s390 64-bit (s390x), gas, ld, objdump, and readelf now support generating
35 and processing SFrame V2 stack trace information (.sframe). The assembler
36 generates SFrame info from CFI directives with option "--gsframe". The
37 linker generates SFrame info for the linker-generated .plt section and merges
38 all .sframe sections. Both objdump and readelf dump SFrame info with option
39 "--sframe[=<section-name>]".
40
54f153a3
IB
41* For SFrame stack trace format, the function start address in each SFrame
42 FDE has a changed encoding: The 32-bit signed integer now holds the offset
43 of the start PC of the associated function from the sfde_func_start_address
44 field itself (instead of the earlier where it was the offset from the start
45 of the SFrame section itself). All SFrame sections generated by gas and ld
46 now default to this new encoding, setting the (new)
47 SFRAME_F_FDE_FUNC_START_PCREL flag.
48
49 Relocatable SFrame links are now fixed.
50
1c391a08
NC
51* Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
52 GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
53 extensions.
54
614d1b72
NC
55* For RISC-V dis-assembler, the definition of mapping symbol $x is changed,
56 so the file needs to be rebuilt since 2.45 once used .option arch directives.
57
8b0a5988
WX
58* The LoongArch disassembler now properly accepts multiple disassembly
59 options given by -M, such as "-M no-aliases,numeric". (Previously only the
60 first option took effect.)
61
b49d12e2
NC
62Changes in 2.44:
63
e7a16d9f
SL
64* Support for Nios II targets has been removed except in the readelf utility,
65 as this architecture has been EOL'ed by Intel.
66
004a5bfc
NC
67* RISC-V disassembly now supports -M,max option like QEMU to dump instruction
68 without checking architecture support as usual.
69
b715bf1f
VM
70* gprofng:
71 Support for hardware event counters for Neoverse-N1, Ampere-1, and
72 Appliedmicro processors.
73
e1b9d58e 74Changes in 2.43:
b33c4f8f 75
08e6af1b
YS
76* The MIPS port now supports microMIPS MT Application Specific Extension
77 instructions for assembly and disassembly.
78
fcf8f323
NC
79* Readelf now displays RELR relocations in full detail.
80
8e8d0b63
NC
81* Readelf now has a -j/--display-section option which takes the name or index
82 of a section and displays its contents according to its type. The option can
83 be used multiple times on the command line to display multiple sections.
84
75a28d1a
JR
85* Base register 0 is now printed as "0" instead of "%r0" in s390 disassembly.
86
1878f44b
NC
87* When objdump or readelf are used to display the contents of a .eh_frame
88 section they will now also display the contents of the .eh_frame_hdr section,
89 if present.
90
30d57f2e
RE
91* Support for the Maverick co-processor (via -mfpu=maverick) on Arm has been
92 removed. The CPU name ep9312 is still recognized, but treated as an alias
93 for arm920t.
94
ecc5fed7
RE
95* Support for the FPA co-procossor on Arm has been removed. In cases where a
96 legacy CPU previously defaulted to using this instruction set extension, the
97 assembler now defaults to no-FPU to avoid quietly misassembling legacy code.
98
f769dcdb
VM
99* gprofng:
100 Improved the support for hardware event counters:
101 - Re-designed and streamlined the implementation.
102 - Defined a common set of events for ARM processors.
103 - Added specific events for AMD ZEN3 / ZEN4, and Intel Ice Lake processors.
104 Added a minimal support for RISC-V.
105
299b91cd
NC
106Changes in 2.42:
107
fab62191
NC
108* The objdump program has a new command line option -Z/--decompress which
109 changes the behaviour of the -s/--full-contents option, forcing it to
110 decompress the contents of any compressed section before they are displayed.
111
112 In addition when objdump is displaying sections headers (via the -h/--headers
113 command line option) it will now display "COMPRESSED" in the Flags field of
114 any compressed section.
115
b6ac461a
NC
116* The readelf program has a new command line option --extra-sym-info which
117 extends the information displayed by the --symbols option. When enabled
118 the display will include the name of the section referenced by a symbol's
119 index field (st_shndx). In the future more information may also be displayed
120 when this option is enabled.
121
b5c37946
SJ
122* objcopy --set-section-flags now supports "large" to set SHF_X86_64_LARGE
123 for ELF x86-64 objects.
124
c5306fed
JR
125* objdump --visualize-jumps is now supported on s390 architecture.
126
f96fe7f4
JR
127* The s390 disassembly now optionally includes the instruction description as
128 comment with the s390-specific disassembler option "insndesc":
129 - For objdump it can be enabled with "objdump -M insndesc ...".
130 - In gdb it can be enabled with "set disassembler-options insndesc".
131
d501d384
NC
132Changes in 2.41:
133
9012d781
MR
134* The MIPS port now supports the Sony Interactive Entertainment Allegrex
135 processor, used with the PlayStation Portable, which implements the MIPS
136 II ISA along with a single-precision FPU and a few implementation-specific
137 integer instructions.
138
45b8517a
NC
139* Objdump's --private option can now be used on PE format files to display the
140 fields in the file header and section headers.
fa3d73eb
IB
141
142* New versioned release of libsframe: libsframe.so.1. This release introduces
143 versioned symbols with version node name LIBSFRAME_1.0. This release also
144 updates the ABI in an incompatible way: this includes removal of
145 sframe_get_funcdesc_with_addr API, change in the behavior of
146 sframe_fre_get_ra_offset and sframe_fre_get_fp_offset APIs.
a47cd2a1
IB
147
148* SFrame Version 2 is now the default (and only) format version supported by
149 gas, ld, readelf and objdump.
45b8517a 150
96cc7918
KB
151* Add command-line option, --strip-section-headers, to objcopy and strip to
152 remove ELF section header from ELF file.
153
e5075707
PT
154* The RISC-V port now supports the following new standard extensions:
155 - Zicond (conditional zero instructions)
156 - Zfa (additional floating-point instructions)
9fdc1b15
CM
157 - Zvbb, Zvbc, Zvkg, Zvkned, Zvknh[ab], Zvksed, Zvksh, Zvkn, Zvknc, Zvkng,
158 Zvks, Zvksc, Zvkg, Zvkt (vector crypto instructions)
e5075707
PT
159
160* The RISC-V port now supports the following vendor-defined extensions:
161 - XVentanaCondOps
162
0ed3ac2f
WX
163* The LoongArch port now supports the following extensions:
164 - LSX (Loongson SIMD eXtension; 128-bit vectors)
165 - LASX (Loongson Advanced SIMD eXtension; 256-bit vectors)
166 - LVZ (Loongson Virtualization extension)
167 - LBT (Loongson Binary Translation extension)
168
169* The LoongArch disassembly output received the following tweaks:
170 - Colored output is now supported.
171 - Some pseudo-instructions are now shown in place of the canonical forms,
172 where semantics are equivalent. A disassembler option '-M no-aliases' is
173 added to disable the new behavior.
174 - Signed immediates are no longer printed with their hex representation.
175 - Unrecognized instruction words are now shown with '.word'.
176
a72b0718
NC
177Changes in 2.40:
178
c7ce51d8
NC
179* Objdump has a new command line option --show-all-symbols which will make it
180 display all symbols that match a given address when disassembling. (Normally
181 only the first symbol that matches an address is shown).
182
18bf5643
NC
183* Add --enable-colored-disassembly configure time option to enable colored
184 disassembly output by default, if the output device is a terminal. Note,
185 this configure option is disabled by default.
186
816be8d8
NC
187* DCO signed contributions are now accepted.
188
2cac01e3
FS
189* objcopy --decompress-debug-sections now supports zstd compressed debug
190 sections. The new option --compress-debug-sections=zstd compresses debug
191 sections with zstd.
192
193* addr2line and objdump --dwarf now support zstd compressed debug sections.
194
25ee24d9
NC
195* The dlltool program now accepts --deterministic-libraries and
196 --non-deterministic-libraries as command line options to control whether or
197 not it generates deterministic output libraries. If neither of these options
198 are used the default is whatever was set when the binutils were configured.
199
9968a11f
IB
200* readelf and objdump now have a newly added option --sframe which dumps the
201 SFrame section.
202
0bd09323
NC
203Changes in 2.39:
204
2c3cc81e 205* Add --no-weak/-W option to nm to make it ignore weak symbols.
60391a25 206
bed566bb
NC
207* Add an option to objdump and readelf to prevent attempts to access debuginfod
208 servers when following links.
2c3cc81e 209
260ecdce
FS
210* objcopy --weaken, --weaken-symbol, and --weaken-symbols now make ELF
211 STB_GNU_UNIQUE symbols weak.
bed566bb 212
60a3da00
AB
213* objdump now supports syntax highlighting of disassembler output for some
214 architectures. Use the --disassembler-color=MODE command line flag, with
215 mode being either off, color, or extended-color.
216
a74e1cb3
NC
217Changes in 2.38:
218
c9dcc18f
L
219* elfedit: Add --output-abiversion option to update ABIVERSION.
220
e9a0721f 221* Add support for the LoongArch instruction set.
222
b3aa80b4
NC
223* Tools which display symbols or strings (readelf, strings, nm, objdump)
224 have a new command line option which controls how unicode characters are
225 handled. By default they are treated as normal for the tool. Using
226 --unicode=locale will display them according to the current locale.
227 Using --unicode=hex will display them as hex byte values, whilst
228 --unicode=escape will display them as escape sequences. In addition
229 using --unicode=highlight will display them as unicode escape sequences
230 highlighted in red (if supported by the output device).
231
a7fd1186
FS
232* readelf -r dumps RELR relative relocations now.
233
b69c9d41
TC
234* Support for efi-app-aarch64, efi-rtdrv-aarch64 and efi-bsdrv-aarch64 has been
235 added to objcopy in order to enable UEFI development using binutils.
236
d1b69c50
FS
237* ar: Add --thin for creating thin archives. -T is a deprecated alias without
238 diagnostics. In many ar implementations -T has a different meaning, as
239 specified by X/Open System Interface.
240
51419248
NC
241Changes in 2.37:
242
047c3dbf
NL
243* The readelf tool has a new command line option which can be used to specify
244 how the numeric values of symbols are reported. --sym-base=0|8|10|16 tells
245 readelf to display the values in base 8, base 10 or base 16. A sym base of 0
246 represents the default action of displaying values under 10000 in base 10 and
247 values above that in base 16.
248
4db29512
AM
249* Binutils now requires a C99 compiler and library to build.
250
1996d0f1
NC
251* A new format has been added to the nm program. Specifying
252 --format=just-symbols (or just using -j) will tell the program to only
253 display symbol names and nothing else.
254
ca0e11aa
NC
255* A new command line --keep-section-symbols has been added to objcopy and
256 strip. This stops the removal of unused section symbols when the file is
257 copied. Removing these symbols saves space, but sometimes they are needed by
258 other tools.
259
fd5c076a
AM
260* objcopy --weaken, --weaken-symbol and --weaken-symbols now make undefined
261 symbols weak on targets that support weak symbols.
262
e38332c2
NC
263* Readelf and objdump can now display and use the contents of .debug_sup
264 sections.
265
c46b7066
NC
266* Readelf and objdump will now follow links to separate debug info files by
267 default. This behaviour can be stopped via the use of the new -wN or
268 --debug-dump=no-follow-links options for readelf and the -WN or
269 --dwarf=no-follow-links options for objdump. Also the old behaviour can be
270 restored by the use of the --enable-follow-debug-links=no configure time
271 option.
272
ca0e11aa
NC
273 The semantics of the =follow-links option have also been slightly changed.
274 When enabled, the option allows for the loading of symbol tables and string
275 tables from the separate files which can be used to enhance the information
276 displayed when dumping other sections, but it does not automatically imply
277 that information from the separate files should be displayed.
278
279 If other debug section display options are also enabled (eg
280 --debug-dump=info) then the contents of matching sections in both the main
281 file and the separate debuginfo file *will* be displayed. This is because in
282 most cases the debug section will only be present in one of the files.
283
284 If however non-debug section display options are enabled (eg --sections) then
285 the contents of matching parts of the separate debuginfo file will *not* be
286 displayed. This is because in most cases the user probably only wanted to
287 load the symbol information from the separate debuginfo file. In order to
288 change this behaviour a new command line option --process-links can be used.
289 This will allow di0pslay options to applied to both the main file and any
290 separate debuginfo files.
291
7fe1b138
FS
292* Nm has a new command line option: --quiet. This suppresses "no symbols"
293 diagnostic.
294
055bc77a
NC
295Changes in 2.36:
296
279d901e
L
297* Update elfedit and readelf with LAM_U48 and LAM_U57 support.
298
e6f6aa8d
NC
299* Nm has a new command line option: --ifunc-chars=CHARS. This specifies a
300 string of one or two characters. The first character is used as the type
301 character when displaying global ifunc symbols. The second character, if
302 present is used when displaying local ifunc symbols.
303
304 In addition a new configure time option --enable-f-for-ifunc-symbols has been
305 created, which if used will change nm's default characters for ifunc symbols
306 from i (both local and global) to F (global) and f (local).
307
f3016d6c
HC
308* The ar tool's previously unused l modifier is now used for specifying
309 dependencies of a static library. The arguments of this option
310 (or --record-libdeps long form option) will be stored verbatim in the
311 __.LIBDEP member of the archive, which the linker may read at link time.
312
0f03783c
NC
313* Readelf can now display the contents of LTO symbol table sections when asked
314 to do so via the --lto-syms command line option.
315
79bc120c
NC
316* Readelf now accepts the -C command line option to enable the demangling of
317 symbol names. In addition the --demangle=<style>, --no-demangle,
318 --recurse-limit and --no-recurse-limit options are also now availale.
319
99fabbc9
JL
320* Add support for the SHF_GNU_RETAIN ELF section flag.
321 This flag specifies that the section should not be garbage collected by the
322 linker.
323
b115b9fd
NC
324Changes in 2.35:
325
0942c7ab
NC
326* Changed readelf's display of symbol names when wide mode is not enabled.
327 If the name is too long it will be truncated and the last five characters
328 replaced with "[...]". The old behaviour of displaying 5 more characters but
329 not indicating that truncation has happened can be restored by the use of the
330 -T or --silent-truncation options.
331
bbd19b19
L
332* X86 NaCl target support is removed.
333
1b513401
NC
334* The readelf tool now has a -L or --lint or --enable-checks option which turns
335 on warning messages about possible problems with the file(s) being examined.
336 These checks include things like zero-sized sections, which are allowed by
337 the ELF standard but which nevertheless might be of concern if the user
338 was expecting them to actually contain something.
339
ae774686
NC
340Changes in 2.34:
341
301a9420
AM
342* Binutils now supports debuginfod, an HTTP server for distributing
343 ELF/DWARF debugging information as well as source code. When built with
344 debuginfod, readelf and objdump can automatically query debuginfod
345 servers for separate debug files when they otherwise cannot be found.
346 To build binutils with debuginfod, pass --with-debuginfod to configure.
347 This requires libdebuginfod, the debuginfod client library. debuginfod
348 is distributed with elfutils, starting with version 0.178. For more
349 information see https://sourceware.org/elfutils.
350
197245e3
FS
351* Add --output option to the "ar" program. This option can be used to specify
352 the output directory when extracting members from an archive.
353
64f52b3e
FS
354* Add --keep-section option to objcopy and strip. This option keeps the
355 specified section from being removed.
356
1d67fe3b
TT
357 * Add visualization of jumps inside a function by drawing an ascii character
358 graph between the address and the disassembler column. Enabled via the
359 --visualize-jumps command line option for objdump. Currently supported by
360 the x86, x86_64, and ARM targets. The output looks something like this:
361
362 c6: | | \----------> be 00 00 00 00 mov $0x0,%esi
363 cb: | | /----> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2 <main+0xd2>
364 d2: | | | 31 c0 xor %eax,%eax
365 d4: | | | /-- e8 00 00 00 00 callq d9 <main+0xd9>
366 d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
367 de: | +-----------|----- e8 00 00 00 00 callq e3 <main+0xe3>
368 e3: | \-----------|----> 48 89 da mov %rbx,%rdx
369 e6: | | be 00 00 00 00 mov $0x0,%esi
370 eb: | \----- eb de jmp cb <main+0xcb>
371 ed: \-------------------> 48 8b 16 mov (%rsi),%rdx
372
373 Additional arguments to the --visualize-jumps option add colors to the
374 output.
375
60391a25
PB
376Changes in 2.33:
377
a1c110a3
NC
378* Add --source-comment[=<txt>] option to objdump which if present,
379 provides a prefix to source code lines displayed in a disassembly.
2c610e4b 380
fa463e9f
N
381* Add --set-section-alignment <section-name>=<align> option to objcopy to allow
382 the changing of section alignments.
383
37d0d091
JH
384* Add --verilog-data-width option to objcopy for verilog targets to control
385 width of data elements in verilog hex format.
386
514bbb0f
AV
387* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
388 instructions.
389
24841daa
NC
390* The separate debug info file options of readelf (--debug-dump=links
391 and --debug-dump=follow) and objdump (--dwarf=links and
392 --dwarf=follow-links) will now display and/or follow multiple links if
393 more than one are present in a file. (This usually happens when gcc's
394 -gsplit-dwarf option is used).
395
39f0547e
NC
396 In addition objdump's --dwarf=follow-links now also affects its other
397 display options, so that for example, when combined with --syms it will
398 cause the symbol tables in any linked debug info files to also be
399 displayed. In addition when combined with --disassemble the --dwarf=
400 follow-links option will ensure that any symbol tables in the linked
401 files are read and used when disassembling code in the main file.
7d9813f1
NA
402
403 * Add support for dumping types encoded in the Compact Type Format
404 to objdump and readelf.
405
f974f26c
NC
406Changes in 2.32:
407
af03af8f
NC
408* The addr2line, c++filt, nm and objdump tools now have a limit on the
409 maximum amount of recursion that is allowed whilst demangling strings.
410 The value for this limit is defined by the DEMANGLE_RECRUSE_LIMIT
411 constant declared in the include/demangle.h header file. At the time
69799d67 412 of writing this constant has the value of 2048.
af03af8f
NC
413
414 The --no-recurse-limit option can be used to remove the limit, restoring
415 the behaviour of earlier versions of these tools. This may be needed in
416 order to dmangle truly complicated names, but it also leaves the tools
417 vulnerable to stack exhaustion from maliciously constructed mangled names.
418
d3def5d7
MY
419* Objdump's --disassemble option can now take a parameter, specifying the
420 starting symbol for disassembly. Disassembly will continue from this
baae986a 421 symbol up to the next symbol or the end of the function.
d3def5d7 422
9108bc33
CX
423* The MIPS port now supports the Loongson 2K1000 processor which implements
424 the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE, Loongson-ext ASE,
425 Loongson-ext2 ASE and MSA ASE instructions. Add -march=gs264e option for
426 Loongson 2K1000 processor.
427
bd782c07
CX
428* The MIPS port now supports the Loongson 3A2000/3A3000 processor which
429 implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE,
430 Loongson-ext ASE and Loongson-ext2 ASE instructions. Add -march=gs464e
431 option for Loongson 3A2000/3A3000 processor.
432
ac8cb70f
CX
433* The MIPS port now supports the Loongson 3A1000 processor, aka Loongson3a,
434 which implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE
435 and Loongson-ext ASE instructions. Add -march=gs464 option for Loongson
436 3A1000 processor, The -march=loongson3a is an alias of -march=gs464 for
437 compatibility.
438
46cbf38d
AB
439* The size tool now has a new output format '--format=GNU' or '-G'. The
440 results are displayed in a similar manor to the default berkeley layout,
441 except read-only data is counted in the data column, not the text column.
442 Additionally the total is only included once.
443
719d8288
NC
444Changes in 2.31:
445
fe944acf
FT
446* Add support for disassembling netronome Flow Processor (NFP) firmware files.
447
7d02540a
TC
448* The AArch64 port now supports showing disassembly notes which are emitted
449 when inconsistencies are found with the instruction that may result in the
450 instruction being invalid. These can be turned on with the option -M notes
451 to objdump.
452
453* The AArch64 port now emits warnings when a combination of an instruction and
454 a named register could be invalid.
455
1869e86f
AB
456* Added O modifier to ar to display member offsets inside an archive
457
9176ac5b
NC
458Changes in 2.30:
459
dda8d76d
NC
460* Add --debug-dump=links option to readelf and --dwarf=links option to objdump
461 which displays the contents of any .gnu_debuglink or .gnu_debugaltlink
462 sections.
463
464 Add a --debug-dump=follow-links option to readelf and a --dwarf=follow-links
465 option to objdump which causes indirect links into separate debug info files
466 to be followed when dumping other DWARF sections.
467
55a09eb6
TG
468Changes in 2.29:
469
909b4e3d
MR
470* The MIPS port now supports microMIPS eXtended Physical Addressing (XPA)
471 instructions for assembly and disassembly.
472
f5b2fd52
MR
473* The MIPS port now supports the microMIPS Release 5 ISA for assembly and
474 disassembly.
475
38bf472a
MR
476* The MIPS port now supports the Imagination interAptiv MR2 processor,
477 which implements the MIPS32r3 ISA, the MIPS16e2 ASE as well as a couple
478 of implementation-specific regular MIPS and MIPS16e2 ASE instructions.
479
64517994
JM
480* The SPARC port now supports the SPARC M8 processor, which implements the
481 Oracle SPARC Architecture 2017.
482
25499ac7
MR
483* The MIPS port now supports the MIPS16e2 ASE for assembly and disassembly.
484
a91e1603
L
485* Add support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX.
486
efdf7a02 487* Add support for the wasm32 ELF conversion of the WebAssembly file format.
f96bd6c2 488
4a14e306
AK
489* Add --inlines option to objdump, which extends the --line-numbers option
490 so that inlined functions will display their nesting information.
491
9ef920e9
NC
492* Add --merge-notes options to objcopy to reduce the size of notes in
493 a binary file by merging and deleting redundant notes.
494
2425a30e
NC
495* Add support for locating separate debug info files using the build-id
496 method, where the separate file has a name based upon the build-id of
497 the original file.
498
9703a4ef
TG
499Changes in 2.28:
500
08dc996f
AM
501* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
502 relocations which were functionally swapped, for example,
503 R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
504 performed like R_PPC_VLE_HA16A. This could have been fixed by
505 renumbering relocations, which would keep object files created by an
506 older version of gas compatible with a newer ld. However, that would
507 require an ABI update, affecting other assemblers and linkers that
508 create and process the relocations correctly. It is recommended that
509 all VLE object files be recompiled, but ld can modify the relocations
a05a5b64 510 if --vle-reloc-fixup is passed to ld. If the new ld command-line
08dc996f
AM
511 option is not used, ld will ld warn on finding relocations inconsistent
512 with the instructions being relocated.
513
a05a5b64 514* The nm program has a new command-line option (--with-version-strings)
df2c87b5
NC
515 which will display a symbol's version information, if any, after the
516 symbol's name.
517
37fd5ef3
CZ
518* The ARC port of objdump now accepts a -M option to specify the extra
519 instruction class(es) that should be disassembled.
520
e511c9b1
AB
521* The --remove-section option for objcopy and strip now accepts section
522 patterns starting with an exclamation point to indicate a non-matching
523 section. A non-matching section is removed from the set of sections
524 matched by an earlier --remove-section pattern.
525
526* The --only-section option for objcopy now accepts section patterns
527 starting with an exclamation point to indicate a non-matching section.
528 A non-matching section is removed from the set of sections matched by
529 an earlier --only-section pattern.
530
d3e5f6c8
AB
531* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
532 This option can be used to remove sections containing relocations.
533 The SECTIONPATTERN is the section to which the relocations apply, not
534 the relocation section itself.
535
96a84ea3
TG
536Changes in 2.27:
537
e6cc316a
L
538* Add a configure option, --enable-64-bit-archive, to force use of a
539 64-bit format when creating an archive symbol index.
540
b8871f35
L
541* Add --elf-stt-common= option to objcopy for ELF targets to control
542 whether to convert common symbols to the STT_COMMON type.
543
7feec526
TG
544Changes in 2.26:
545
2b35fb28
RH
546* Add option to objcopy to insert new symbols into a file:
547 --add-symbol <name>=[<section>:]<value>[,<flags>]
548
886a2506
NC
549* Add support for the ARC EM/HS, and ARC600/700 architectures.
550
ea556d25
L
551* Extend objcopy --compress-debug-sections option to support
552 --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
553 targets.
554
acf1419f
AB
555* Add --update-section option to objcopy.
556
55edd97b
EA
557* Add --output-separator option to strings.
558
c50415e2
TG
559Changes in 2.25:
560
7fac9594
NC
561* Add --data option to strings to only print strings in loadable, initialized
562 data sections. Change the default behaviour to be --all, but add a new
563 configure time option of --disable-default-strings-all to restore the old
564 default behaviour.
565
334ac421
EA
566* Add --include-all-whitespace to strings.
567
bbad633b
NC
568* Add --dump-section option to objcopy.
569
35c08157
KLC
570* Add support for the Andes NDS32.
571
58ca03a2
TG
572Changes in 2.24:
573
a05a5b64 574* Objcopy now supports wildcard characters in command-line options that take
2e62b721
NC
575 section names.
576
36591ba1
SL
577* Add support for Altera Nios II.
578
af18cb59
TG
579Changes in 2.23:
580
b9c361e0
JL
581* Add support for the VLE extension to the PowerPC architecture.
582
9a30f236
KT
583* Add support for x64 Windows target of the delayed-load-library.
584
99c513f6
DD
585* Add support for the Renesas RL78 architecture.
586
a7142d94
TG
587Changes in 2.22:
588
4ccf1e31
JJ
589* Add support for displaying the contents of .debug.macro sections.
590
ec25acb3
NC
591* Add --preprocessor-arg option to windres to specify additional options
592 passed to preprocessor.
44f45767 593
fd2f0033
TT
594* Add --dwarf-start and --dwarf-end to readelf and objdump. These are used by
595 the new Emacs mode, see dwarf-mode.el.
596
69f56ae1
WL
597* Add support for the Tilera TILEPro and TILE-Gx architectures.
598
599changes in 2.21:
44f45767 600
b7dd81f7
NC
601* Add --interleave-width option to objcopy to allowing copying a range of
602 bytes from the input to the output with the --interleave option.
603
40b36596
JM
604* Add support for the TMS320C6000 (TI C6X) processor family.
605
0b6ae522
DJ
606* Readelf can now display ARM unwind tables (.ARM.exidx / .ARM.extab) using
607 the -u / --unwind option.
608
2c610e4b
L
609* Add --dyn-syms to readelf to dump dynamic symbol table.
610
d2420a8c
NC
611* A new tool - elfedit - has been added to directly manipulate ELF format
612 binaries.
81c23f82 613
bf201fdd
KT
614* Add to dlltool .def file feature of aliasing PE internal symbol name by
615 '== <ID>' option.
616
a05a5b64 617* Add a new command-line option -a / --addresses to addr2line to display the
be6f6493
TG
618 address before function name or source filename.
619
a05a5b64 620* Add a new command-line option -p / --pretty-print to addr2line to have
68cdf72f
TG
621 a more human readable output.
622
75875724
TG
623* The hppa/som targets can now be compiled on any host.
624
81c23f82
TG
625Changes in 2.20:
626
10e636d2
DK
627* Add support for delay importing to dlltool. Use the --output-delaylib <file>
628 switch to create a delay-import library. The resulting app will load the dll
629 as soon as the first function is called. It will link to __delayLoadHelper2()
630 from the static delayimp library, which will import LoadLibraryA and
631 GetProcAddress from kernel32.
632
a05a5b64 633* Add a new command-line option, --insn-width=WIDTH, to objdump to specify
10e636d2
DK
634 number of bytes to be displayed on a single line when disassembling
635 instructions.
3dcb3fcb 636
cf13d699 637* Readelf can now display the relocated contents of a section as a sequence
a05a5b64 638 of bytes via the --relocated-dump=<name|number> command-line option.
cf13d699 639
a05a5b64 640* The gprof program has been given a new command-line option:
0e27a8f6
NC
641 --external-symbols-table=<filename> which reads in symbols from a specified
642 file.
6e33da12 643
ce3c775b
NC
644* The plugin target has been added to bfd. It can load the same shared objects
645 used by gold and uses them to provide basic support for new file formats.
646
43cd3ced
AG
647* The verilog memory hex dump file format is now supported as an output format
648 for objcopy.
c067354b 649
92dd4511 650* Add --file-alignment, --heap, --image-base, --section-alignment,
a05a5b64 651 --stack and --subsystem command-line options to objcopy, which will
92dd4511
L
652 set PE optional header.
653
4cb93e3b
TG
654* Option --dwarf/-W of objdump is now as flexible as readelf --debug-dump/-w.
655
656* --as-needed now links in a dynamic library if it satisfies undefined
657 symbols in regular objects, or in other dynamic libraries. In the
658 latter case the library is not linked if it is found in a DT_NEEDED
659 entry of one of the libraries already linked.
660
0dafdf3f 661* Added --prefix=PREFIX and --prefix-strip=LEVEL switches to objdump to
28024d9d 662 add absolute paths for -S.
0dafdf3f 663
e77b97d4
KT
664* Add new option --use-nul-prefixed-import-tables to dlltool to allow fall-
665 back to old import table generation with null element prefix.
666
3aade688 667* Added --identify-strict switch to cause --identify <implib> to
71c57c16
NC
668 report an error when the import library is associated with
669 multiple DLLs.
670
671* Added --identify <implib> option to dlltool, which determines the
672 name of the DLL associated with the specified <implib>.
673
2f3bb96a
BE
674* Support for PowerPC booke64 instructions has been removed. The assembler no
675 longer accepts -mbooke32 or -mbooke64 and the disassembler no longer accepts
676 -Mbooke32 or -Mbooke64. Instead, -mbooke and -Mbooke should be used.
677
6e33da12
TG
678Changes in 2.19:
679
a262ae96
NC
680* Added -wL switch to dump decoded contents of .debug_line.
681
a8da6403
NC
682* Added support for "thin" archives which contain pathnames pointing to
683 object files rather than the files themselves and which contain a
684 flattened symbol index for all objects, and archives, which have been
685 added to the archive.
3aade688 686
98ec6e72
NC
687* Added -F switch to objdump to include file offsets in the disassembly.
688
4145f1d5
NC
689* Added -c switch to readelf to allow string dumps of archive symbol index.
690
85f10a01
MM
691* Support for SSE5 has been added to the i386 port.
692
09c11c86
NC
693* Added -p switch to readelf to allow string dumps of sections.
694
876c34bf 695Changes in 2.18:
98ec6e72 696
ad71ef64
NC
697* Resolved 37 coding problems in bfd including static array overruns, null
698 pointer dereferences and use of a malloc buffer after it has been freed, as
699 revealed by static analysis donated by Coverity, Inc. (http://scan.coverity.com).
1e4cf259 700
32866df7
NC
701* The binutils sources are now released under version 3 of the GNU General
702 Public License.
703
692ed3e7
NC
704* A new tool "windmc" has been added for some targets. This is a message
705 compiler which attempts to be compatible with the MS version.
706
707* Add codepage support to the windres tool. It now supports many new
708 resource types (e.g. MANIFEST, TOOLBAR, etc). The output generation
709 for binary files is done now via bfd itself. The endianess problems
710 for different hosts are solved. Dumps of .res files can now be
711 re-compiled by windres without lossing resources or compilation errors.
712 Some problems on dialog resource translations are corrected.
d856f2dd 713
a05a5b64 714* Add --extract-symbol command-line option to objcopy, which will
d3e52d40
RS
715 strip everything out of an ordinary object file or executable except
716 for its symbol table. Files containing just symbols can be useful
717 to some OSes.
718
32866df7
NC
719Changes in 2.17:
720
aef1f6d0
DJ
721* Add "-x NAME" to readelf in addition to "-x NUMBER".
722
cbf1f5df
NC
723* Add -i and -t switches to cxxfilt. -i disables the display of implementation
724 specific extra demangling information (if any) and -t disables the demangling
725 of types.
726
727* Add support for the "@<file>" syntax to the command lines of all tools, so
728 that extra switches can be read from <file>.
729
4de2ad99 730* Add "-W/--dwarf" to objdump to display the contents of the DWARF
cbf1f5df 731 debug sections.
4de2ad99 732
5477e8a0 733* Add "-t/--section-details" to readelf to display section details.
cbf1f5df 734 "-N/--full-section-name" is deprecated.
5477e8a0 735
b12fe839
AM
736* powerpc-linux ld now supports a variant form of PLT and GOT for the security
737 conscious. This form will automatically be chosen when ld detects that all
738 code in regular object files was generated by gcc -msecure-plt. The old PLT
739 and GOT may be forced by a new ld option, --bss-plt.
740
0c552dc1
FF
741* Add "-i/--inlines" to addr2line to print enclosing scope information
742 for inlined function chains, back to first non-inlined function.
743
81fc812e
L
744* Add "-N/--full-section-name" to readelf to display full section name.
745
ec72cfe5
NC
746* Add "-M entry:<addr>" switch to objdump to specify a function entry address
747 when disassembling VAX binaries.
748
7b4a0685
NC
749* Add "--globalize-symbol <name>" and "--globalize-symbols <filename>" switches
750 to objcopy to convert local symbols into global symbols.
3aade688 751
9fbad737 752* gprof now allows input files to have histogram records for
3aade688 753 several memory ranges, provided those ranges are disjoint.
7b4a0685
NC
754
755Changes in 2.16:
756
b12fe839 757* Add "-g/--section-groups" to readelf to display section groups.
81fc812e 758
bcf32829
JB
759* objcopy recognizes two new options --strip-unneeded-symbol and
760 --strip-unneeded-symbols, namely for use together with the wildcard
761 matching the original --strip-symbol/--strip-symbols provided, but
762 retaining any symbols matching but needed by relocations.
763
18bd398b
NC
764* readelf can now display address ranges from .debug_range sections. This
765 happens automatically when a DW_AT_range attribute is encountered. The
a05a5b64 766 command-line switch --debug-dump=Ranges (or -wR) can also be used to display
18bd398b
NC
767 the contents of the .debug_range section.
768
3c9458e9
NC
769* nm and objdump now have a switch "--special-syms" to enable the displaying of
770 symbols which the target considers to be special. By default these symbols
771 are no longer displayed. Currently the only special symbols are the Mapping
772 symbols used by the ARM port to mark transitions between text and data and
773 between ARM and THUMB code.
774
607dea97
NC
775* dlltool has a switch "--ext-prefix-alias <prefix>" to generate additional
776 import and export symbols with <preifx> prepended to them.
777
778Changes in 2.15:
779
e39893d7 780* objcopy for MIPS targets now accepts "-M no-aliases" as an option to the
9d317d34 781 disassembler to print the "raw" mips instruction mnemonic instead of some
e39893d7
FF
782 pseudo instruction name. I.E. print "daddu" or "or" instead of "move",
783 "sll" instead of "nop", etc.
784
5fe11841
NC
785* objcopy and strip can now take wildcard patterns in symbol names specified on
786 the command line provided that the --wildcard switch is used to enable them.
787
fb52b2f4
NC
788* readelf can now parse archives.
789
51cdc6e0
NC
790* objdump now accepts --debugging-tags to print the debug information in a
791 format compatible with ctags tool.
792
ed1653a7
NC
793* objcopy and strip now accept --only-keep-debug to create a file containing
794 those sections that would be stripped out by --strip-debug. The idea is that
795 this can be used in conjunction with the --add-gnu-debuglink switch to create
796 a two part program distribution - one a stripped executable and the other the
797 debugging info.
798
2593f09a
NC
799* objcopy now accepts --add-gnu-debuglink=<file> to insert a .gnu_debuglink
800 section into a (presumably stripped) executable. This allows the debug
50c2245b 801 information for the file to be held in a separate file.
3aade688 802
a3b6428f
NC
803* BFD marks the sections .comment and .note as 'n' in the BSD/POSIX
804 single-character representation. This can be checked by running nm
805 with the -a switch.
806
43c58ae6
CD
807Changes in 2.14:
808
7c29036b
NC
809* Added --info switch to objcopy and strip.
810
3b36097d
SC
811* Support for Vitesse IQ2000 added by Red Hat.
812
8745eafa
NC
813* Added 'S' encoding to strings to allow the display of 8-bit characters.
814
d7fb0dd2
NC
815* Added --prefix-symbols=<text>, --prefix-sections=<text> and
816 --prefix-alloc-sections=<text> to objcopy.
817
84ad6ede
NC
818* readelf can handle the extensions to the DWARF2 spec used by the Unified
819 Parallel C compiler.
820
7d036af2
AM
821* BFD no longer declares a "boolean" type, to avoid clashes with other
822 headers that declare the same. Users of BFD should replace boolean,
823 false and true, with int, 0 and 1, or define their own boolean type.
824
1e4cf259
NC
825* Support for IP2K added by Denis Chertykov.
826
2cbb2eef
NC
827Changes in 2.13:
828
829* Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400
830 and FR500 included.
252b5132 831
9a66911f
NC
832Changes in version 2.12:
833
49fda6c8
HPN
834* Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
835
15c82623
NC
836* size: Add --totals to display summary of sizes (Berkeley format only).
837
d974e256
JJ
838* readelf: Add --wide option to not break section header or segment listing
839 lines to fit into 80 columns.
840
d132876a
NC
841* strings: Add --encoding to display wide character strings. By Markus Kuhn.
842
594ef5db
NC
843* objcopy: Add --rename-section to change section names.
844
e0c60db2
NC
845* readelf: Support added for DWARF 2.1 extensions. Support added for
846 displaying the contents of .debug.macinfo sections.
847
a05a5b64 848* New command-line switches added to objcopy to allow symbols to be kept as
16b2b71c
NC
849 global symbols, and also to specify files containing lists of such symbols.
850 by Honda Hiroki.
851
87e6d782
NC
852* Support for OpenRISC by Johan Rydberg.
853
a05a5b64 854* New command-line switch to objcopy --alt-machine-code which creates a binary
1ae8b3d2
AO
855 with an alternate machine code if one is defined in the architecture
856 description. Only supported for ELF targets. By Alexandre Oliva.
857
a05a5b64 858* New command-line switch to objcopy -B (or --binary-architecture) which sets
09ad7db3 859 the architecture of the output file to the given argument. This option only
43a0748c
NC
860 makes sense, if the input target is binary. Otherwise it is ignored.
861 By Stefan Geuken.
862
e135f41b
NC
863* Support for PDP-11 by Lars Brinkhoff.
864
09ad7db3
AM
865Changes in binutils 2.11:
866
077b8428
NC
867* Add support for ARM v5t and v5te architectures and Intel's XScale ARM
868 extenstions.
869
a05a5b64 870* Add --srec-len and --srec-forceS3 command-line switch to objcopy.
077b8428 871 By Luciano Gemme.
7d036af2 872
156c2f8b
NC
873* Support for the MIPS32, by Anders Norlander.
874
22b36938
JE
875* Support for the i860, by Jason Eckhardt.
876
5bcac8a4
HPN
877* Support for CRIS (Axis Communications ETRAX series).
878
252b5132
RH
879Changes in binutils 2.10:
880
09ad7db3
AM
881* Support for 64-bit ELF on HPPA.
882
a05a5b64 883* New command-line switch to objdump --file-start-context which shows the
f1563258 884 entire file contents up to the source line first encountered for a given
7d036af2 885 file.
f1563258 886
a05a5b64 887* New command-line switch to objdump -M (or --disassembler-options) which takes
dd92f639
NC
888 a parameter which can then be interpreted on a per-target basis by the
889 disassembler. Used by ARM targets to select register name sets, ISA, APCS or
890 raw verions.
7d036af2 891
c2c40d93
ILT
892* objdump support for -mi386:intel which causes disassembly to be displayed
893 with intel syntax.
252b5132
RH
894
895* New program: readelf. This displays the contents of ELF format files,
896 regardless of target machine.
897
898* objcopy now takes --change-section-lma, --change-section-vma, and
899 --change-section-address options. The old --adjust-section-vma option is
900 equivalent to --change-section-address. The other --adjust-* options are now
901 renamed to --change-*, although --adjust-* continues to work.
902
57938635
AM
903* objcopy has a --redefine-sym option that lets you rename symbols.
904
905* objcopy now takes a -j/--only-section option to copy only the specified
906 sections.
907
252b5132
RH
908* dlltool now supports the IMPORTS command.
909
910* dlltool now takes --export-all-symbols, --no-export-all-symbols,
911 --exclude-symbols, and --no-default-excludes options.
912
913Changes in binutils 2.9:
914
915* Added windres program, which can be used to manipulate resources in WIN32
916 files as used on Windows 95 and Windows NT.
917
918* The objcopy --gap-fill and --pad-to options operate on the LMA rather than
919 the VMA of the sections.
920
921* Added S modifier to ar to not build a symbol table.
922
923Changes in binutils 2.8:
924
925* The objdump disassembly format has been changed, and hopefully improved. Use
926 the new --prefix-addresses option to get the old format. There are also new
927 --disassemble-zeroes and --no-show-raw-insn options which affect disassembler
928 output.
929
930* Formats may now be specified as configuration triplets. For example,
931 objdump -b i386-pc-linux. The triplets are not passed through config.sub,
932 so they must be in canonical form.
933
934* Added new addr2line program. This uses the debugging information to convert
935 an address into a file name and line number within a program.
936
937* Added --change-leading-char argument to objcopy.
938
939* Added --weaken argument to objcopy.
940
941* objdump --dynamic-reloc now works on ELF executables and shared libraries.
942
943* Added --adjust-vma option to objdump.
944
945* Added -C/--demangle option to objdump.
946
947* Added -p/--preserve-dates option to strip and objcopy.
948
949Changes in binutils 2.7:
950
951* Added --enable-shared and --enable-commonbfdlib options to configure.
952
953* Added --debugging argument to objdump and objcopy.
954
955* Added --defined-only argument to nm.
956
957* Added --remove-leading-char argument to objcopy.
958
959* The objdump --line-numbers option is now meaningful with --reloc.
960
961* Added --line-numbers option to nm.
962
963* Added --endian/-EB/-EL option to objdump.
964
965* Added support for Alpha OpenVMS/AXP.
966
967Changes in binutils 2.6:
968
969* Added -N/--strip-symbol and -K/--keep-symbol arguments to strip and objcopy.
970
971* Added several arguments to objcopy to provide some control over how the new
972 file is laid out in memory. Also added binary output format to BFD to permit
973 generating plain binary files.
974
975* Added --start-address and --stop-address options to objdump.
976
977* ar and ranlib now work on AIX. The tools are now built by default on AIX.
978
979Changes in binutils 2.5:
980
981* Changed objdump -dr to dump the relocs interspersed with the assembly
1049f94e 982 listing, for a more useful listing of relocatable files.
252b5132
RH
983
984* Changed objdump -d/--disassemble to only disassemble SEC_CODE sections.
985 Added -D/--disassemble-all option to disassemble all sections.
986
987* Added --size-sort option to nm.
988
989* strip and objcopy should now be able to handle dynamically linked ELF
990 executables.
991
992Changes in binutils 2.4:
993
994* Support for HP-PA (by Jeff Law), i386 Mach (by David Mackenzie), RS/6000 and
995 PowerPC (except ar and ranlib; by Ian Taylor).
996
997* Support for Irix 5.
998
999* Programs `strip' and `objcopy' will not attempt to write dynamically linked
1000 ELF output files, since BFD currently can't create them properly.
1001
1002Changes in binutils 2.3:
1003
1004* A new --stabs argument has been added to objdump to dump stabs sections in
1005 ELF and COFF files.
1006
1007* A new program, nlmconv, has been added. It can convert object files into
1008 Novell NetWare Loadable Modules.
1009
1010* The strings program has been added.
1011
1012Changes in binutils 2.2:
1013
1014* The 'copy' program has been renamed to 'objcopy', for consistency with
1015 'objdump', and because 'copy' might more plausibly be used as a synonym for
1016 'cp'.
1017
1018* The new stand-alone program c++filt is a filter that converts encoded
1019 (mangled) C++ assembly-level identifiers to user-level names. (Note: This
1020 may get moved to the gcc distribution.)
1021
1022* nm -o on an archive now prefixes each line with the archive name, matching
1023 the output from BSD nm.
1024
1025* ar (and ld) can now read (but not write) BSD4.4-style archives.
1026
1027* New support for H8500, Z8000, and the Hitach SH.
1028
1029* Dis-assembler interface changed to allow sharing with gdb.
1030
1031* There is new Elf code, but it is not yet ready for general use.
1032
1033* There is the beginnings of a test suite.
1034
1035Changes in binutils 2.1:
1036
1037* There is now support for writing ECOFF files, so ld and the other utilities
1038 should work on Risc/Ultrix and Irix. Please let us know how well this works.
1039
1040* ar now automatically creates a symbol table (a __.SYMDEF member, in the BSD
1041 version), if there are any object files in the archive. So running ranlib is
1042 now redundant (unless the non-standard q command is used). This is required
1043 for Posix.2 conformance.
1044
1045* The archive-reading code now reads both BSD-style and SYSV-style archives
1046 independently of the selected target format. This is to encourage people to
1047 switch to SYSV-format, which has a number of advantages.
1048
1049* The strip and copy programs now have options to remove debug-symbols only
1050 and/or local symbols only. They now also support long options.
1051
1052\f
e8e7cf2a 1053Copyright (C) 2012-2025 Free Software Foundation, Inc.
5bf135a7
NC
1054
1055Copying and distribution of this file, with or without modification,
1056are permitted in any medium without royalty provided the copyright
1057notice and this notice are preserved.
1058
252b5132
RH
1059Local variables:
1060fill-column: 79
1061End: