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 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




[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