Fedora 34 Change: Binutils 2.36 (System-Wide Change)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://fedoraproject.org/wiki/Changes/BINUTILS236


== Summary ==
Rebase the binutils package from version 2.35.1 to version 2.36.

== Owner ==

* Name: Nick Clifton [https://fedoraproject.org/wiki/User:Nickc]
* Email: nickc@xxxxxxxxxx


== Detailed Description ==

Switch the binutils package from being based on the 2.35.1 release of
the GNU binutils to
being based on the 2.36 release.  This release will bring in numerous
bug fixes, as well
as support for new x86 and ARM architecture extensions.


== Benefit to Fedora ==
The main benefit will be the bug fixes and the improvements to the
linker and assembler.  Whilst invisible to ordinary users these
changes will benefit package maintainers and application developers.

== Scope ==
* Proposal owners:
Change the source parameter in the binutils.spec rpm and adjust the
local patches to take account of the bugs that are now already fixed.
This is a significant change to the underlying tools used to build
Fedora and so there should be a mass rebuild in order for the changes
to be noticed across the system.

* Other developers: None

* Release engineering: https://pagure.io/releng/issue/9898
A mass rebuilt will be required.

* Policies and guidelines: No documents need to be updated.

* Trademark approval: N/A (not needed for this Change)

* Alignment with Objectives:
The rebase of the binutils will bring with it improved support for
smaller architectures (eg ARM, RISC-V, MIPS) which in turn will align
with the Fedora Internet of Things objective.

== Upgrade/compatibility impact ==
The binutils are backwards compatible with previous releases, so no
changes should be necessary.

== How To Test ==
The binutils package does include its own set of testsuites which
check basic functionality.
The real test however is by rebuilding other packages which depend
upon the binutils, or
more likely, upon gcc.  If these packages continue to work then the
binutils update has not
broken anything.

== User Experience ==
The change should not be noticeable to the user.

== Dependencies ==
This update has no hard dependencies on any other package.
There are other packages that do depend upon the binutils however.
Most notably gcc and redhat-rpm-config.


== Contingency Plan ==

* Contingency mechanism:

Revert to the 2.35.1 binutils as currently used in rawhide.  This work
can be done by me, should it prove necessary.

* Contingency deadline: Beta freeze.

* Blocks release? No
* Blocks product? None

== Documentation ==
This rebase brings with it many bug fixes, plus the following notable
new features:
   New features in the Assembler:

    General:
     * When setting the link order attribute of ELF sections, it is now
       possible to use a numeric section index instead of symbol name.
     * Added a .nop directive to generate a single no-op instruction in
       a target neutral manner.  This instruction does have an effect on
       DWARF line number generation, if that is active.
     * Removed --reduce-memory-overheads and --hash-size as gas now
       uses hash tables that can be expand and shrink automatically.
     X86/x86_64:
       * Add support for AVX VNNI, HRESET, UINTR, TDX, AMX and Key
         Locker instructions.
       * Support non-absolute segment values for lcall and ljmp.
       * Add {disp16} pseudo prefix to x86 assembler.
       * Configure with --enable-x86-used-note by default for Linux/x86.
     ARM/AArch64:
       * Add support for Cortex-A78, Cortex-A78AE and Cortex-X1,
         Cortex-R82, Neoverse V1, and Neoverse N2 cores.
       * Add support for ETMv4 (Embedded Trace Macrocell), ETE (Embedded
         Trace Extension), TRBE (Trace Buffer Extension), CSRE (Call
         Stack Recorder Extension) and BRBE (Branch Record Buffer
         Extension) system registers.
       * Add support for Armv8-R and Armv8.7-A ISA extensions.
       * Add support for DSB memory nXS barrier, WFET and WFIT
         instruction for Armv8.7.
       * Add support for +csre feature for -march. Add CSR PDEC
         instruction for CSRE feature in AArch64.
       * Add support for +flagm feature for -march in Armv8.4 AArch64.
       * Add support for +ls64 feature for -march in Armv8.7
         AArch64. Add atomic 64-byte load/store instructions for this
         feature.
       * Add support for +pauth (Pointer Authentication) feature for
         -march in AArch64.

    New features in the Linker:
      * Add --error-handling-script=<NAME> command line option to allow
        a helper script to be invoked when an undefined symbol or a
        missing library is encountered.  This option can be suppressed
        via the configure time switch: --enable-error-handling-script=no.
      * Add -z x86-64-{baseline|v[234]} to the x86 ELF linker to mark
        x86-64-{baseline|v[234]} ISA level as needed.
      * Add -z unique-symbol to avoid duplicated local symbol names.
      * The creation of PE format DLLs now defaults to using a more
        secure set of DLL characteristics.
      * The linker now deduplicates the types in .ctf sections.  The new
         command-line option --ctf-share-types describes how to do this:
         its default value, share-unconflicted, produces the most compact
         output.
      * The linker now omits the "variable section" from .ctf sections
        by default, saving space.  This is almost certainly what you
        want unless you are working on a project that has its own
        analogue of symbol tables that are not reflected in the ELF
        symtabs.

  New features in other binary tools:
      * 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 available.

-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux