Accepting request 309163 from home:ptrommler:branches:devel:languages:haskell

Add ppc64le native code generator. Back port of my upstream patch for ghc 7.12.

OBS-URL: https://build.opensuse.org/request/show/309163
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc?expand=0&rev=177
This commit is contained in:
Peter Trommler 2015-05-29 12:01:37 +00:00 committed by Git OBS Bridge
parent b564f11091
commit c85b2f73b9
5 changed files with 1133 additions and 523 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
Index: ghc-7.8.3/compiler/ghci/Linker.lhs Index: ghc-7.8.4/compiler/ghci/Linker.lhs
=================================================================== ===================================================================
--- ghc-7.8.3.orig/compiler/ghci/Linker.lhs --- ghc-7.8.4.orig/compiler/ghci/Linker.lhs
+++ ghc-7.8.3/compiler/ghci/Linker.lhs +++ ghc-7.8.4/compiler/ghci/Linker.lhs
@@ -123,7 +123,10 @@ data PersistentLinkerState @@ -123,7 +123,10 @@ data PersistentLinkerState
-- The currently-loaded packages; always object code -- The currently-loaded packages; always object code
-- Held, as usual, in dependency order; though I am not sure if -- Held, as usual, in dependency order; though I am not sure if
@ -172,11 +172,11 @@ Index: ghc-7.8.3/compiler/ghci/Linker.lhs
Just err -> panic ("Loading temp shared object failed: " ++ err) Just err -> panic ("Loading temp shared object failed: " ++ err)
rmDupLinkables :: [Linkable] -- Already loaded rmDupLinkables :: [Linkable] -- Already loaded
Index: ghc-7.8.3/compiler/main/SysTools.lhs Index: ghc-7.8.4/compiler/main/SysTools.lhs
=================================================================== ===================================================================
--- ghc-7.8.3.orig/compiler/main/SysTools.lhs --- ghc-7.8.4.orig/compiler/main/SysTools.lhs
+++ ghc-7.8.3/compiler/main/SysTools.lhs +++ ghc-7.8.4/compiler/main/SysTools.lhs
@@ -1365,6 +1365,7 @@ linkDynLib dflags0 o_files dep_packages @@ -1416,6 +1416,7 @@ linkDynLib dflags0 o_files dep_packages
in package_hs_libs ++ extra_libs ++ other_flags in package_hs_libs ++ extra_libs ++ other_flags
-- probably _stub.o files -- probably _stub.o files
@ -184,7 +184,7 @@ Index: ghc-7.8.3/compiler/main/SysTools.lhs
let extra_ld_inputs = ldInputs dflags let extra_ld_inputs = ldInputs dflags
case os of case os of
@@ -1482,8 +1483,8 @@ linkDynLib dflags0 o_files dep_packages @@ -1533,8 +1534,8 @@ linkDynLib dflags0 o_files dep_packages
-- Set the library soname. We use -h rather than -soname as -- Set the library soname. We use -h rather than -soname as
-- Solaris 10 doesn't support the latter: -- Solaris 10 doesn't support the latter:
++ [ Option ("-Wl,-h," ++ takeFileName output_fn) ] ++ [ Option ("-Wl,-h," ++ takeFileName output_fn) ]
@ -194,11 +194,11 @@ Index: ghc-7.8.3/compiler/main/SysTools.lhs
++ map Option pkg_lib_path_opts ++ map Option pkg_lib_path_opts
++ map Option pkg_link_opts ++ map Option pkg_link_opts
) )
Index: ghc-7.8.3/rts/Linker.c Index: ghc-7.8.4/rts/Linker.c
=================================================================== ===================================================================
--- ghc-7.8.3.orig/rts/Linker.c --- ghc-7.8.4.orig/rts/Linker.c
+++ ghc-7.8.3/rts/Linker.c +++ ghc-7.8.4/rts/Linker.c
@@ -1776,7 +1776,7 @@ internal_dlopen(const char *dll_name) @@ -1777,7 +1777,7 @@ internal_dlopen(const char *dll_name)
// (see POSIX also) // (see POSIX also)
ACQUIRE_LOCK(&dl_mutex); ACQUIRE_LOCK(&dl_mutex);
@ -207,7 +207,7 @@ Index: ghc-7.8.3/rts/Linker.c
errmsg = NULL; errmsg = NULL;
if (hdl == NULL) { if (hdl == NULL) {
@@ -1786,11 +1786,12 @@ internal_dlopen(const char *dll_name) @@ -1787,11 +1787,12 @@ internal_dlopen(const char *dll_name)
errmsg_copy = stgMallocBytes(strlen(errmsg)+1, "addDLL"); errmsg_copy = stgMallocBytes(strlen(errmsg)+1, "addDLL");
strcpy(errmsg_copy, errmsg); strcpy(errmsg_copy, errmsg);
errmsg = errmsg_copy; errmsg = errmsg_copy;
@ -224,7 +224,7 @@ Index: ghc-7.8.3/rts/Linker.c
RELEASE_LOCK(&dl_mutex); RELEASE_LOCK(&dl_mutex);
//--------------- End critical section ------------------- //--------------- End critical section -------------------
@@ -1798,14 +1799,39 @@ internal_dlopen(const char *dll_name) @@ -1799,14 +1800,39 @@ internal_dlopen(const char *dll_name)
return errmsg; return errmsg;
} }
@ -265,7 +265,7 @@ Index: ghc-7.8.3/rts/Linker.c
for (o_so = openedSOs; o_so != NULL; o_so = o_so->next) { for (o_so = openedSOs; o_so != NULL; o_so = o_so->next) {
v = dlsym(o_so->handle, symbol); v = dlsym(o_so->handle, symbol);
if (dlerror() == NULL) { if (dlerror() == NULL) {
@@ -1813,7 +1839,6 @@ internal_dlsym(void *hdl, const char *sy @@ -1814,7 +1840,6 @@ internal_dlsym(void *hdl, const char *sy
return v; return v;
} }
} }
@ -273,7 +273,7 @@ Index: ghc-7.8.3/rts/Linker.c
RELEASE_LOCK(&dl_mutex); RELEASE_LOCK(&dl_mutex);
return v; return v;
} }
@@ -1981,7 +2006,7 @@ lookupSymbol( char *lbl ) @@ -1982,7 +2007,7 @@ lookupSymbol( char *lbl )
if (!ghciLookupSymbolTable(symhash, lbl, &val)) { if (!ghciLookupSymbolTable(symhash, lbl, &val)) {
IF_DEBUG(linker, debugBelch("lookupSymbol: symbol not found\n")); IF_DEBUG(linker, debugBelch("lookupSymbol: symbol not found\n"));
# if defined(OBJFORMAT_ELF) # if defined(OBJFORMAT_ELF)
@ -282,7 +282,7 @@ Index: ghc-7.8.3/rts/Linker.c
# elif defined(OBJFORMAT_MACHO) # elif defined(OBJFORMAT_MACHO)
# if HAVE_DLFCN_H # if HAVE_DLFCN_H
/* On OS X 10.3 and later, we use dlsym instead of the old legacy /* On OS X 10.3 and later, we use dlsym instead of the old legacy
@@ -1995,7 +2020,7 @@ lookupSymbol( char *lbl ) @@ -1996,7 +2021,7 @@ lookupSymbol( char *lbl )
*/ */
IF_DEBUG(linker, debugBelch("lookupSymbol: looking up %s with dlsym\n", lbl)); IF_DEBUG(linker, debugBelch("lookupSymbol: looking up %s with dlsym\n", lbl));
ASSERT(lbl[0] == '_'); ASSERT(lbl[0] == '_');

View File

@ -7,11 +7,11 @@ Bug: https://ghc.haskell.org/trac/ghc/ticket/7942
Signed-off-by: Austin Seipp <austin@well-typed.com> Signed-off-by: Austin Seipp <austin@well-typed.com>
Index: ghc-7.8.3/aclocal.m4 Index: ghc-7.8.4/aclocal.m4
================================================================================ ===================================================================
--- ghc-7.8.4/aclocal.m4 --- ghc-7.8.4.orig/aclocal.m4
+++ ghc-7.8.4/aclocal.m4 +++ ghc-7.8.4/aclocal.m4
@@ -197,6 +197,9 @@ @@ -200,6 +200,9 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
GET_ARM_ISA() GET_ARM_ISA()
test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT, armABI = \$ARM_ABI}\"" test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT, armABI = \$ARM_ABI}\""
;; ;;
@ -21,7 +21,7 @@ Index: ghc-7.8.3/aclocal.m4
alpha) alpha)
test -z "[$]2" || eval "[$]2=ArchAlpha" test -z "[$]2" || eval "[$]2=ArchAlpha"
;; ;;
@@ -1862,6 +1865,9 @@ @@ -1865,6 +1868,9 @@ AC_MSG_CHECKING(for path to top of build
# converts cpu from gnu to ghc naming, and assigns the result to $target_var # converts cpu from gnu to ghc naming, and assigns the result to $target_var
AC_DEFUN([GHC_CONVERT_CPU],[ AC_DEFUN([GHC_CONVERT_CPU],[
case "$1" in case "$1" in
@ -31,115 +31,127 @@ Index: ghc-7.8.3/aclocal.m4
alpha*) alpha*)
$2="alpha" $2="alpha"
;; ;;
--- ghc-7.8.4/compiler/nativeGen/AsmCodeGen.lhs Index: ghc-7.8.4/compiler/nativeGen/AsmCodeGen.lhs
===================================================================
--- ghc-7.8.4.orig/compiler/nativeGen/AsmCodeGen.lhs
+++ ghc-7.8.4/compiler/nativeGen/AsmCodeGen.lhs +++ ghc-7.8.4/compiler/nativeGen/AsmCodeGen.lhs
@@ -166,6 +166,7 @@ @@ -166,6 +166,7 @@ nativeCodeGen dflags this_mod h us cmms
ArchPPC -> nCG' (ppcNcgImpl dflags) ArchPPC -> nCG' (ppcNcgImpl dflags)
ArchSPARC -> nCG' (sparcNcgImpl dflags) ArchSPARC -> nCG' (sparcNcgImpl dflags)
ArchARM {} -> panic "nativeCodeGen: No NCG for ARM" ArchARM {} -> panic "nativeCodeGen: No NCG for ARM"
+ ArchARM64 -> panic "nativeCodeGen: No NCG for ARM64" + ArchARM64 -> panic "nativeCodeGen: No NCG for ARM64"
ArchPPC_64 -> nCG' (ppcNcgImpl dflags) ArchPPC_64 _ -> nCG' (ppcNcgImpl dflags)
ArchAlpha -> panic "nativeCodeGen: No NCG for Alpha" ArchAlpha -> panic "nativeCodeGen: No NCG for Alpha"
ArchMipseb -> panic "nativeCodeGen: No NCG for mipseb" ArchMipseb -> panic "nativeCodeGen: No NCG for mipseb"
--- ghc-7.8.4/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs Index: ghc-7.8.4/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
===================================================================
--- ghc-7.8.4.orig/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
+++ ghc-7.8.4/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs +++ ghc-7.8.4/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
@@ -113,6 +113,7 @@ @@ -113,6 +113,7 @@ trivColorable platform virtualRegSqueeze
ArchSPARC -> 14 ArchSPARC -> 14
ArchPPC_64 -> panic "trivColorable ArchPPC_64" ArchPPC_64 _ -> panic "trivColorable ArchPPC_64"
ArchARM _ _ _ -> panic "trivColorable ArchARM" ArchARM _ _ _ -> panic "trivColorable ArchARM"
+ ArchARM64 -> panic "trivColorable ArchARM64" + ArchARM64 -> panic "trivColorable ArchARM64"
ArchAlpha -> panic "trivColorable ArchAlpha" ArchAlpha -> panic "trivColorable ArchAlpha"
ArchMipseb -> panic "trivColorable ArchMipseb" ArchMipseb -> panic "trivColorable ArchMipseb"
ArchMipsel -> panic "trivColorable ArchMipsel" ArchMipsel -> panic "trivColorable ArchMipsel"
@@ -137,6 +138,7 @@ @@ -137,6 +138,7 @@ trivColorable platform virtualRegSqueeze
ArchSPARC -> 22 ArchSPARC -> 22
ArchPPC_64 -> panic "trivColorable ArchPPC_64" ArchPPC_64 _ -> panic "trivColorable ArchPPC_64"
ArchARM _ _ _ -> panic "trivColorable ArchARM" ArchARM _ _ _ -> panic "trivColorable ArchARM"
+ ArchARM64 -> panic "trivColorable ArchARM64" + ArchARM64 -> panic "trivColorable ArchARM64"
ArchAlpha -> panic "trivColorable ArchAlpha" ArchAlpha -> panic "trivColorable ArchAlpha"
ArchMipseb -> panic "trivColorable ArchMipseb" ArchMipseb -> panic "trivColorable ArchMipseb"
ArchMipsel -> panic "trivColorable ArchMipsel" ArchMipsel -> panic "trivColorable ArchMipsel"
@@ -161,6 +163,7 @@ @@ -161,6 +163,7 @@ trivColorable platform virtualRegSqueeze
ArchSPARC -> 11 ArchSPARC -> 11
ArchPPC_64 -> panic "trivColorable ArchPPC_64" ArchPPC_64 _ -> panic "trivColorable ArchPPC_64"
ArchARM _ _ _ -> panic "trivColorable ArchARM" ArchARM _ _ _ -> panic "trivColorable ArchARM"
+ ArchARM64 -> panic "trivColorable ArchARM64" + ArchARM64 -> panic "trivColorable ArchARM64"
ArchAlpha -> panic "trivColorable ArchAlpha" ArchAlpha -> panic "trivColorable ArchAlpha"
ArchMipseb -> panic "trivColorable ArchMipseb" ArchMipseb -> panic "trivColorable ArchMipseb"
ArchMipsel -> panic "trivColorable ArchMipsel" ArchMipsel -> panic "trivColorable ArchMipsel"
@@ -185,6 +188,7 @@ @@ -185,6 +188,7 @@ trivColorable platform virtualRegSqueeze
ArchSPARC -> 0 ArchSPARC -> 0
ArchPPC_64 -> panic "trivColorable ArchPPC_64" ArchPPC_64 _ -> panic "trivColorable ArchPPC_64"
ArchARM _ _ _ -> panic "trivColorable ArchARM" ArchARM _ _ _ -> panic "trivColorable ArchARM"
+ ArchARM64 -> panic "trivColorable ArchARM64" + ArchARM64 -> panic "trivColorable ArchARM64"
ArchAlpha -> panic "trivColorable ArchAlpha" ArchAlpha -> panic "trivColorable ArchAlpha"
ArchMipseb -> panic "trivColorable ArchMipseb" ArchMipseb -> panic "trivColorable ArchMipseb"
ArchMipsel -> panic "trivColorable ArchMipsel" ArchMipsel -> panic "trivColorable ArchMipsel"
--- ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs Index: ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs
===================================================================
--- ghc-7.8.4.orig/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs
+++ ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs +++ ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs
@@ -74,6 +74,7 @@ @@ -74,6 +74,7 @@ maxSpillSlots dflags
ArchPPC -> PPC.Instr.maxSpillSlots dflags ArchPPC -> PPC.Instr.maxSpillSlots dflags
ArchSPARC -> SPARC.Instr.maxSpillSlots dflags ArchSPARC -> SPARC.Instr.maxSpillSlots dflags
ArchARM _ _ _ -> panic "maxSpillSlots ArchARM" ArchARM _ _ _ -> panic "maxSpillSlots ArchARM"
+ ArchARM64 -> panic "maxSpillSlots ArchARM64" + ArchARM64 -> panic "maxSpillSlots ArchARM64"
ArchPPC_64 -> PPC.Instr.maxSpillSlots dflags ArchPPC_64 _ -> PPC.Instr.maxSpillSlots dflags
ArchAlpha -> panic "maxSpillSlots ArchAlpha" ArchAlpha -> panic "maxSpillSlots ArchAlpha"
ArchMipseb -> panic "maxSpillSlots ArchMipseb" ArchMipseb -> panic "maxSpillSlots ArchMipseb"
--- ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/Main.hs Index: ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/Main.hs
===================================================================
--- ghc-7.8.4.orig/compiler/nativeGen/RegAlloc/Linear/Main.hs
+++ ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/Main.hs +++ ghc-7.8.4/compiler/nativeGen/RegAlloc/Linear/Main.hs
@@ -207,6 +207,7 @@ @@ -207,6 +207,7 @@ linearRegAlloc dflags entry_ids block_li
ArchSPARC -> linearRegAlloc' dflags (frInitFreeRegs platform :: SPARC.FreeRegs) entry_ids block_live sccs ArchSPARC -> linearRegAlloc' dflags (frInitFreeRegs platform :: SPARC.FreeRegs) entry_ids block_live sccs
ArchPPC -> linearRegAlloc' dflags (frInitFreeRegs platform :: PPC.FreeRegs) entry_ids block_live sccs ArchPPC -> linearRegAlloc' dflags (frInitFreeRegs platform :: PPC.FreeRegs) entry_ids block_live sccs
ArchARM _ _ _ -> panic "linearRegAlloc ArchARM" ArchARM _ _ _ -> panic "linearRegAlloc ArchARM"
+ ArchARM64 -> panic "linearRegAlloc ArchARM64" + ArchARM64 -> panic "linearRegAlloc ArchARM64"
ArchPPC_64 -> linearRegAlloc' dflags (frInitFreeRegs platform :: PPC.FreeRegs) entry_ids block_live sccs ArchPPC_64 _ -> linearRegAlloc' dflags (frInitFreeRegs platform :: PPC.FreeRegs) entry_ids block_live sccs
ArchAlpha -> panic "linearRegAlloc ArchAlpha" ArchAlpha -> panic "linearRegAlloc ArchAlpha"
ArchMipseb -> panic "linearRegAlloc ArchMipseb" ArchMipseb -> panic "linearRegAlloc ArchMipseb"
--- ghc-7.8.4/compiler/nativeGen/TargetReg.hs Index: ghc-7.8.4/compiler/nativeGen/TargetReg.hs
===================================================================
--- ghc-7.8.4.orig/compiler/nativeGen/TargetReg.hs
+++ ghc-7.8.4/compiler/nativeGen/TargetReg.hs +++ ghc-7.8.4/compiler/nativeGen/TargetReg.hs
@@ -54,6 +54,7 @@ @@ -54,6 +54,7 @@ targetVirtualRegSqueeze platform
ArchSPARC -> SPARC.virtualRegSqueeze ArchSPARC -> SPARC.virtualRegSqueeze
ArchPPC_64 -> PPC.virtualRegSqueeze ArchPPC_64 _ -> PPC.virtualRegSqueeze
ArchARM _ _ _ -> panic "targetVirtualRegSqueeze ArchARM" ArchARM _ _ _ -> panic "targetVirtualRegSqueeze ArchARM"
+ ArchARM64 -> panic "targetVirtualRegSqueeze ArchARM64" + ArchARM64 -> panic "targetVirtualRegSqueeze ArchARM64"
ArchAlpha -> panic "targetVirtualRegSqueeze ArchAlpha" ArchAlpha -> panic "targetVirtualRegSqueeze ArchAlpha"
ArchMipseb -> panic "targetVirtualRegSqueeze ArchMipseb" ArchMipseb -> panic "targetVirtualRegSqueeze ArchMipseb"
ArchMipsel -> panic "targetVirtualRegSqueeze ArchMipsel" ArchMipsel -> panic "targetVirtualRegSqueeze ArchMipsel"
@@ -70,6 +71,7 @@ @@ -70,6 +71,7 @@ targetRealRegSqueeze platform
ArchSPARC -> SPARC.realRegSqueeze ArchSPARC -> SPARC.realRegSqueeze
ArchPPC_64 -> PPC.realRegSqueeze ArchPPC_64 _ -> PPC.realRegSqueeze
ArchARM _ _ _ -> panic "targetRealRegSqueeze ArchARM" ArchARM _ _ _ -> panic "targetRealRegSqueeze ArchARM"
+ ArchARM64 -> panic "targetRealRegSqueeze ArchARM64" + ArchARM64 -> panic "targetRealRegSqueeze ArchARM64"
ArchAlpha -> panic "targetRealRegSqueeze ArchAlpha" ArchAlpha -> panic "targetRealRegSqueeze ArchAlpha"
ArchMipseb -> panic "targetRealRegSqueeze ArchMipseb" ArchMipseb -> panic "targetRealRegSqueeze ArchMipseb"
ArchMipsel -> panic "targetRealRegSqueeze ArchMipsel" ArchMipsel -> panic "targetRealRegSqueeze ArchMipsel"
@@ -85,6 +87,7 @@ @@ -85,6 +87,7 @@ targetClassOfRealReg platform
ArchSPARC -> SPARC.classOfRealReg ArchSPARC -> SPARC.classOfRealReg
ArchPPC_64 -> PPC.classOfRealReg ArchPPC_64 _ -> PPC.classOfRealReg
ArchARM _ _ _ -> panic "targetClassOfRealReg ArchARM" ArchARM _ _ _ -> panic "targetClassOfRealReg ArchARM"
+ ArchARM64 -> panic "targetClassOfRealReg ArchARM64" + ArchARM64 -> panic "targetClassOfRealReg ArchARM64"
ArchAlpha -> panic "targetClassOfRealReg ArchAlpha" ArchAlpha -> panic "targetClassOfRealReg ArchAlpha"
ArchMipseb -> panic "targetClassOfRealReg ArchMipseb" ArchMipseb -> panic "targetClassOfRealReg ArchMipseb"
ArchMipsel -> panic "targetClassOfRealReg ArchMipsel" ArchMipsel -> panic "targetClassOfRealReg ArchMipsel"
@@ -100,6 +103,7 @@ @@ -100,6 +103,7 @@ targetMkVirtualReg platform
ArchSPARC -> SPARC.mkVirtualReg ArchSPARC -> SPARC.mkVirtualReg
ArchPPC_64 -> PPC.mkVirtualReg ArchPPC_64 _ -> PPC.mkVirtualReg
ArchARM _ _ _ -> panic "targetMkVirtualReg ArchARM" ArchARM _ _ _ -> panic "targetMkVirtualReg ArchARM"
+ ArchARM64 -> panic "targetMkVirtualReg ArchARM64" + ArchARM64 -> panic "targetMkVirtualReg ArchARM64"
ArchAlpha -> panic "targetMkVirtualReg ArchAlpha" ArchAlpha -> panic "targetMkVirtualReg ArchAlpha"
ArchMipseb -> panic "targetMkVirtualReg ArchMipseb" ArchMipseb -> panic "targetMkVirtualReg ArchMipseb"
ArchMipsel -> panic "targetMkVirtualReg ArchMipsel" ArchMipsel -> panic "targetMkVirtualReg ArchMipsel"
@@ -115,6 +119,7 @@ @@ -115,6 +119,7 @@ targetRegDotColor platform
ArchSPARC -> SPARC.regDotColor ArchSPARC -> SPARC.regDotColor
ArchPPC_64 -> PPC.regDotColor ArchPPC_64 _ -> PPC.regDotColor
ArchARM _ _ _ -> panic "targetRegDotColor ArchARM" ArchARM _ _ _ -> panic "targetRegDotColor ArchARM"
+ ArchARM64 -> panic "targetRegDotColor ArchARM64" + ArchARM64 -> panic "targetRegDotColor ArchARM64"
ArchAlpha -> panic "targetRegDotColor ArchAlpha" ArchAlpha -> panic "targetRegDotColor ArchAlpha"
ArchMipseb -> panic "targetRegDotColor ArchMipseb" ArchMipseb -> panic "targetRegDotColor ArchMipseb"
ArchMipsel -> panic "targetRegDotColor ArchMipsel" ArchMipsel -> panic "targetRegDotColor ArchMipsel"
--- ghc-7.8.4/compiler/utils/Platform.hs Index: ghc-7.8.4/compiler/utils/Platform.hs
===================================================================
--- ghc-7.8.4.orig/compiler/utils/Platform.hs
+++ ghc-7.8.4/compiler/utils/Platform.hs +++ ghc-7.8.4/compiler/utils/Platform.hs
@@ -52,6 +52,7 @@ @@ -55,6 +55,7 @@ data Arch
, armISAExt :: [ArmISAExt] , armISAExt :: [ArmISAExt]
, armABI :: ArmABI , armABI :: ArmABI
} }
@ -147,17 +159,21 @@ Index: ghc-7.8.3/aclocal.m4
| ArchAlpha | ArchAlpha
| ArchMipseb | ArchMipseb
| ArchMipsel | ArchMipsel
--- ghc-7.8.4/includes/stg/HaskellMachRegs.h Index: ghc-7.8.4/includes/stg/HaskellMachRegs.h
===================================================================
--- ghc-7.8.4.orig/includes/stg/HaskellMachRegs.h
+++ ghc-7.8.4/includes/stg/HaskellMachRegs.h +++ ghc-7.8.4/includes/stg/HaskellMachRegs.h
@@ -38,6 +38,7 @@ @@ -39,6 +39,7 @@
#define MACHREGS_powerpc (powerpc_TARGET_ARCH || powerpc64_TARGET_ARCH || rs6000_TARGET_ARCH) || powerpc64le_TARGET_ARCH || rs6000_TARGET_ARCH)
#define MACHREGS_sparc sparc_TARGET_ARCH #define MACHREGS_sparc sparc_TARGET_ARCH
#define MACHREGS_arm arm_TARGET_ARCH #define MACHREGS_arm arm_TARGET_ARCH
+#define MACHREGS_aarch64 aarch64_TARGET_ARCH +#define MACHREGS_aarch64 aarch64_TARGET_ARCH
#define MACHREGS_darwin darwin_TARGET_OS #define MACHREGS_darwin darwin_TARGET_OS
#endif #endif
--- ghc-7.8.4/includes/stg/MachRegs.h Index: ghc-7.8.4/includes/stg/MachRegs.h
===================================================================
--- ghc-7.8.4.orig/includes/stg/MachRegs.h
+++ ghc-7.8.4/includes/stg/MachRegs.h +++ ghc-7.8.4/includes/stg/MachRegs.h
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
@ -229,9 +245,11 @@ Index: ghc-7.8.3/aclocal.m4
#else #else
#error Cannot find platform to give register info for #error Cannot find platform to give register info for
--- ghc-7.8.4/rts/StgCRun.c Index: ghc-7.8.4/rts/StgCRun.c
===================================================================
--- ghc-7.8.4.orig/rts/StgCRun.c
+++ ghc-7.8.4/rts/StgCRun.c +++ ghc-7.8.4/rts/StgCRun.c
@@ -748,4 +748,70 @@ @@ -756,4 +756,70 @@ StgRun(StgFunPtr f, StgRegTable *basereg
} }
#endif #endif

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Fri May 29 05:47:07 UTC 2015 - peter.trommler@ohm-hochschule.de
- refresh ghc-arm64.patch
- unconditionally apply ghc-arm64.patch
-------------------------------------------------------------------
Thu May 28 15:14:31 UTC 2015 - peter.trommler@ohm-hochschule.de
- add backport of powerpc64le native code generator to
0001-implement-native-code-generator-for-ppc64.patch
- refresh D349.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu May 28 13:15:52 CEST 2015 - ro@suse.de Thu May 28 13:15:52 CEST 2015 - ro@suse.de

View File

@ -16,7 +16,7 @@
# #
%global unregisterised_archs aarch64 ppc64le s390 s390x %global unregisterised_archs aarch64 s390 s390x
Name: ghc Name: ghc
Version: 7.8.4 Version: 7.8.4
@ -168,9 +168,7 @@ except the ghc library, which is installed by the toplevel ghc metapackage.
%patch18 -p1 %patch18 -p1
%patch19 -p1 %patch19 -p1
%patch20 -p1 %patch20 -p1
%ifarch aarch64
%patch21 -p1 %patch21 -p1
%endif
%build %build
# Patch 19 modifies build system # Patch 19 modifies build system