From: Debian Haskell Group Date: Wed, 19 Jun 2019 21:08:21 +0000 (+0100) Subject: fix-build-using-unregisterized-v8.2 X-Git-Tag: archive/raspbian/8.4.4+dfsg1-3+rpi1^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f34b564c9b0fcf2b3f9ae2614a8d53547ab337e3;p=ghc.git fix-build-using-unregisterized-v8.2 . 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 Bug: https://ghc.haskell.org/trac/ghc/ticket/15201 Gbp-Pq: Name fix-build-using-unregisterized-v8.2 --- diff --git a/includes/Stg.h b/includes/Stg.h index 2e023470..e0a5d1c6 100644 --- 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~