On Fri, Dec 30, 2022 at 7:57 PM Demi Marie Obenour <demiobenour@xxxxxxxxx> wrote: > > 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. I am perfectly aware of the state of gcc-rs. I've been following it quite closely for years. I explicitly asked for it *despite* its current state. It already doesn't let you use it unless you pass a really long flag that states you know that this is experimental and shouldn't be relied on yet. I want gcc-rs available so that people get exposed to a Rust compiler that deliberately *does not* use the rustc interface. -- 真実はいつも一つ!/ Always, there's only one truth! _______________________________________________ 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