Skip to content

Drop support for deprecated GNU Gold linker on non-Darwin Unix #79163

Open
@ADKaster

Description

@ADKaster

Motivation

As of binutils release 2.44 (Feb 2025), the gold linker is officially deprecated, and its sources are no longer included in the default release tarball.

https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00001.html

In a change to our previous practice, in this release the binutils-2.44.tar tarball does not contain the sources for the gold linker. This is because the gold linker is now deprecated and will eventually be removed unless volunteers step forward and offer to continue development and maintenance.

Proposed solution

It's my understanding that bootstrapping Swift on platforms like Linux defaults to using the GNU Gold linker, rather than lld.

Bootstrap scripts and other install instructions should be updated to mention that the gold linker is no longer maintained upstream, and that the lld linker should be used instead.

Looking around it seems like the swift-driver no longer defaults to gold, and respects the -fuse-ld option more readily on main than in previous releases.

Support for the gold linker should be dropped entirely imo. Attempting to use it could result in an error at the driver level, or it could simply be "not recommended" with issues stemming from its use auto-closed with a "not our problem" message.

Alternatives considered

It's unlikely that the swift team or community have the will to maintain the gold linker themselves.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    LinuxPlatform: LinuxfeatureA feature request or implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions