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