Commit f1cf3829 authored by Alyssa Ross's avatar Alyssa Ross
Browse files

binutils-unwrapped-all-targets: fix build on Darwin

gas isn't built for Darwin, so previously this failed when trying to
install it:

	make: Entering directory '/private/tmp/nix-build-binutils-2.44.drv-0/build'
	make: *** /private/tmp/nix-build-binutils-2.44.drv-0/build-arm64-apple-darwin/gas: No such file or directory.  Stop.
	make: Leaving directory '/private/tmp/nix-build-binutils-2.44.drv-0/build'

Fixes: 437ad124 ("binutils-unwrapped-all-targets: per-target gas")
parent f0e3dc0d
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -38,6 +38,9 @@ let
  # on the PATH to both be usable.
  targetPrefix = lib.optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-";

  # gas is disabled for some targets via noconfigdirs in configure.
  targetHasGas = !stdenv.targetPlatform.isDarwin;

  # gas isn't multi-target, even with --enable-targets=all, so we do
  # separate builds of just gas for each target.
  #
@@ -45,7 +48,9 @@ let
  # additional targets here as required.
  allGasTargets =
    allGasTargets'
    ++ lib.optional (!lib.elem targetPlatform.config allGasTargets') targetPlatform.config;
    ++ lib.optional (
      targetHasGas && !lib.elem targetPlatform.config allGasTargets'
    ) targetPlatform.config;
  allGasTargets' = [
    "aarch64-unknown-linux-gnu"
    "alpha-unknown-linux-gnu"
@@ -328,6 +333,8 @@ stdenv.mkDerivation (finalAttrs: {
          $makeFlags "''${makeFlagsArray[@]}" $installFlags "''${installFlagsArray[@]}" \
          install-exec-bindir
      done
    ''
    + lib.optionalString (withAllTargets && targetHasGas) ''
      ln -s $out/bin/${stdenv.targetPlatform.config}-as $out/bin/as
    '';