Home | History | Annotate | Line # | Download | only in dist
      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