F43 Change Proposal: Deprecate the Gold Linker (system-wide)

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

 



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




[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