Wiki - https://fedoraproject.org/wiki/Changes/DeprecateGoldLinker Discussion thread - https://discussion.fedoraproject.org/t/f43-change-proposal-deprecate-the-gold-linker-system-wide/146851 This is a proposed Change for Fedora Linux. 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 == The goal of this change is to deprecate the binutils-gold subpackage of the binutils package. This will allow its eventual removal from Fedora. == Owner == * Name: Nick Clifton * Email: nickc@xxxxxxxxxx == Detailed Description == The GOLD linker is no longer being developed in the upstream GNU Binutils project. Given that there are now four linkers available to Fedora users (ld.bfd, ld.gold, lld, mold) deprecating one of them should not cause a lot of disruption and should reduce the maintenance burden for the binutils maintainers. == Feedback == I reached out to the maintainers of the packages that currently use gold. Almost all of them were willing to switch to another linker immediately: * ghc No longer uses gold. * llvm Uses gold for tests. Willing to change. * meson Only used for testing. Willing to drop as the test is not gold specific. * perfetto Uses gold. Might be a hard req. Maintainers checking with upstream developers. * pypy3.10 Willing to drop. Test build in a PR to make this change succeeded. https://src.fedoraproject.org/rpms/pypy3.10/pull-request/33 * python-torch No longer uses gold. * qt5-qtwebengine Willing to switch to another linker if it works * rust Gone as of rust-1.85.0-2.fc43 * swift-lang Uses gold. Package might become deprecated. == Benefit to Fedora == * Reduces the complexity of Fedora by removing a linker that is no longer needed. * Reduces the maintenance burden of the binutils package by removing a component that is no longer being developed upstream. * Simplifies a developer's experience by reducing the number of choices for a linker from 4 to 3. == Scope == * Proposal owners: Add the deprecated() tag to the binutils-gold subpackage of the binutils package in rawhide. Add a comment explaining why the gold linker is being deprecated. Bump the NVR and build. Wait for responses, if any, from other package maintainers. Make an announcement on the devel mailing list, informing developers that gold is now deprecated. Optional (I am not sure if this counts as part of the deprecation, or will require a separate change request): After the next Fedora release is out, change the binutils package so that it does not build gold by default. Instead it would need the builder to add the ''--with gold'' option. A release after that, remove the option to build gold entirely. * Other developers: For developers who are currently using the gold linker in their project(s), a decision will have to be made as to whether they should switch to a different linker or stay with gold. Since deprecation does not actually remove the linker from the distribution, not making any change will still work. For package maintainers who package(s) use gold a similar choice should be made although again not changing anything will still work. * Release engineering: [https://pagure.io/releng/issue/12622] There should be no need to change the installer or update package delivery because of this change. * Policies and guidelines: N/A (not needed for this Change) The packaging guidelines are linker agnostic, so there is no need to alter them because of this change. * Trademark approval: N/A (not needed for this Change) * Alignment with the Fedora Strategy: The change aligns with the strategy of increasing the number of active contributors in the sense that it simplifies the binutils package, making it easier to maintain, and it removes one of the linker choices available to developers, making their choice simpler. == Upgrade/compatibility impact == There should be no affect on users or developers upgrading from earlier versions of Fedora. Since the binutils-gold rpms will still be available (albeit marked as deprecated) no-one should notice any change. The only possible exception to this is for developers who are creating new packages for Fedora and who want to use gold. They will need to switch to a different linker. == Early Testing (Optional) == Do you require 'QA Blueprint' support? N == How To Test == No special hardware, data or the like is needed to test this change. In fact in theory no testing is necessary at all. Since the change is to add a ''deprecated()'' tag to the binutils-gold sub-package the only people who will be affected are packagers who want to add a dependency upon gold. So all existing packages should be unaffected. As for actual testing I guess a dummy package could be created that has a ''BuildRequires: binutils-gold'' dependency and then see if it is rejected by the packaging systems. == User Experience == Users who are also developers and who choose the use the gold linker for their project(s) will not be affected by the deprecation. But if/when the gold linker is actually removed they will notice the change. Switching to a different linker should be relatively easy however. == Dependencies == Currently the following rpms have a ''BuildRequires'' on ''binutils-gold'': * ghc8.10-0:8.10.7-15.fc41.src * ghc8.10-compiler-0:8.10.7-15.fc41.x86_64 * ghc9.0-0:9.0.2-18.fc41.src * ghc9.0-compiler-0:9.0.2-18.fc41.x86_64 * ghc9.2-0:9.2.8-28.fc42.src * ghc9.2-compiler-0:9.2.8-28.fc42.x86_64 * ghc9.4-0:9.4.8-33.fc42.src * ghc9.4-compiler-0:9.4.8-33.fc42.x86_64 * llvm-0:19.1.7-11.fc43.src * meson-0:1.7.0-3.fc43.src * perfetto-0:49.0-1.fc42.src * pypy3.10-0:7.3.19-2.3.10.fc43.src * pypy3.11-0:7.3.19-2.3.11.fc43.src * pypy3.9-0:7.3.16-4.3.9.fc42.src * swift-lang-0:6.0.3-2.fc42.x86_64 Most of these packages are in the process of being updated however. There should be no packages that have a runtime requirement on the gold linker. == Contingency Plan == * Contingency mechanism: Remove the deprecated() tag from the binutils-gold sub-package and rebuild the binutils rpms. * Contingency deadline: Before the Fedora 44 branch ie: 2026-02-03 * Blocks release? No == Documentation == The [https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00001.html| Release Announcement] for version 2.44 of the upstream GNU Binutils project included a notice that the gold linker was being moved out of the default release tarballs in preparation for its eventual discontinuation. == Release Notes == The Gold linker has been deprecated and will eventually be removed from Fedora entirely. Upstream development of the gold linker has stopped which is why it is being deprecated in Fedora. Three other linkers are available to developers however (ld.bfd, lld and mold) so there is still plenty of choice. -- Aoife Moloney Fedora Operations Architect Fedora Project Matrix: @amoloney:fedora.im IRC: amoloney -- _______________________________________________ devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-announce-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-announce@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue -- _______________________________________________ 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