From a468b2ed92390d5bc7044101cb57cf5b13b98c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ci=C4=99=C5=BCarkiewicz?= Date: Wed, 12 Nov 2025 13:29:06 -0800 Subject: [PATCH] mold: switch to wrapped by default --- doc/release-notes/rl-2605.section.md | 2 ++ pkgs/by-name/mo/{mold => mold-unwrapped}/package.nix | 8 ++++---- pkgs/stdenv/adapters.nix | 11 ++++++++--- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 8 ++++---- 5 files changed, 19 insertions(+), 11 deletions(-) rename pkgs/by-name/mo/{mold => mold-unwrapped}/package.nix (96%) diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index e057adfcc8f3..a0825236d322 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -45,6 +45,8 @@ - The `nodejs_latest` alias now points to `nodejs_25` instead of `nodejs_24`. +- `mold` is now wrapped by default. + ### Deprecations {#sec-nixpkgs-release-26.05-lib-deprecations} diff --git a/pkgs/by-name/mo/mold/package.nix b/pkgs/by-name/mo/mold-unwrapped/package.nix similarity index 96% rename from pkgs/by-name/mo/mold/package.nix rename to pkgs/by-name/mo/mold-unwrapped/package.nix index 19d73b4ac2f2..6c8d2f36e645 100644 --- a/pkgs/by-name/mo/mold/package.nix +++ b/pkgs/by-name/mo/mold-unwrapped/package.nix @@ -16,7 +16,7 @@ gccStdenv, hello, mold, - mold-wrapped, + mold-unwrapped, runCommandCC, testers, useMoldLinker, @@ -25,7 +25,7 @@ }: stdenv.mkDerivation (finalAttrs: { - pname = "mold"; + pname = "mold-unwrapped"; version = "2.40.4"; src = fetchFromGitHub { @@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: { ''; in { - version = testers.testVersion { package = mold; }; + version = testers.testVersion { package = mold-unwrapped; }; } // lib.optionalAttrs stdenv.hostPlatform.isLinux { adapter-gcc = helloTest "adapter-gcc" ( @@ -108,7 +108,7 @@ stdenv.mkDerivation (finalAttrs: { ); wrapped = helloTest "wrapped" ( hello.overrideAttrs (previousAttrs: { - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ mold-wrapped ]; + nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ mold ]; NIX_CFLAGS_LINK = toString (previousAttrs.NIX_CFLAGS_LINK or "") + " -fuse-ld=mold"; }) ); diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 5878cbb81a5a..d2efb4be73ef 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -310,9 +310,14 @@ rec { let bintools = stdenv.cc.bintools.override { extraBuildCommands = '' - wrap ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.buildPackages.mold}/bin/ld.mold - wrap ${stdenv.cc.bintools.targetPrefix}ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.buildPackages.mold}/bin/ld.mold - wrap ${stdenv.cc.bintools.targetPrefix}ld ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.buildPackages.mold}/bin/ld.mold + pushd $out/bin + ln -s ${pkgs.buildPackages.mold}/bin/${stdenv.cc.bintools.targetPrefix}ld.mold ${stdenv.cc.bintools.targetPrefix}ld.mold + '' # Pre-generated configure scripts call the linker binary without the target prefix when cross compiling. + + lib.optionalString (stdenv.cc.bintools.targetPrefix != "") '' + ln -s ${stdenv.cc.bintools.targetPrefix}ld.mold ld.mold + '' + + '' + popd ''; }; in diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index a388c14de2a5..32bd07b4a2a6 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1075,6 +1075,7 @@ mapAliases { mmsd = throw "'mmsd' has been removed due to being unmaintained upstream. Consider using 'mmsd-tng' instead"; # Added 2025-06-07 mmutils = throw "'mmutils' has been removed due to being unmaintained upstream"; # Added 2025-08-29 moar = warnAlias "`moar` has been renamed to `moor` by upstream in v2.0.0. See https://github.com/walles/moor/pull/305 for more." pkgs.moor; # Added 2025-09-02 + mold-wrapped = warnAlias "'mold-wrapped' has been renamed to 'mold'" pkgs.mold; # Added 2025-11-12 mongodb-6_0 = throw "mongodb-6_0 has been removed, it's end of life since July 2025"; # Added 2025-07-23 monitor = pantheon.elementary-monitor; # Added 2025-10-10 mono4 = mono6; # Added 2025-08-25 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c5b6b5b8c757..84448f2750a6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6498,11 +6498,11 @@ with pkgs; mkdocs = with python3Packages; toPythonApplication mkdocs; - mold-wrapped = wrapBintoolsWith { - bintools = mold; + mold = wrapBintoolsWith { + bintools = mold-unwrapped; extraBuildCommands = '' - wrap ${targetPackages.stdenv.cc.bintools.targetPrefix}ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${mold}/bin/ld.mold - wrap ${targetPackages.stdenv.cc.bintools.targetPrefix}mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${mold}/bin/mold + wrap ${targetPackages.stdenv.cc.bintools.targetPrefix}ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${mold-unwrapped}/bin/ld.mold + wrap ${targetPackages.stdenv.cc.bintools.targetPrefix}mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${mold-unwrapped}/bin/mold ''; };