diff options
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r-- | pkgs/stdenv/adapters.nix | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index a90a00e6d4f3..9e82359865bf 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -285,19 +285,13 @@ rec { }; - /* Modify a stdenv so that it uses the Gold linker. FIXME: should - use -fuse-ld=gold instead, but then the ld-wrapper won't be - invoked. */ - useGoldLinker = stdenv: - let - binutils = stdenv.gcc.binutils; - binutils' = pkgs.runCommand "${binutils.name}-gold" { } - '' - mkdir -p $out/bin - ln -s ${binutils}/bin/* $out/bin/ - ln -sfn ${binutils}/bin/ld.gold $out/bin/ld - ''; # */ - in overrideGCC stdenv (stdenv.gcc.override { binutils = binutils'; }); + /* Modify a stdenv so that it uses the Gold linker. */ + useGoldLinker = stdenv: stdenv // + { mkDerivation = args: stdenv.mkDerivation (args // { + dontStrip = true; + NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_COMPILE or "") + " -fuse-ld=gold"; + }); + }; dropCxx = drv: drv.override { stdenv = if pkgs.stdenv.isDarwin |