diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index 5a7eb1b11..2399c0c68 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -230,6 +230,7 @@ in { ++ onAndroid (fromUntil "9.0" "9.10" ./patches/ghc/ghc-9.6-hadrian-android.patch) ++ onAndroid (from "9.10" ./patches/ghc/ghc-9.10-hadrian-android.patch) ++ onAndroid (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.10-relax-llvm-max-version.patch) + ++ onAndroid (from "9.12" ./patches/ghc/ghc-define-undefined-elf-st-visibility.patch) ++ onMusl (onAarch64 (fromUntil "9.4" "9.8" ./patches/ghc/ghc-9.6-hadrian-strip-cmd.patch)) ++ onMusl (onAarch64 (fromUntil "9.8" "9.10" ./patches/ghc/ghc-9.8-hadrian-strip-cmd.patch)) ++ onMusl (onAarch64 (fromUntil "9.10" "9.12" ./patches/ghc/ghc-9.10-hadrian-strip-cmd.patch)) diff --git a/overlays/patches/ghc/ghc-define-undefined-elf-st-visibility.patch b/overlays/patches/ghc/ghc-define-undefined-elf-st-visibility.patch new file mode 100644 index 000000000..bd3b3ea60 --- /dev/null +++ b/overlays/patches/ghc/ghc-define-undefined-elf-st-visibility.patch @@ -0,0 +1,24 @@ +diff --git a/rts/linker/ElfTypes.h b/rts/linker/ElfTypes.h +index f5e2f819d9..7f75087738 100644 +--- a/rts/linker/ElfTypes.h ++++ b/rts/linker/ElfTypes.h +@@ -33,6 +33,9 @@ + #define Elf_Sym Elf64_Sym + #define Elf_Rel Elf64_Rel + #define Elf_Rela Elf64_Rela ++#if !defined(ELF64_ST_VISIBILITY) ++#define ELF64_ST_VISIBILITY(o) ((o)&0x3) ++#endif + #if !defined(ELF_ST_VISIBILITY) + #define ELF_ST_VISIBILITY ELF64_ST_VISIBILITY + #endif +@@ -60,6 +63,9 @@ + #define Elf_Sym Elf32_Sym + #define Elf_Rel Elf32_Rel + #define Elf_Rela Elf32_Rela ++#if !defined(ELF32_ST_VISIBILITY) ++#define ELF32_ST_VISIBILITY(o) ((o)&0x3) ++#endif + #if !defined(ELF_ST_VISIBILITY) + #define ELF_ST_VISIBILITY ELF32_ST_VISIBILITY + #endif /* ELF_ST_VISIBILITY */