From 9b310e61b4585ff719dbe2c37bc641b65e46a927 Mon Sep 17 00:00:00 2001 From: Simon Chatterjee Date: Wed, 6 Apr 2022 21:55:56 +0100 Subject: [PATCH] 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 --- pkgs/development/compilers/gcc/10/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index d00d428a6950..1e8917ef6cf1 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";