summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorSimon Chatterjee <code@chatts.net>2022-04-06 21:55:56 +0100
committerSimon Chatterjee <code@chatts.net>2022-04-06 21:55:56 +0100
commit9b310e61b4585ff719dbe2c37bc641b65e46a927 (patch)
tree2810a453d6782bc1a9d2ccf9cf10ac387dbef02c /pkgs/development/compilers
parent041060b41517ae4823ad7f0268f662aeb7279f5f (diff)
downloadnixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.tar
nixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.tar.gz
nixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.tar.bz2
nixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.tar.lz
nixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.tar.xz
nixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.tar.zst
nixpkgs-9b310e61b4585ff719dbe2c37bc641b65e46a927.zip
gcc10: fix cross-compilation from aarch64-darwin host
Without this patch, linking when cross-compiling fails:

    Undefined symbols for architecture arm64:
      "_host_hooks", referenced from:
          gt_pch_save(__sFILE*) in libbackend.a(ggc-common.o)
          gt_pch_restore(__sFILE*) in libbackend.a(ggc-common.o)
          toplev::main(int, char**) in libbackend.a(toplev.o)
    ld: symbol(s) not found for architecture arm64
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix7
1 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix
index d00d428a695..1e8917ef6cf 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -71,7 +71,12 @@ let majorVersion = "10";
       # Obtain latest patch with ../update-mcfgthread-patches.sh
       ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
 
-      ++ [ ../libsanitizer-no-cyclades.patch ];
+      ++ [ ../libsanitizer-no-cyclades.patch ]
+
+      ++ optional (buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch {
+        url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch";
+        sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA=";
+      });
 
     /* Cross-gcc settings (build == host != target) */
     crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";