diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch index ac353ed417e..c9bd2583abe 100644 --- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch +++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch @@ -85,7 +85,7 @@ index ec3c18a..0359be7 100644 + in Right [ 0x3D800000 .|. hi16 w32, + 0x618C0000 .|. lo16 w32, + 0x7D8903A6, 0x4E800420 ] - + ArchPPC64LE -> -- The ABI requires r12 to point to the function's entry point. diff --git a/rts/Adjustor.c b/rts/Adjustor.c @@ -93,7 +93,7 @@ index d360cfe..ab7ede7 100644 --- a/rts/Adjustor.c +++ b/rts/Adjustor.c @@ -49,7 +49,7 @@ Haskell side. - + #if defined(i386_HOST_ARCH) extern void adjustorCode(void); -#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH) @@ -104,16 +104,16 @@ index d360cfe..ab7ede7 100644 @@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t" extern void obscure_ccall_ret_code(void); #endif - + -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH) +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)) #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS)) - + /* !!! !!! WARNING: !!! !!! @@ -318,7 +318,7 @@ typedef struct AdjustorStub { } AdjustorStub; #endif - + -#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH) +#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)) static int totalArgumentSize(char *typeString) @@ -131,10 +131,10 @@ index d360cfe..ab7ede7 100644 @@ -1007,7 +1007,7 @@ TODO: Depending on how much allocation overhead stgMallocBytes uses for } } - + -#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH) +#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)) - + #define OP_LO(op,lo) ((((unsigned)(op)) << 16) | (((unsigned)(lo)) & 0xFFFF)) #define OP_HI(op,hi) ((((unsigned)(op)) << 16) | (((unsigned)(hi)) >> 16)) @@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr) @@ -151,9 +151,9 @@ index 2795b83..63cfe91 100644 --- a/rts/AdjustorAsm.S +++ b/rts/AdjustorAsm.S @@ -2,7 +2,7 @@ - + /* ******************************** PowerPC ******************************** */ - + -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH) +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)) #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS)) @@ -166,34 +166,31 @@ index 934926e..2ff8662 100644 @@ -717,7 +717,7 @@ StgRunIsImplementedInAssembler(void) Everything is in assembler, so we don't have to deal with GCC... -------------------------------------------------------------------------- */ - + -#if defined(powerpc64_HOST_ARCH) +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2) - + static void GNUC3_ATTRIBUTE(used) StgRunIsImplementedInAssembler(void) @@ -842,7 +842,7 @@ StgRunIsImplementedInAssembler(void) - + #endif - + -#if defined(powerpc64le_HOST_ARCH) +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2)) /* ----------------------------------------------------------------------------- PowerPC 64 little endian architecture - + diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S index 9274a44..3b4fc33 100644 --- a/rts/StgCRunAsm.S +++ b/rts/StgCRunAsm.S -@@ -1,7 +1,7 @@ - #include "ghcconfig.h" - #include "rts/Constants.h" - +@@ -5,7 +5,7 @@ + * then functions StgRun/StgReturn are implemented in file StgCRun.c */ + #if !defined(USE_MINIINTERPRETER) + -#if defined(powerpc64le_HOST_ARCH) +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2)) - # ifdef linux_HOST_OS + # if defined(linux_HOST_OS) # define STACK_FRAME_SIZE RESERVED_C_STACK_BYTES+304 .file "StgCRun.c" --- -2.30.0 - diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template index 082c56f7035..3bb7aa59f70 100644 --- a/srcpkgs/ghc/template +++ b/srcpkgs/ghc/template @@ -1,8 +1,8 @@ # Template file for 'ghc' pkgname=ghc # Keep this synchronized with http://www.stackage.org/lts -version=8.8.4 -revision=2 +version=8.10.4 +revision=1 wrksrc="ghc-${version%[!0-9]}" build_style=gnu-configure hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel @@ -10,11 +10,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel makedepends="libnuma-devel" depends="perl gcc libffi-devel gmp-devel libnuma-devel" short_desc="Glorious Haskell Compiler" -maintainer="Leah Neukirchen " +maintainer="slotThe " license="BSD-3-Clause" homepage="http://www.haskell.org/ghc/" distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz" -checksum=f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d +checksum=52af871b4e08550257d720c2944ac85727d0b948407cef1bebfe7508c224910e nocross=yes # this is conditionally unset for cross bindist nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections" _bindir="/usr/lib/${pkgname}-${version}/bin"