Accepting request 639256 from devel:languages:haskell
- Add fix-build-using-unregisterized-v8.2.patch * Fix build on s390x OBS-URL: https://build.opensuse.org/request/show/639256 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc?expand=0&rev=65
This commit is contained in:
commit
711621b759
51
fix-build-using-unregisterized-v8.2.patch
Normal file
51
fix-build-using-unregisterized-v8.2.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Description: Allow unregisterised ghc-8.2 to build newer GHC
|
||||||
|
Commit b68697e579d38ca29c2b84377dc2affa04659a28 introduced a regression
|
||||||
|
stopping existing unregisteristed compilers from being used to compile a newer
|
||||||
|
version of GHC. The problem is that the bootstrap compiler uses the newer Stg.h
|
||||||
|
where EB_, IB_, etc, definitions have changed resulting in the following error:
|
||||||
|
.
|
||||||
|
error: conflicting types for 'ghc_GhcPrelude_zdtrModule4_bytes'
|
||||||
|
note: in definition of macro 'EB_'
|
||||||
|
#define EB_(X) extern const char X[]
|
||||||
|
note: previous definition of 'ghc_GhcPrelude_zdtrModule4_bytes' was here
|
||||||
|
char ghc_GhcPrelude_zdtrModule4_bytes[] = "ghc";
|
||||||
|
.
|
||||||
|
For more information about the problem, see https://phabricator.haskell.org/D4114.
|
||||||
|
.
|
||||||
|
This patch is a rework of https://phabricator.haskell.org/D3741.
|
||||||
|
It modifies Stg.h to include the old definitions, if a compiler older than
|
||||||
|
8.4 is being used.
|
||||||
|
.
|
||||||
|
This patch can be removed, once ghc-8.2 is no longer the bootstrap compiler.
|
||||||
|
Author: Ilias Tsitsimpis <iliastsi@debian.org>
|
||||||
|
Bug: https://ghc.haskell.org/trac/ghc/ticket/15201
|
||||||
|
|
||||||
|
Index: b/includes/Stg.h
|
||||||
|
===================================================================
|
||||||
|
--- a/includes/Stg.h
|
||||||
|
+++ b/includes/Stg.h
|
||||||
|
@@ -232,6 +232,16 @@ typedef StgInt I_;
|
||||||
|
typedef StgWord StgWordArray[];
|
||||||
|
typedef StgFunPtr F_;
|
||||||
|
|
||||||
|
+#if __GLASGOW_HASKELL__ < 804
|
||||||
|
+#define EB_(X) extern char X[]
|
||||||
|
+#define IB_(X) static char X[]
|
||||||
|
+#define EI_(X) extern StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
|
||||||
|
+#define II_(X) static StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
|
||||||
|
+#define IF_(f) static StgFunPtr GNUC3_ATTRIBUTE(used) f(void)
|
||||||
|
+#define FN_(f) StgFunPtr f(void)
|
||||||
|
+#define EF_(f) StgFunPtr f(void) /* External Cmm functions */
|
||||||
|
+#define EFF_(f) void f() /* See Note [External function prototypes] */
|
||||||
|
+#else
|
||||||
|
/* byte arrays (and strings): */
|
||||||
|
#define EB_(X) extern const char X[]
|
||||||
|
#define IB_(X) static const char X[]
|
||||||
|
@@ -250,6 +260,7 @@ typedef StgFunPtr F_;
|
||||||
|
#define EF_(f) StgFunPtr f(void) /* External Cmm functions */
|
||||||
|
/* foreign functions: */
|
||||||
|
#define EFF_(f) void f() /* See Note [External function prototypes] */
|
||||||
|
+#endif /* __GLASGOW_HASKELL__ < 804 */
|
||||||
|
|
||||||
|
/* Note [External function prototypes] See Trac #8965, #11395
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Sep 30 11:21:59 UTC 2018 - ptrommler@icloud.com
|
||||||
|
|
||||||
|
- Add fix-build-using-unregisterized-v8.2.patch
|
||||||
|
* Fix build on s390x
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Sep 6 15:19:54 UTC 2018 - mmanu84@outlook.de
|
Thu Sep 6 15:19:54 UTC 2018 - mmanu84@outlook.de
|
||||||
|
|
||||||
|
3
ghc.spec
3
ghc.spec
@ -84,6 +84,8 @@ Source1: ghc-rpmlintrc
|
|||||||
Patch0: add_armv6l_and_armv7l_target.patch
|
Patch0: add_armv6l_and_armv7l_target.patch
|
||||||
# PATCH-FIX-UPSTREAM fix-ppc64le-recognition.patch ptrommler@icloud.com -- Recognize powerpc64le as PPC64 in cabal files.
|
# PATCH-FIX-UPSTREAM fix-ppc64le-recognition.patch ptrommler@icloud.com -- Recognize powerpc64le as PPC64 in cabal files.
|
||||||
Patch1: fix-ppc64le-recognition.patch
|
Patch1: fix-ppc64le-recognition.patch
|
||||||
|
# PATCH-FIX-OPENSUSE fix-build-using-unregisterized-v8.2.patch ptrommler@icloud.com -- Fix bootstrap with GHC older than 8.4. Can be dropped once we bootstrap with 8.4.3. Debian patch.
|
||||||
|
Patch2: fix-build-using-unregisterized-v8.2.patch
|
||||||
# PATCH-FIX-UPSTREAM ghc-pie.patch - set linux as default PIE platform
|
# PATCH-FIX-UPSTREAM ghc-pie.patch - set linux as default PIE platform
|
||||||
Patch35: ghc-pie.patch
|
Patch35: ghc-pie.patch
|
||||||
# PATCH-FIX-OPENSUSE ghc-8.0.2-Cabal-dynlibdir.patch -- Fix shared library directory location.
|
# PATCH-FIX-OPENSUSE ghc-8.0.2-Cabal-dynlibdir.patch -- Fix shared library directory location.
|
||||||
@ -195,6 +197,7 @@ except the ghc library, which is installed by the toplevel ghc metapackage.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
%patch35 -p1
|
%patch35 -p1
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch110 -p1
|
%patch110 -p1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user