mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-19 00:08:32 +01:00
darwin binutils: Unwrap GNU Binutils before splicing with cctools
This commit is contained in:
parent
dbf6d20d64
commit
b64736a8e4
1 changed files with 9 additions and 6 deletions
|
@ -2,12 +2,15 @@
|
||||||
, hostPlatform, targetPlatform
|
, 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
|
# Make sure both underlying packages claim to have prepended their binaries
|
||||||
# with the same prefix.
|
# with the same prefix.
|
||||||
assert binutils-raw.prefix == cctools.prefix;
|
assert binutils-unwrapped.prefix == cctools.prefix;
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (binutils-raw) prefix;
|
inherit (binutils-unwrapped) prefix;
|
||||||
cmds = [
|
cmds = [
|
||||||
"ar" "ranlib" "as" "dsymutil" "install_name_tool"
|
"ar" "ranlib" "as" "dsymutil" "install_name_tool"
|
||||||
"ld" "strip" "otool" "lipo" "nm" "strings" "size"
|
"ld" "strip" "otool" "lipo" "nm" "strings" "size"
|
||||||
|
@ -20,7 +23,7 @@ stdenv.mkDerivation {
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
mkdir -p $out/bin $out/include
|
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:
|
# We specifically need:
|
||||||
# - ld: binutils doesn't provide it on darwin
|
# - ld: binutils doesn't provide it on darwin
|
||||||
|
@ -37,7 +40,7 @@ stdenv.mkDerivation {
|
||||||
ln -sf "${cctools}/bin/$i" "$out/bin/$i"
|
ln -sf "${cctools}/bin/$i" "$out/bin/$i"
|
||||||
done
|
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)"
|
ln -s "$i" "$out/include/$(basename $i)"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -46,8 +49,8 @@ stdenv.mkDerivation {
|
||||||
done
|
done
|
||||||
|
|
||||||
# FIXME: this will give us incorrect man pages for bits of cctools
|
# FIXME: this will give us incorrect man pages for bits of cctools
|
||||||
ln -s ${binutils-raw.out}/share $out/share
|
ln -s ${binutils-unwrapped.out}/share $out/share
|
||||||
ln -s ${binutils-raw.out}/lib $out/lib
|
ln -s ${binutils-unwrapped.out}/lib $out/lib
|
||||||
|
|
||||||
ln -s ${cctools}/libexec $out/libexec
|
ln -s ${cctools}/libexec $out/libexec
|
||||||
'';
|
'';
|
||||||
|
|
Loading…
Reference in a new issue