No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 3: | Line 3: | ||
== Summary == | == Summary == | ||
The goal of this change is to deprecate the binutils-gold subpackage of the binutils package. This will allow | 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 == | == Owner == | ||
Line 35: | Line 35: | ||
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. | 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 == | |||
<!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. --> | |||
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 == | == Benefit to Fedora == | ||
Line 69: | Line 88: | ||
https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack) | https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack) | ||
--> | --> | ||
* 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 == | == Scope == | ||
* Proposal owners: | * Proposal owners: | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
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: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
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 will need to be made. | |||
* Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> |
Latest revision as of 13:24, 28 February 2025
Deprecate The Gold Linker
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@redhat.com
Current status
- Targeted release: Fedora Linux 43
- Last updated: 2025-02-28
- [<link to devel-announce post will be added by Wrangler> Announced]
- [<will be assigned by the Wrangler> Discussion thread]
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
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 will need to be made.
- Release engineering: #Releng issue number
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy:
Upgrade/compatibility impact
Early Testing (Optional)
Do you require 'QA Blueprint' support? Y/N
How To Test
User Experience
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)