Merge pull request #26798 from obsidiansystems/ios-cross-stdenv
ios-cross: Just properly use the cc-wrapper
This commit is contained in:
commit
a24031317a
@ -6,7 +6,7 @@
|
|||||||
, stdenv
|
, stdenv
|
||||||
, coreutils
|
, coreutils
|
||||||
, gnugrep
|
, gnugrep
|
||||||
, targetPlatform
|
, hostPlatform, targetPlatform
|
||||||
}:
|
}:
|
||||||
|
|
||||||
/* As of this writing, known-good prefix/arch/simulator triples:
|
/* As of this writing, known-good prefix/arch/simulator triples:
|
||||||
@ -28,14 +28,14 @@ let
|
|||||||
|
|
||||||
sdk = "/Applications/Xcode.app/Contents/Developer/Platforms/iPhone${sdkType}.platform/Developer/SDKs/iPhone${sdkType}${sdkVer}.sdk";
|
sdk = "/Applications/Xcode.app/Contents/Developer/Platforms/iPhone${sdkType}.platform/Developer/SDKs/iPhone${sdkType}${sdkVer}.sdk";
|
||||||
|
|
||||||
/* TODO: Properly integrate with gcc-cross-wrapper */
|
in (import ../../../build-support/cc-wrapper {
|
||||||
wrapper = import ../../../build-support/cc-wrapper {
|
inherit stdenv coreutils gnugrep runCommand;
|
||||||
inherit stdenv coreutils gnugrep;
|
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeLibc = false;
|
nativeLibc = false;
|
||||||
inherit binutils;
|
inherit binutils;
|
||||||
libc = runCommand "empty-libc" {} "mkdir -p $out/{lib,include}";
|
libc = runCommand "empty-libc" {} "mkdir -p $out/{lib,include}";
|
||||||
cc = clang;
|
inherit (clang) cc;
|
||||||
|
inherit hostPlatform targetPlatform;
|
||||||
extraBuildCommands = ''
|
extraBuildCommands = ''
|
||||||
if ! [ -d ${sdk} ]; then
|
if ! [ -d ${sdk} ]; then
|
||||||
echo "You must have ${sdkVer} of the iPhone${sdkType} sdk installed at ${sdk}" >&2
|
echo "You must have ${sdkVer} of the iPhone${sdkType} sdk installed at ${sdk}" >&2
|
||||||
@ -49,27 +49,6 @@ let
|
|||||||
# Purposefully overwrite libc-ldflags-before, cctools ld doesn't know dynamic-linker and cc-wrapper doesn't do cross-compilation well enough to adjust
|
# Purposefully overwrite libc-ldflags-before, cctools ld doesn't know dynamic-linker and cc-wrapper doesn't do cross-compilation well enough to adjust
|
||||||
echo "-arch ${arch} -L${sdk}/usr/lib ${lib.optionalString simulator "-L${sdk}/usr/lib/system "}-i${if simulator then "os_simulator" else "phoneos"}_version_min 7.0.0" > $out/nix-support/libc-ldflags-before
|
echo "-arch ${arch} -L${sdk}/usr/lib ${lib.optionalString simulator "-L${sdk}/usr/lib/system "}-i${if simulator then "os_simulator" else "phoneos"}_version_min 7.0.0" > $out/nix-support/libc-ldflags-before
|
||||||
'';
|
'';
|
||||||
};
|
}) // {
|
||||||
in {
|
inherit sdkType sdkVer sdk;
|
||||||
cc = runCommand "${prefix}-cc" { passthru = { inherit sdkType sdkVer sdk; }; } ''
|
}
|
||||||
mkdir -p $out/bin
|
|
||||||
ln -sv ${wrapper}/bin/clang $out/bin/${prefix}-cc
|
|
||||||
mkdir -p $out/nix-support
|
|
||||||
echo ${llvm} > $out/nix-support/propagated-native-build-inputs
|
|
||||||
cat > $out/nix-support/setup-hook <<EOF
|
|
||||||
if test "\$dontSetConfigureCross" != "1"; then
|
|
||||||
configureFlags="\$configureFlags --host=${prefix}"
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
fixupPhase
|
|
||||||
'';
|
|
||||||
|
|
||||||
binutils = runCommand "${prefix}-binutils" {} ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
ln -sv ${wrapper}/bin/ld $out/bin/${prefix}-ld
|
|
||||||
for prog in ar nm ranlib; do
|
|
||||||
ln -s ${binutils}/bin/$prog $out/bin/${prefix}-$prog
|
|
||||||
done
|
|
||||||
fixupPhase
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user