bintools-wrapper: Define fallback default emulation
This ensures we by-default cross-compile to the intended platform.
This commit is contained in:
parent
1cde06acf6
commit
cc44e04472
@ -164,6 +164,20 @@ stdenv.mkDerivation {
|
|||||||
set +u
|
set +u
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
emulation = let
|
||||||
|
fmt =
|
||||||
|
/**/ if targetPlatform.isDarwin then "mach-o"
|
||||||
|
else if targetPlatform.isWindows then "pe"
|
||||||
|
else "elf" + toString targetPlatform.parsed.cpu.bits;
|
||||||
|
endianPrefix = if targetPlatform.isBigEndian then "big" else "little";
|
||||||
|
arch =
|
||||||
|
/**/ if targetPlatform.isAarch64 then endianPrefix + "aarch64"
|
||||||
|
else if targetPlatform.isArm then endianPrefix + "arm"
|
||||||
|
else if targetPlatform.isx86_64 then "x86-64"
|
||||||
|
else if targetPlatform.isi686 then "i386"
|
||||||
|
else throw "unknown emulation for platform: " + targetPlatform.config;
|
||||||
|
in targetPlatform.platform.bfdEmulation or (fmt + "-" + arch);
|
||||||
|
|
||||||
propagatedBuildInputs = extraPackages;
|
propagatedBuildInputs = extraPackages;
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
@ -67,6 +67,11 @@ fi
|
|||||||
|
|
||||||
extraAfter+=($NIX_@infixSalt@_LDFLAGS_AFTER)
|
extraAfter+=($NIX_@infixSalt@_LDFLAGS_AFTER)
|
||||||
|
|
||||||
|
# Specify the target emulation if nothing is passed in ("-m" overrides this
|
||||||
|
# environment variable). Ensures we never blindly fallback on targeting the host
|
||||||
|
# platform.
|
||||||
|
: ${LDEMULATION:=@emulation@}
|
||||||
|
|
||||||
# Three tasks:
|
# Three tasks:
|
||||||
#
|
#
|
||||||
# 1. Find all -L... switches for rpath
|
# 1. Find all -L... switches for rpath
|
||||||
|
Loading…
x
Reference in New Issue
Block a user