about summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2017-08-31 23:07:41 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2017-09-01 11:44:56 -0400
commitb64736a8e4eae4c3b5267c9f6a7e6d741c1165c2 (patch)
treecff60f568d85bbb098b35219293a035389e5de90 /pkgs/os-specific
parentdbf6d20d64af8572ae4a24850244befc475eea9e (diff)
downloadnixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.tar
nixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.tar.gz
nixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.tar.bz2
nixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.tar.lz
nixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.tar.xz
nixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.tar.zst
nixlib-b64736a8e4eae4c3b5267c9f6a7e6d741c1165c2.zip
darwin binutils: Unwrap GNU Binutils before splicing with cctools
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/darwin/binutils/default.nix15
1 files changed, 9 insertions, 6 deletions
diff --git a/pkgs/os-specific/darwin/binutils/default.nix b/pkgs/os-specific/darwin/binutils/default.nix
index 933e7558dbbf..690fd93fcf8a 100644
--- a/pkgs/os-specific/darwin/binutils/default.nix
+++ b/pkgs/os-specific/darwin/binutils/default.nix
@@ -2,12 +2,15 @@
 , hostPlatform, targetPlatform
 }:
 
+# despite the name, binutils-raw is in fact wrapped.
+let binutils-unwrapped = binutils-raw.binutils; in
+
 # Make sure both underlying packages claim to have prepended their binaries
 # with the same prefix.
-assert binutils-raw.prefix == cctools.prefix;
+assert binutils-unwrapped.prefix == cctools.prefix;
 
 let
-  inherit (binutils-raw) prefix;
+  inherit (binutils-unwrapped) prefix;
   cmds = [
     "ar" "ranlib" "as" "dsymutil" "install_name_tool"
     "ld" "strip" "otool" "lipo" "nm" "strings" "size"
@@ -20,7 +23,7 @@ stdenv.mkDerivation {
   buildCommand = ''
     mkdir -p $out/bin $out/include
 
-    ln -s ${binutils-raw.out}/bin/${prefix}c++filt $out/bin/${prefix}c++filt
+    ln -s ${binutils-unwrapped.out}/bin/${prefix}c++filt $out/bin/${prefix}c++filt
 
     # We specifically need:
     # - ld: binutils doesn't provide it on darwin
@@ -37,7 +40,7 @@ stdenv.mkDerivation {
       ln -sf "${cctools}/bin/$i" "$out/bin/$i"
     done
 
-    for i in ${binutils-raw.dev or binutils-raw.out}/include/*.h; do
+    for i in ${binutils-unwrapped.dev or binutils-unwrapped.out}/include/*.h; do
       ln -s "$i" "$out/include/$(basename $i)"
     done
 
@@ -46,8 +49,8 @@ stdenv.mkDerivation {
     done
 
     # FIXME: this will give us incorrect man pages for bits of cctools
-    ln -s ${binutils-raw.out}/share $out/share
-    ln -s ${binutils-raw.out}/lib $out/lib
+    ln -s ${binutils-unwrapped.out}/share $out/share
+    ln -s ${binutils-unwrapped.out}/lib $out/lib
 
     ln -s ${cctools}/libexec $out/libexec
   '';