haskellPackages: fix GHC 9.12 on android

This commit is contained in:
Alexandre Esteves
2025-06-05 15:10:11 +01:00
parent 9bd652c430
commit a7beb46aa7
3 changed files with 31 additions and 2 deletions
@@ -291,6 +291,11 @@
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/39bb6e583d64738db51441a556d499aa93a4fc4a.patch";
sha256 = "0w5fx413z924bi2irsy1l4xapxxhrq158b5gn6jzrbsmhvmpirs0";
})
]
# Missing ELF symbols
++ lib.optionals stdenv.targetPlatform.isAndroid [
./ghc-define-undefined-elf-st-visibility.patch
];
stdenv = stdenvNoCC;
@@ -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 */
+2 -2
View File
@@ -515,8 +515,8 @@ let
;
};
haskell.packages.ghc910 = {
inherit (packagePlatforms pkgs.pkgsCross.aarch64-android-prebuilt.haskell.packages.ghc910)
haskell.packages.ghc912 = {
inherit (packagePlatforms pkgs.pkgsCross.aarch64-android-prebuilt.haskell.packages.ghc912)
ghc
hello
microlens