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