-*- text -*-
+* The MIPS port now supports the Sony Interactive Entertainment Allegrex
+ processor, used with the PlayStation Portable, which implements the MIPS
+ II ISA along with a single-precision FPU and a few implementation-specific
+ integer instructions.
+
+* Objdump's --private option can now be used on PE format files to display the
+ fields in the file header and section headers.
+
+* New versioned release of libsframe: libsframe.so.1. This release introduces
+ versioned symbols with version node name LIBSFRAME_1.0. This release also
+ updates the ABI in an incompatible way: this includes removal of
+ sframe_get_funcdesc_with_addr API, change in the behavior of
+ sframe_fre_get_ra_offset and sframe_fre_get_fp_offset APIs.
+
+* SFrame Version 2 is now the default (and only) format version supported by
+ gas, ld, readelf and objdump.
+
+* Add command-line option, --strip-section-headers, to objcopy and strip to
+ remove ELF section header from ELF file.
+
+* The RISC-V port now supports the following new standard extensions:
+ - Zicond (conditional zero instructions)
+ - Zfa (additional floating-point instructions)
+
+* The RISC-V port now supports the following vendor-defined extensions:
+ - XVentanaCondOps
+
+Changes in 2.40:
+
+* Objdump has a new command line option --show-all-symbols which will make it
+ display all symbols that match a given address when disassembling. (Normally
+ only the first symbol that matches an address is shown).
+
+* Add --enable-colored-disassembly configure time option to enable colored
+ disassembly output by default, if the output device is a terminal. Note,
+ this configure option is disabled by default.
+
+* DCO signed contributions are now accepted.
+
+* objcopy --decompress-debug-sections now supports zstd compressed debug
+ sections. The new option --compress-debug-sections=zstd compresses debug
+ sections with zstd.
+
+* addr2line and objdump --dwarf now support zstd compressed debug sections.
+
+* The dlltool program now accepts --deterministic-libraries and
+ --non-deterministic-libraries as command line options to control whether or
+ not it generates deterministic output libraries. If neither of these options
+ are used the default is whatever was set when the binutils were configured.
+
+* readelf and objdump now have a newly added option --sframe which dumps the
+ SFrame section.
+
+Changes in 2.39:
+
+* Add --no-weak/-W option to nm to make it ignore weak symbols.
+
+* Add an option to objdump and readelf to prevent attempts to access debuginfod
+ servers when following links.
+
+* objcopy --weaken, --weaken-symbol, and --weaken-symbols now make ELF
+ STB_GNU_UNIQUE symbols weak.
+
+* objdump now supports syntax highlighting of disassembler output for some
+ architectures. Use the --disassembler-color=MODE command line flag, with
+ mode being either off, color, or extended-color.
+
+Changes in 2.38:
+
+* elfedit: Add --output-abiversion option to update ABIVERSION.
+
+* Add support for the LoongArch instruction set.
+
+* Tools which display symbols or strings (readelf, strings, nm, objdump)
+ have a new command line option which controls how unicode characters are
+ handled. By default they are treated as normal for the tool. Using
+ --unicode=locale will display them according to the current locale.
+ Using --unicode=hex will display them as hex byte values, whilst
+ --unicode=escape will display them as escape sequences. In addition
+ using --unicode=highlight will display them as unicode escape sequences
+ highlighted in red (if supported by the output device).
+
+* readelf -r dumps RELR relative relocations now.
+
+* Support for efi-app-aarch64, efi-rtdrv-aarch64 and efi-bsdrv-aarch64 has been
+ added to objcopy in order to enable UEFI development using binutils.
+
+* ar: Add --thin for creating thin archives. -T is a deprecated alias without
+ diagnostics. In many ar implementations -T has a different meaning, as
+ specified by X/Open System Interface.
+
+Changes in 2.37:
+
+* The readelf tool has a new command line option which can be used to specify
+ how the numeric values of symbols are reported. --sym-base=0|8|10|16 tells
+ readelf to display the values in base 8, base 10 or base 16. A sym base of 0
+ represents the default action of displaying values under 10000 in base 10 and
+ values above that in base 16.
+
+* Binutils now requires a C99 compiler and library to build.
+
+* A new format has been added to the nm program. Specifying
+ --format=just-symbols (or just using -j) will tell the program to only
+ display symbol names and nothing else.
+
+* A new command line --keep-section-symbols has been added to objcopy and
+ strip. This stops the removal of unused section symbols when the file is
+ copied. Removing these symbols saves space, but sometimes they are needed by
+ other tools.
+
+* objcopy --weaken, --weaken-symbol and --weaken-symbols now make undefined
+ symbols weak on targets that support weak symbols.
+
+* Readelf and objdump can now display and use the contents of .debug_sup
+ sections.
+
+* Readelf and objdump will now follow links to separate debug info files by
+ default. This behaviour can be stopped via the use of the new -wN or
+ --debug-dump=no-follow-links options for readelf and the -WN or
+ --dwarf=no-follow-links options for objdump. Also the old behaviour can be
+ restored by the use of the --enable-follow-debug-links=no configure time
+ option.
+
+ The semantics of the =follow-links option have also been slightly changed.
+ When enabled, the option allows for the loading of symbol tables and string
+ tables from the separate files which can be used to enhance the information
+ displayed when dumping other sections, but it does not automatically imply
+ that information from the separate files should be displayed.
+
+ If other debug section display options are also enabled (eg
+ --debug-dump=info) then the contents of matching sections in both the main
+ file and the separate debuginfo file *will* be displayed. This is because in
+ most cases the debug section will only be present in one of the files.
+
+ If however non-debug section display options are enabled (eg --sections) then
+ the contents of matching parts of the separate debuginfo file will *not* be
+ displayed. This is because in most cases the user probably only wanted to
+ load the symbol information from the separate debuginfo file. In order to
+ change this behaviour a new command line option --process-links can be used.
+ This will allow di0pslay options to applied to both the main file and any
+ separate debuginfo files.
+
+* Nm has a new command line option: --quiet. This suppresses "no symbols"
+ diagnostic.
+
+Changes in 2.36:
+
+* Update elfedit and readelf with LAM_U48 and LAM_U57 support.
+
+* Nm has a new command line option: --ifunc-chars=CHARS. This specifies a
+ string of one or two characters. The first character is used as the type
+ character when displaying global ifunc symbols. The second character, if
+ present is used when displaying local ifunc symbols.
+
+ In addition a new configure time option --enable-f-for-ifunc-symbols has been
+ created, which if used will change nm's default characters for ifunc symbols
+ from i (both local and global) to F (global) and f (local).
+
+* The ar tool's previously unused l modifier is now used for specifying
+ dependencies of a static library. The arguments of this option
+ (or --record-libdeps long form option) will be stored verbatim in the
+ __.LIBDEP member of the archive, which the linker may read at link time.
+
+* Readelf can now display the contents of LTO symbol table sections when asked
+ to do so via the --lto-syms command line option.
+
+* Readelf now accepts the -C command line option to enable the demangling of
+ symbol names. In addition the --demangle=<style>, --no-demangle,
+ --recurse-limit and --no-recurse-limit options are also now availale.
+
+* Add support for the SHF_GNU_RETAIN ELF section flag.
+ This flag specifies that the section should not be garbage collected by the
+ linker.
+
+Changes in 2.35:
+
+* Changed readelf's display of symbol names when wide mode is not enabled.
+ If the name is too long it will be truncated and the last five characters
+ replaced with "[...]". The old behaviour of displaying 5 more characters but
+ not indicating that truncation has happened can be restored by the use of the
+ -T or --silent-truncation options.
+
+* X86 NaCl target support is removed.
+
+* The readelf tool now has a -L or --lint or --enable-checks option which turns
+ on warning messages about possible problems with the file(s) being examined.
+ These checks include things like zero-sized sections, which are allowed by
+ the ELF standard but which nevertheless might be of concern if the user
+ was expecting them to actually contain something.
+
+Changes in 2.34:
+
+* Binutils now supports debuginfod, an HTTP server for distributing
+ ELF/DWARF debugging information as well as source code. When built with
+ debuginfod, readelf and objdump can automatically query debuginfod
+ servers for separate debug files when they otherwise cannot be found.
+ To build binutils with debuginfod, pass --with-debuginfod to configure.
+ This requires libdebuginfod, the debuginfod client library. debuginfod
+ is distributed with elfutils, starting with version 0.178. For more
+ information see https://sourceware.org/elfutils.
+
+* Add --output option to the "ar" program. This option can be used to specify
+ the output directory when extracting members from an archive.
+
+* Add --keep-section option to objcopy and strip. This option keeps the
+ specified section from being removed.
+
+ * Add visualization of jumps inside a function by drawing an ascii character
+ graph between the address and the disassembler column. Enabled via the
+ --visualize-jumps command line option for objdump. Currently supported by
+ the x86, x86_64, and ARM targets. The output looks something like this:
+
+ c6: | | \----------> be 00 00 00 00 mov $0x0,%esi
+ cb: | | /----> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2 <main+0xd2>
+ d2: | | | 31 c0 xor %eax,%eax
+ d4: | | | /-- e8 00 00 00 00 callq d9 <main+0xd9>
+ d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
+ de: | +-----------|----- e8 00 00 00 00 callq e3 <main+0xe3>
+ e3: | \-----------|----> 48 89 da mov %rbx,%rdx
+ e6: | | be 00 00 00 00 mov $0x0,%esi
+ eb: | \----- eb de jmp cb <main+0xcb>
+ ed: \-------------------> 48 8b 16 mov (%rsi),%rdx
+
+ Additional arguments to the --visualize-jumps option add colors to the
+ output.
+
+Changes in 2.33:
+
+* Add --source-comment[=<txt>] option to objdump which if present,
+ provides a prefix to source code lines displayed in a disassembly.
+
+* Add --set-section-alignment <section-name>=<align> option to objcopy to allow
+ the changing of section alignments.
+
+* Add --verilog-data-width option to objcopy for verilog targets to control
+ width of data elements in verilog hex format.
+
+* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
+ instructions.
+
+* The separate debug info file options of readelf (--debug-dump=links
+ and --debug-dump=follow) and objdump (--dwarf=links and
+ --dwarf=follow-links) will now display and/or follow multiple links if
+ more than one are present in a file. (This usually happens when gcc's
+ -gsplit-dwarf option is used).
+
+ In addition objdump's --dwarf=follow-links now also affects its other
+ display options, so that for example, when combined with --syms it will
+ cause the symbol tables in any linked debug info files to also be
+ displayed. In addition when combined with --disassemble the --dwarf=
+ follow-links option will ensure that any symbol tables in the linked
+ files are read and used when disassembling code in the main file.
+
+ * Add support for dumping types encoded in the Compact Type Format
+ to objdump and readelf.
+
+Changes in 2.32:
+
+* The addr2line, c++filt, nm and objdump tools now have a limit on the
+ maximum amount of recursion that is allowed whilst demangling strings.
+ The value for this limit is defined by the DEMANGLE_RECRUSE_LIMIT
+ constant declared in the include/demangle.h header file. At the time
+ of writing this constant has the value of 2048.
+
+ The --no-recurse-limit option can be used to remove the limit, restoring
+ the behaviour of earlier versions of these tools. This may be needed in
+ order to dmangle truly complicated names, but it also leaves the tools
+ vulnerable to stack exhaustion from maliciously constructed mangled names.
+
* Objdump's --disassemble option can now take a parameter, specifying the
starting symbol for disassembly. Disassembly will continue from this
- symbol up to the next symbol.
+ symbol up to the next symbol or the end of the function.
* The MIPS port now supports the Loongson 2K1000 processor which implements
the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE, Loongson-ext ASE,
3A1000 processor, The -march=loongson3a is an alias of -march=gs464 for
compatibility.
+* The size tool now has a new output format '--format=GNU' or '-G'. The
+ results are displayed in a similar manor to the default berkeley layout,
+ except read-only data is counted in the data column, not the text column.
+ Additionally the total is only included once.
+
Changes in 2.31:
* Add support for disassembling netronome Flow Processor (NFP) firmware files.
and/or local symbols only. They now also support long options.
\f
-Copyright (C) 2012-2018 Free Software Foundation, Inc.
+Copyright (C) 2012-2023 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright