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: 437ad124ac ("binutils-unwrapped-all-targets: per-target gas")
This commit is contained in:
Alyssa Ross
2025-07-03 09:44:37 +02:00
parent f0e3dc0dcc
commit f1cf3829b9
@@ -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
'';