Commit cc44e044 authored by John Ericson's avatar John Ericson
Browse files

bintools-wrapper: Define fallback default emulation

This ensures we by-default cross-compile to the intended platform.
parent 1cde06ac
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -164,6 +164,20 @@ stdenv.mkDerivation {
      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;

  setupHook = ./setup-hook.sh;
+5 −0
Original line number Diff line number Diff line
@@ -67,6 +67,11 @@ fi

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:
#
#   1. Find all -L... switches for rpath