From ffbdcbfe29ea1076e87a321f47df39cd1ddc4d6b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 10 Oct 2014 14:01:38 +0200 Subject: gcc-wrapper: Wrap ld.gold MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This ensures that gcc's ‘-fuse-ld=gold’ flag works. --- pkgs/stdenv/adapters.nix | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'pkgs/stdenv/adapters.nix') 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 -- cgit 1.4.1