1 Import binutils 2.45 (previous was 2.42) 2 3 2.45 Release Notes 4 ------------------ 5 6 Assembler: 7 8 All sframe information generated by the assembler is now in compliance 9 with the SFrame V2 specification. 10 11 The assembler now supports .errif and .warnif directives, permitting 12 user-controlled diagnostics with conditionals that are evaluated only 13 at the end of assembly. 14 15 The assembler predefines the symbol "GAS(version)". 16 17 The assembler now supports the generation of SFrame stack trace 18 information (.sframe) from CFI directives on s390 64-bit (s390x). 19 20 For RISC-V, the ".option arch, -ext" format is deprecated due to its 21 controversial use. 22 23 For RISC-V, stop generating mapping symbols $x and replace with $x<isa>. The 24 $x was defined to have the same ISA as previous $x<isa>, but now is defined 25 to have the same ISA as elf architecture attribute. Once both used .option 26 arch/rvc/norvc/push/pop directives (some code have different architectures 27 with file attribute) and data directives in text, then the file need to be 28 rebuilt since 2.45. 29 30 The assembler supports the latest architecture extensions for the 31 RISC-V, LoongArch and AArch64 architectures. 32 33 Linker: 34 35 The linker's --stats option can take an optional argument which if used is 36 interpreted as a filename into which resource usage information should be 37 stored. As an alternative mechanism the LD_STATS environment variable can 38 also be used to achieve the same results. Resource usage information for 39 various phases of the linking operation is now included in the report. 40 If a map file is being produced then the information is also included there. 41 The --no-stats option can be used to disable stat reporting, should it have 42 been enabled. 43 44 On s390 64-bit (s390x), generate SFrame stack trace information (.sframe) 45 for the linker generated .plt section. On s390 32-bit, generate 46 ".eh_frame" unwind information for the linker generated .plt section. 47 Both features are enabled by default and can be disabled using linker 48 option --no-ld-generated-unwind-info. 49 50 On RISC-V, add new PLT formats, and GNU property merge rules for zicfiss and 51 zicfilp extensions. 52 53 On AVR, the default linker scripts now assert that the .progmem sections 54 don't extend past 0xffff since they are accessed by means of LPM. 55 For data in program memory that may be located past 0xffff, a .progmemx 56 section should be used. 57 58 On LoongArch, linker relaxation time complexity is no longer quadratic with 59 respect to relocation counts. Linking time of large software should be 60 improved. In addition R_LARCH_32_PCREL records are now checked for 61 overflow. 62 63 Other binary utilities: 64 65 New versioned release of libsframe: libsframe.so.2. This release introduces 66 versioned symbols with version node name LIBSFRAME_2.0. Some new symbols 67 have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and 68 retrieving flags from SFrame decoder and encoder objects: 69 - Addition of sframe_decoder_get_flags, 70 sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags, 71 sframe_encoder_get_offsetof_fde_start_addr. 72 This release also includes backward-incompatible ABI changes: 73 - Removal of sframe_get_funcdesc_with_addr. 74 - Change in the behavior of sframe_decoder_get_funcdesc_v2, 75 sframe_encoder_add_funcdesc_v2 and sframe_encoder_write. 76 77 For SFrame stack trace format, the function start address in each SFrame 78 FDE has a changed encoding: The 32-bit signed integer now holds the offset 79 of the start PC of the associated function from the sfde_func_start_address 80 field itself (instead of the earlier where it was the offset from the start 81 of the SFrame section itself). All SFrame sections generated by gas and ld 82 now default to this new encoding, setting the (new) 83 SFRAME_F_FDE_FUNC_START_PCREL flag. 84 85 Relocatable SFrame links are now fixed. 86 87 Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and 88 GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp 89 extensions. 90 91 The LoongArch disassembler now properly accepts multiple disassembly 92 options given by -M, such as "-M no-aliases,numeric". (Previously only the 93 first option took effect.) 94 95 2.44 Release Notes 96 ------------------ 97 98 Assembler: 99 Support for new architecture extensions for AArch64, Risc-V and 100 x86. 101 102 Linker: 103 The default maximum page size was changed from 16KiB to 64KiB for 104 LoongArch. 105 106 This now supports mixed LTO and non-LTO object files in 107 relocatable output. 108 109 The ELF forms of the linker support a --image-base=<ADDR> option 110 for compatibility with LLD. 111 112 The --build-id= option now accepts an argument of "xx" which 113 enables the use of the xxhash library. This produces a 128-bit 114 hash and is 2-4x faster than md5 or sha1. 115 116 The ELF linker option --package-metadata supports percent-encoded 117 and %[string] encoded JSON payloads. 118 119 Disassembler: 120 The RISC-V disassembler now supports -M,max option like QEMU to 121 dump instruction without checking architecture support as usual. 122 123 GprofNG: 124 Support added for hardware event counters for Neoverse-N1, 125 Ampere-1, and Appliedmicro processors. 126 127 Support for the Nios II target has been removed. 128 129 2.43 Release Notes 130 ------------------ 131 132 Assembler: 133 134 * Add a .base64 directive to the assembler which allows base64 encoded 135 binary data to be provided as strings. 136 137 * Assembler macros as well as the bodies of .irp / .irpc / .rept can now use 138 the syntax \+ to access the number of times a given macro has been executed. 139 This is similar to the already existing \@ syntax, except that the count is 140 maintained on a per-macro basis. 141 142 * References to FB and dollar labels, when supported, are no longer permitted 143 in a radix other than 10. (Note that definitions of such labels were 144 already thus restricted, except that leading zeroes were permitted). 145 146 Linker: 147 148 * Add support for DT_RELR type compressed runtime relocations for the 149 AArch64 and LoongArch architectures. 150 151 * Add --rosegment option which changes the -z separate-code option so that 152 only one read-only segment is created (instead of two). 153 154 * Add --section-ordering-file <FILE> option to add extra mapping of input 155 sections to output sections. 156 157 * Add -plugin-save-temps to store plugin intermediate files permanently. 158 159 Utilities: 160 161 * Readelf will now display DT_RELR relocations in full detail. 162 163 * Readelf now has a -j/--display-section option which takes the name 164 or index of a section and displays its contents according to its 165 type. The option can be used multiple times on the command line to 166 display multiple sections. 167 168 * When objdump or readelf are used to display the contents of a 169 .eh_frame section they will now also display the contents of the 170 .eh_frame_hdr section, if present. 171 172 Gprofng: 173 174 * Improved the support for hardware event counters: 175 - Re-designed and streamlined the implementation. 176 - Defined a common set of events for ARM processors. 177 - Added specific events for AMD ZEN3 / ZEN4, and Intel 178 Ice Lake processors. 179 * Added a minimal support for RISC-V. 180 181 General: 182 183 * Target specific improvements for many architectures. 184 185 186