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