Re: F38 proposal: GNU Toolchain Update (gcc 13.0, binutils 2.39, glibc 2.37, gdb 12.1) (System-Wide Change proposal)

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

 



On 12/30/22 14:12, Neal Gompa wrote:
> On Fri, Dec 30, 2022 at 2:02 PM Ben Cotton <bcotton@xxxxxxxxxx> wrote:
>>
>> https://fedoraproject.org/wiki/Changes/GNUToolchainF38
>>
>> This document represents a proposed Change. As part of the Changes
>> process, proposals are publicly announced in order to receive
>> community feedback. This proposal will only be implemented if approved
>> by the Fedora Engineering Steering Committee.
>>
>>
>> == Summary ==
>> Update the Fedora 38 GNU Toolchain to gcc 13.0, binutils 2.39, and glibc 2.37.
>>
>> The existing gdb 12.1 will be used as-is.
>>
>> The set of core GNU Toolchain packages for Fedora 38 are as follows:
>>
>> * GNU C Compiler 13.0
>> ** Associated runtimes for C++ (libstdc++), Go (gccgo), OpenMP (gomp),
>> Fortran (gfortran), D (phobos), Objective C/C++.
>> * GNU Binary Utilities 2.39
>> * GNU C Library 2.37
>> * GNU Debugger 12.1 (immediately available in Fedora 37)
>>
>> The gcc 13.0 change will be tracked in this top-level GNU Toolchain
>> system-wide update.
>>
>> The binutils 2.39 change will be tracked in this top-level GNU
>> Toolchain system-wide update.
>>
>> The glibc 2.37 change will be tracked in this top-level GNU Toolchain
>> system-wide update.
>>
>> == Owner ==
>> * Name: [[User:codonell|Carlos O'Donell]]
>> * Email: carlos@xxxxxxxxxx
>>
>>
>> == Detailed Description ==
>> The GNU Compiler Collection, GNU Binary Utilities, GNU C Library, and
>> the GNU Debugger make up the core part of the GNU Toolchain and it is
>> useful for our users to transition these components as a complete
>> implementation when making a new release of Fedora.
>>
>> The GNU Compiler Collection is expected to release version 13.0, after
>> the Fedora 38 release. It will contain many new features, documented
>> here: https://gcc.gnu.org/gcc-13/changes.html. The latest release
>> candidate for gcc 13 will be included in Fedora 38 and will be updated
>> when released.
>>
>> The GNU Binutils version 2.39 was released before Fedora 38; and we
>> have already been using this version of binutils in Fedora Rawhide
>> successfully to build the distribution for the last 4 months. Given
>> the present schedule for Fedora 38 we will continue to use Binutils
>> 2.39.
>>
>> The GNU C Library version 2.37 is expected to be release before Fedora
>> 38; we have started closely tracking the glibc 2.37 development code
>> in Fedora Rawhide and are addressing any issues as they arise. Given
>> the present schedule Fedora 38 will branch after the release of glibc
>> 2.37. However, the mass rebuild schedule means Fedora 38 will mass
>> rebuild (if required) before the final release of glibc 2.37, but
>> after the ABI is frozen.
>>
>> The GNU Debugger version 12.1 was released before Fedora 38; and we
>> plan to continue to use this version of the debugger.
>>
>> == Benefit to Fedora ==
>> Stays up to date with latest features, improvements, security and bug
>> fixes from gcc, glibc, binutils, and gdb upstream.
>>
>> The goal is to track and transition to the latest components of the
>> GNU Toolchain.
>>
>> == Scope ==
>> * Proposal owners: Fedora Toolchain Team (gcc, glibc, binutils, gdb,
>> ...) developers need to ensure that gcc, glibc, binutils, and gdb in
>> rawhide are stable and ready for the Fedora 38 branch.
>>
>> * Other developers: Given that glibc is backwards compatible and we
>> have been testing the new glibc in rawhide it should make very little
>> impact when updated, except for the occasional deprecation warnings
>> and removal of legacy interfaces from public header files.
>>
>> * Release engineering: A mass rebuild is strongly encouraged;
>> [https://pagure.io/releng/issue/XX #XX]
>> ** Filed after approval.
>>
>> * Policies and guidelines: N/A (not needed for this Change)
>> * Trademark approval: N/A (not needed for this Change)
>> * Alignment with Objectives: N/A
>>
>>
>>
>> == Upgrade/compatibility impact ==
>> The compiler, the static linker and the the library are backwards
>> compatible with the previous version of Fedora.
>>
>> Some source changes may be required for the gcc 13 update. Please
>> refer to the latest changes here:
>> https://gcc.gnu.org/gcc-13/changes.html
>>
>> Any source level changes required for glibc 2.37 will be noted here:
>> https://sourceware.org/glibc/wiki/Release/2.37#Packaging_Changes
>>
>> == How To Test ==
>> The GNU Compiler Collection has its own testsuite which is run during
>> the package build and examined by the gcc developers before being
>> uploaded.
>>
>> The GNU C Library has its own testsuite which is run during the
>> package build and examined by the glibc developers before being
>> uploaded. This test suite has over 6200 tests that run to verify the
>> correct operation of the library. In the future we may also run the
>> microbenchmark to look for performance regressions.
>>
>> The GNU Binutils has its own testsuite which is run during the package
>> build and examined by binutils developers before being uploaded. The
>> regression testsuite is run to verify the correct operation of the
>> static linker and attendant utilities.
>>
>> The GNU Debugger has its own testsuite which is run during the package
>> build and examined by gdb developers before being uploaded. The
>> regression testsuite is run to verify the correct operation of the
>> debugger.
>>
>> == User Experience ==
>> Fedora developers as well as developers using the distribution will be
>> able to use and develop using the new features offered by the updated
>> components. Developers will need to enable specific compiler features
>> as required e.g. '-mcpu=neoverse-v2'.
>>
>> == Dependencies ==
>> All packages do not need to be rebuilt due to backwards compatibility.
>> However, it is advantageous if a mass rebuild is performed during the
>> Fedora 38 cycle. The mass rebuild would ensure all packages can be
>> built with the newer compiler and core runtime.
>>
>> == Contingency Plan ==
>>
>> * Contingency mechanism glibc: If glibc 2.37 proves too disruptive to
>> compiling the distribution we could revert to 2.36, but given that
>> Rawhide has started tracking glibc 2.37, no show-stopper problems are
>> expected.  At this point we can still revert to upstream version 2.36
>> if insurmountable problems appear, but to do so may require a mass
>> rebuild to remove new symbols from the ABI/API.
>>
>> * Contingency mechanism binutils: If binutils 2.39 proves too
>> distruptive to assembling and linking the distribution we could revert
>> to 2.38, but given that Rawhide is using 2.39, no show-stopper
>> problems are expected. At this point we can still revert if
>> insurmountable problems appear, but to do so may require a mass
>> rebuild if the defects involve generated binaries.
>>
>> * Contingency mechanism for gcc: If gcc 13 proves too disruptive to
>> compiling the distribution we could revert to gcc 12.
>>
>> * Contingency mechanism for gdb: The gdb 12.1 release is already in
>> all the Fedora releases and it would not be reverted. If any gcc,
>> glibc or binutils changes cause gdb to fail then that would need to be
>> reviewed on a case-by-case basis.
>>
>>
>> * Contingency deadline: Fedora mass rebuild on 2023-01-18.
>> * Blocks release?
>> ** Yes, upgrading to gcc 13.0 does block the release.
>> ** Yes, upgrading to binutils 2.39 does block the release.
>> ** Yes, upgrading to glibc 2.37 does block the release.
>> ** No, upgrading to gdb 12.1 does block the release (already released).
>>
>>
>> == Documentation ==
>> The gcc manual contains the documentation for the release and doesn't
>> need any more additional work.
>>
>> The binutils manual contains the documentation for the release and
>> doesn't need any more additional work.
>>
>> The glibc manual contains the documentation for the release and
>> doesn't need any more additional work.
>>
>> The gdb manual contains the documentation for the release and doesn't
>> need any more additional work.
>>
>>
>> == Release Notes ==
>> <!-- Use this text for GCC updates: -->
>>
>> See https://gcc.gnu.org/gcc-13/changes.html for the GNU Compiler
>> Collection version 13 release notes.
>>
>> <!-- Use this text for GLIBC updates: -->
>> The GNU C Library version 2.37 will be released at the beginning of
>> February 2023. The current NEWS notes can be seen here as they are
>> added: https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;hb=HEAD
>>
>> The GNU Binary Utilities version 2.39 was released August 2022. The
>> current release notes will be sent to the developer mailing list:
>> https://sourceware.org/pipermail/binutils/2022-August/122246.html.
>>
> 
> Can we please have gcc-rs also built (even though it's experimental)?

gcc-rs is not capable of even compiling hello world, so it would be
rather pointless to package it.  Even once gcc-rs is finished, I
suspect rustc-codegen-gcc will be a better long-term solution for
architectures LLVM does not support, as it reuses the existing rustc
frontend.
-- 
Sincerely,
Demi Marie Obenour (she/her/hers)

Attachment: OpenPGP_0xB288B55FFF9C22C1.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
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
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

[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