summary refs log tree commit diff
path: root/pkgs/os-specific/darwin
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2021-03-18 13:35:59 +0100
committerJan Tojnar <jtojnar@gmail.com>2021-03-18 13:35:59 +0100
commit0136206b12cdcee87d34ccdfd1864c0bb6541aec (patch)
treeeb6597b5dc6da16585f5e9a8d1649f44ea3f51b3 /pkgs/os-specific/darwin
parentc31077a6020c4d365496a618ba07121b9331bc52 (diff)
parentde4012ac80df34f1b77f07c70e935e4908729e71 (diff)
downloadnixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.gz
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.bz2
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.lz
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.xz
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.zst
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.zip
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs/os-specific/darwin')
-rw-r--r--pkgs/os-specific/darwin/binutils/default.nix13
1 files changed, 12 insertions, 1 deletions
diff --git a/pkgs/os-specific/darwin/binutils/default.nix b/pkgs/os-specific/darwin/binutils/default.nix
index e9aa706da2d..29ae1871ddb 100644
--- a/pkgs/os-specific/darwin/binutils/default.nix
+++ b/pkgs/os-specific/darwin/binutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, binutils-unwrapped, cctools, llvm }:
+{ lib, stdenv, makeWrapper, binutils-unwrapped, cctools, llvm, clang-unwrapped }:
 
 # Make sure both underlying packages claim to have prepended their binaries
 # with the same targetPrefix.
@@ -49,8 +49,19 @@ stdenv.mkDerivation {
         ln -sv "$path" "$dest_path"
       done
     done
+  ''
+  # On aarch64-darwin we must use clang, because "as" from cctools just doesn't
+  # handle the arch. Proxying calls to clang produces quite a bit of warnings,
+  # and using clang directly here is a better option than relying on cctools.
+  # On x86_64-darwin the Clang version is too old to support this mode.
+  + lib.optionalString stdenv.isAarch64 ''
+    rm $out/bin/as
+    makeWrapper "${clang-unwrapped}/bin/clang" "$out/bin/as" \
+      --add-flags "-x assembler -integrated-as -c"
   '';
 
+  nativeBuildInputs = lib.optionals stdenv.isAarch64 [ makeWrapper ];
+
   passthru = {
     inherit targetPrefix;
   };