use Debian fix-build-using-unregisterized-v8.4.patch
https://gitlab.haskell.org/ghc/ghc/issues/15913 - remove ghc wrapper script hack!
This commit is contained in:
parent
6250e0ee75
commit
826e5b4b12
58
fix-build-using-unregisterized-v8.4.patch
Normal file
58
fix-build-using-unregisterized-v8.4.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
Description: Allow unregisterised ghc-8.4 to build newer GHC
|
||||||
|
Commit 4075656e8bb introduced a regression stopping existing unregisteristed
|
||||||
|
compilers from being able to compile newer versions of GHC. The problem is
|
||||||
|
that the bootstrap compiler uses the newer `rts/storage/ClosureTypes.h` file
|
||||||
|
where some defines have been renamed, resulting in the following error:
|
||||||
|
.
|
||||||
|
error: ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?
|
||||||
|
.
|
||||||
|
For more information, see https://gitlab.haskell.org/ghc/ghc/issues/15913.
|
||||||
|
.
|
||||||
|
This patch can be removed, once ghc-8.4 is no longer the bootstrap compiler.
|
||||||
|
Author: Ilias Tsitsimpis <iliastsi@debian.org>
|
||||||
|
Bug: https://gitlab.haskell.org/ghc/ghc/issues/15913
|
||||||
|
Bug-Debian: https://bugs.debian.org/932941
|
||||||
|
|
||||||
|
Index: b/includes/rts/storage/ClosureTypes.h
|
||||||
|
===================================================================
|
||||||
|
--- a/includes/rts/storage/ClosureTypes.h
|
||||||
|
+++ b/includes/rts/storage/ClosureTypes.h
|
||||||
|
@@ -82,5 +82,11 @@
|
||||||
|
#define SMALL_MUT_ARR_PTRS_DIRTY 60
|
||||||
|
#define SMALL_MUT_ARR_PTRS_FROZEN_DIRTY 61
|
||||||
|
#define SMALL_MUT_ARR_PTRS_FROZEN_CLEAN 62
|
||||||
|
+#if __GLASGOW_HASKELL__ < 806
|
||||||
|
+#define SMALL_MUT_ARR_PTRS_FROZEN0 SMALL_MUT_ARR_PTRS_FROZEN_DIRTY
|
||||||
|
+#define SMALL_MUT_ARR_PTRS_FROZEN SMALL_MUT_ARR_PTRS_FROZEN_CLEAN
|
||||||
|
+#define MUT_ARR_PTRS_FROZEN0 MUT_ARR_PTRS_FROZEN_DIRTY
|
||||||
|
+#define MUT_ARR_PTRS_FROZEN MUT_ARR_PTRS_FROZEN_CLEAN
|
||||||
|
+#endif
|
||||||
|
#define COMPACT_NFDATA 63
|
||||||
|
#define N_CLOSURE_TYPES 64
|
||||||
|
Index: b/includes/stg/MiscClosures.h
|
||||||
|
===================================================================
|
||||||
|
--- a/includes/stg/MiscClosures.h
|
||||||
|
+++ b/includes/stg/MiscClosures.h
|
||||||
|
@@ -116,12 +116,22 @@ RTS_ENTRY(stg_ARR_WORDS);
|
||||||
|
RTS_ENTRY(stg_MUT_ARR_WORDS);
|
||||||
|
RTS_ENTRY(stg_MUT_ARR_PTRS_CLEAN);
|
||||||
|
RTS_ENTRY(stg_MUT_ARR_PTRS_DIRTY);
|
||||||
|
+#if __GLASGOW_HASKELL__ < 806
|
||||||
|
+RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN);
|
||||||
|
+RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN0);
|
||||||
|
+#else
|
||||||
|
RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN_CLEAN);
|
||||||
|
RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN_DIRTY);
|
||||||
|
+#endif
|
||||||
|
RTS_ENTRY(stg_SMALL_MUT_ARR_PTRS_CLEAN);
|
||||||
|
RTS_ENTRY(stg_SMALL_MUT_ARR_PTRS_DIRTY);
|
||||||
|
+#if __GLASGOW_HASKELL__ < 806
|
||||||
|
+RTS_ENTRY(stg_SMALL_MUT_ARR_PTRS_FROZEN);
|
||||||
|
+RTS_ENTRY(stg_SMALL_MUT_ARR_PTRS_FROZEN0);
|
||||||
|
+#else
|
||||||
|
RTS_ENTRY(stg_SMALL_MUT_ARR_PTRS_FROZEN_CLEAN);
|
||||||
|
RTS_ENTRY(stg_SMALL_MUT_ARR_PTRS_FROZEN_DIRTY);
|
||||||
|
+#endif
|
||||||
|
RTS_ENTRY(stg_MUT_VAR_CLEAN);
|
||||||
|
RTS_ENTRY(stg_MUT_VAR_DIRTY);
|
||||||
|
RTS_ENTRY(stg_END_TSO_QUEUE);
|
16
ghc.spec
16
ghc.spec
@ -94,6 +94,10 @@ Patch28: x32-use-native-x86_64-insn.patch
|
|||||||
Patch30: add_-latomic_to_ghc-prim.patch
|
Patch30: add_-latomic_to_ghc-prim.patch
|
||||||
# https://salsa.debian.org/haskell-team/DHG_packages/blob/master/p/ghc/debian/patches/e175aaf6918bb2b497b83618dc4c270a0d231a1c.patch
|
# https://salsa.debian.org/haskell-team/DHG_packages/blob/master/p/ghc/debian/patches/e175aaf6918bb2b497b83618dc4c270a0d231a1c.patch
|
||||||
Patch32: https://salsa.debian.org/haskell-team/DHG_packages/raw/master/p/ghc/debian/patches/e175aaf6918bb2b497b83618dc4c270a0d231a1c.patch
|
Patch32: https://salsa.debian.org/haskell-team/DHG_packages/raw/master/p/ghc/debian/patches/e175aaf6918bb2b497b83618dc4c270a0d231a1c.patch
|
||||||
|
# https://gitlab.haskell.org/ghc/ghc/issues/15913
|
||||||
|
# remove after Fedora default moves to 8.6
|
||||||
|
# https://salsa.debian.org/haskell-team/DHG_packages/blob/master/p/ghc/debian/patches/fix-build-using-unregisterized-v8.4
|
||||||
|
Patch34: fix-build-using-unregisterized-v8.4.patch
|
||||||
|
|
||||||
# fedora ghc has been bootstrapped on
|
# fedora ghc has been bootstrapped on
|
||||||
# %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64
|
# %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64
|
||||||
@ -327,6 +331,7 @@ cd libraries/process
|
|||||||
%ifarch %{ghc_unregisterized_arches}
|
%ifarch %{ghc_unregisterized_arches}
|
||||||
%patch15 -p1 -b .orig
|
%patch15 -p1 -b .orig
|
||||||
%patch17 -p1 -b .orig
|
%patch17 -p1 -b .orig
|
||||||
|
%patch34 -p1 -b .orig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# bigendian
|
# bigendian
|
||||||
@ -401,16 +406,6 @@ export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"
|
|||||||
# for ghc >= 8.2
|
# for ghc >= 8.2
|
||||||
export CC=%{_bindir}/gcc
|
export CC=%{_bindir}/gcc
|
||||||
|
|
||||||
# remove after Fedora default moves to 8.6
|
|
||||||
%ifarch %{ghc_unregisterized_arches}
|
|
||||||
cat > ghc-unregisterised-wrapper << EOF
|
|
||||||
#!/usr/bin/sh
|
|
||||||
exec /usr/bin/ghc -optc-I%{_libdir}/ghc-$(ghc --numeric-version)/include \${1+"\$@"}
|
|
||||||
EOF
|
|
||||||
chmod a+x ghc-unregisterised-wrapper
|
|
||||||
ln -s /usr/bin/ghc-pkg ghc-pkg-unregisterised-wrapper
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# * %%configure induces cross-build due to different target/host/build platform names
|
# * %%configure induces cross-build due to different target/host/build platform names
|
||||||
./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
|
./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
|
||||||
--bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
|
--bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
|
||||||
@ -421,7 +416,6 @@ ln -s /usr/bin/ghc-pkg ghc-pkg-unregisterised-wrapper
|
|||||||
--with-system-libffi \
|
--with-system-libffi \
|
||||||
%ifarch %{ghc_unregisterized_arches}
|
%ifarch %{ghc_unregisterized_arches}
|
||||||
--enable-unregisterised \
|
--enable-unregisterised \
|
||||||
--with-ghc=$PWD/ghc-unregisterised-wrapper \
|
|
||||||
%endif
|
%endif
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user