update to 7.4.2 bootstrap
- drop arm StgCRun patches - update arm hf patch - use _smp_mflags
This commit is contained in:
parent
d27beede6c
commit
d69bc0fa37
2
.gitignore
vendored
2
.gitignore
vendored
@ -7,3 +7,5 @@ testsuite-6.12.3.tar.bz2
|
|||||||
/testsuite-7.0.4.tar.bz2
|
/testsuite-7.0.4.tar.bz2
|
||||||
/ghc-7.4.1-testsuite.tar.bz2
|
/ghc-7.4.1-testsuite.tar.bz2
|
||||||
/ghc-7.4.1-src.tar.bz2
|
/ghc-7.4.1-src.tar.bz2
|
||||||
|
/ghc-7.4.2-src.tar.bz2
|
||||||
|
/ghc-7.4.2-testsuite.tar.bz2
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
From 1cbf3bcae87dd102942d85ce71ea17d42d4b5f5a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Karel Gardas <karel.gardas@centrum.cz>
|
|
||||||
Date: Tue, 14 Feb 2012 08:03:07 +0100
|
|
||||||
Subject: [PATCH 2/2] fix ARM StgCRun to not save and restore r11/fp register twice
|
|
||||||
|
|
||||||
---
|
|
||||||
rts/StgCRun.c | 4 ++--
|
|
||||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/rts/StgCRun.c
|
|
||||||
+++ b/rts/StgCRun.c
|
|
||||||
@@ -632,7 +632,7 @@
|
|
||||||
/*
|
|
||||||
* save callee-saves registers on behalf of the STG code.
|
|
||||||
*/
|
|
||||||
- "stmfd sp!, {r4-r11, fp, ip, lr}\n\t"
|
|
||||||
+ "stmfd sp!, {r4-r10, fp, ip, lr}\n\t"
|
|
||||||
#if !defined(arm_HOST_ARCH_PRE_ARMv6)
|
|
||||||
"vstmdb sp!, {d8-d11}\n\t"
|
|
||||||
#endif
|
|
||||||
@@ -669,7 +669,7 @@
|
|
||||||
#if !defined(arm_HOST_ARCH_PRE_ARMv6)
|
|
||||||
"vldmia sp!, {d8-d11}\n\t"
|
|
||||||
#endif
|
|
||||||
- "ldmfd sp!, {r4-r11, fp, ip, lr}\n\t"
|
|
||||||
+ "ldmfd sp!, {r4-r10, fp, ip, lr}\n\t"
|
|
||||||
: "=r" (r)
|
|
||||||
: "r" (f), "r" (basereg), "i" (RESERVED_C_STACK_BYTES)
|
|
||||||
#if !defined(__thumb__)
|
|
@ -1,34 +0,0 @@
|
|||||||
From 957f778cb971d63cbbea0c71c727c94474b1b905 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Karel Gardas <karel.gardas@centrum.cz>
|
|
||||||
Date: Tue, 14 Feb 2012 08:01:47 +0100
|
|
||||||
Subject: [PATCH 1/2] fix ARM's StgCRun clobbered register list for both ARM and Thumb modes
|
|
||||||
|
|
||||||
---
|
|
||||||
rts/StgCRun.c | 16 +++++++++++++++-
|
|
||||||
1 files changed, 15 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
--- a/rts/StgCRun.c
|
|
||||||
+++ b/rts/StgCRun.c
|
|
||||||
@@ -672,7 +672,21 @@
|
|
||||||
"ldmfd sp!, {r4-r11, fp, ip, lr}\n\t"
|
|
||||||
: "=r" (r)
|
|
||||||
: "r" (f), "r" (basereg), "i" (RESERVED_C_STACK_BYTES)
|
|
||||||
- : "%r4", "%r5", "%r6", "%r8", "%r9", "%r10", "%r11", "%fp", "%ip", "%lr"
|
|
||||||
+#if !defined(__thumb__)
|
|
||||||
+ /* In ARM mode, r11/fp is frame-pointer and so we cannot mark
|
|
||||||
+ it as clobbered. If we do so, GCC complains with error. */
|
|
||||||
+ : "%r4", "%r5", "%r6", "%r7", "%r8", "%r9", "%r10", "%ip", "%lr"
|
|
||||||
+#else
|
|
||||||
+ /* In Thumb mode r7 is frame-pointer and so we cannot mark it
|
|
||||||
+ as clobbered. On the other hand we mark as clobbered also
|
|
||||||
+ those regs not used in Thumb mode. Hard to judge if this is
|
|
||||||
+ needed, but certainly Haskell code is using them for
|
|
||||||
+ placing GHC's virtual registers there. See
|
|
||||||
+ includes/stg/MachRegs.h Please note that Haskell code is
|
|
||||||
+ compiled by GHC/LLVM into ARM code (not Thumb!), at least
|
|
||||||
+ as of February 2012 */
|
|
||||||
+ : "%r4", "%r5", "%r6", "%r8", "%r9", "%r10", "%fp", "%ip", "%lr"
|
|
||||||
+#endif
|
|
||||||
);
|
|
||||||
return r;
|
|
||||||
}
|
|
1274
ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch
Normal file
1274
ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,16 +0,0 @@
|
|||||||
Description: Use VFPv3-D16 FPU for ARM builds
|
|
||||||
Author: Jani Monoses <jani@ubuntu.com>
|
|
||||||
|
|
||||||
Index: ghc/aclocal.m4
|
|
||||||
===================================================================
|
|
||||||
--- ghc.orig/aclocal.m4 2012-02-01 18:10:32.000000000 +0000
|
|
||||||
+++ ghc/aclocal.m4 2012-03-10 16:40:32.415005650 +0000
|
|
||||||
@@ -333,7 +333,7 @@
|
|
||||||
],
|
|
||||||
[changequote(, )dnl
|
|
||||||
ARM_ISA=ARMv7
|
|
||||||
- ARM_ISA_EXT="[VFPv3,NEON]"
|
|
||||||
+ ARM_ISA_EXT="[VFPv3D16,NEON]"
|
|
||||||
changequote([, ])dnl
|
|
||||||
])
|
|
||||||
])
|
|
@ -1,26 +0,0 @@
|
|||||||
Description: If we are on armhf, tell llvm to generate code for this ABI. Not
|
|
||||||
forwarded upstream, because they will do a more 'proper' patch. See upstream
|
|
||||||
bug #5914.
|
|
||||||
Author: Iain Lane <laney@debian.org>
|
|
||||||
|
|
||||||
Index: ghc/compiler/main/DriverPipeline.hs
|
|
||||||
===================================================================
|
|
||||||
--- ghc.orig/compiler/main/DriverPipeline.hs 2012-03-10 16:41:46.000000000 +0000
|
|
||||||
+++ ghc/compiler/main/DriverPipeline.hs 2012-03-10 16:42:59.209169474 +0000
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
{-# OPTIONS -fno-cse #-}
|
|
||||||
-{-# LANGUAGE NamedFieldPuns #-}
|
|
||||||
+{-# LANGUAGE NamedFieldPuns, CPP #-}
|
|
||||||
-- -fno-cse is needed for GLOBAL_VAR's to behave properly
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
|
||||||
@@ -1379,6 +1379,9 @@
|
|
||||||
then ["-mattr=+v7,+vfp3"]
|
|
||||||
else if (elem VFPv3D16 ext)
|
|
||||||
then ["-mattr=+v7,+vfp3,+d16"]
|
|
||||||
+#ifdef __ARM_PCS_VFP
|
|
||||||
+ ++ ["-float-abi=hard"]
|
|
||||||
+#endif
|
|
||||||
else []
|
|
||||||
_ -> []
|
|
||||||
|
|
47
ghc.spec
47
ghc.spec
@ -2,10 +2,10 @@
|
|||||||
# (disabled for other archs in ghc-rpm-macros)
|
# (disabled for other archs in ghc-rpm-macros)
|
||||||
|
|
||||||
# To bootstrap a new version of ghc, uncomment the following:
|
# To bootstrap a new version of ghc, uncomment the following:
|
||||||
#%%global ghc_bootstrapping 1
|
%global ghc_bootstrapping 1
|
||||||
#%%{?ghc_bootstrap}
|
%{?ghc_bootstrap}
|
||||||
#%%global without_hscolour 1
|
%global without_hscolour 1
|
||||||
#%%global without_testsuite 1
|
%global without_testsuite 1
|
||||||
|
|
||||||
# To do a test build instead with shared libs, uncomment the following:
|
# To do a test build instead with shared libs, uncomment the following:
|
||||||
#%%global ghc_bootstrapping 1
|
#%%global ghc_bootstrapping 1
|
||||||
@ -25,12 +25,12 @@
|
|||||||
Name: ghc
|
Name: ghc
|
||||||
# part of haskell-platform
|
# part of haskell-platform
|
||||||
# ghc must be rebuilt after a version bump to avoid ABI change problems
|
# ghc must be rebuilt after a version bump to avoid ABI change problems
|
||||||
Version: 7.4.1
|
Version: 7.4.2
|
||||||
# Since library subpackages are versioned:
|
# Since library subpackages are versioned:
|
||||||
# - release can only be reset if all library versions get bumped simultaneously
|
# - release can only be reset if all library versions get bumped simultaneously
|
||||||
# (eg for a major release)
|
# (eg for a major release)
|
||||||
# - minor release numbers should be incremented monotonically
|
# - minor release numbers should be incremented monotonically
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
Summary: Glasgow Haskell Compiler
|
Summary: Glasgow Haskell Compiler
|
||||||
# fedora ghc has been bootstrapped on
|
# fedora ghc has been bootstrapped on
|
||||||
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
|
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
|
||||||
@ -98,12 +98,8 @@ Patch8: ghc-powerpc-linker-mmap.patch
|
|||||||
Patch9: Cabal-fix-dynamic-exec-for-TH.patch
|
Patch9: Cabal-fix-dynamic-exec-for-TH.patch
|
||||||
# add libffi include dir to ghc wrapper for archs using gcc/llc
|
# add libffi include dir to ghc wrapper for archs using gcc/llc
|
||||||
Patch10: ghc-wrapper-libffi-include.patch
|
Patch10: ghc-wrapper-libffi-include.patch
|
||||||
# Debian armel fixes
|
# latest arm hf patch
|
||||||
Patch11: fix-ARM-s-StgCRun-clobbered-register-list-for-both-A.patch
|
Patch11: ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch
|
||||||
Patch12: fix-ARM-StgCRun-to-not-save-and-restore-r11-fp-regis.patch
|
|
||||||
# Debian armhf fixes
|
|
||||||
Patch13: ghc-debian-ARM-VFPv3D16.patch
|
|
||||||
Patch14: ghc-debian-armhf_llvm_abi.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
GHC is a state-of-the-art, open source, compiler and interactive environment
|
GHC is a state-of-the-art, open source, compiler and interactive environment
|
||||||
@ -159,7 +155,7 @@ To install all of ghc, install the ghc base package.
|
|||||||
%if %{defined ghclibdir}
|
%if %{defined ghclibdir}
|
||||||
%ghc_lib_subpackage Cabal 1.14.0
|
%ghc_lib_subpackage Cabal 1.14.0
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport array 0.4.0.0
|
%ghc_lib_subpackage -l %BSDHaskellReport array 0.4.0.0
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base 4.5.0.0
|
%ghc_lib_subpackage -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base 4.5.1.0
|
||||||
%ghc_lib_subpackage binary 0.5.1.0
|
%ghc_lib_subpackage binary 0.5.1.0
|
||||||
%ghc_lib_subpackage bytestring 0.9.2.1
|
%ghc_lib_subpackage bytestring 0.9.2.1
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport containers 0.4.2.1
|
%ghc_lib_subpackage -l %BSDHaskellReport containers 0.4.2.1
|
||||||
@ -181,7 +177,7 @@ To install all of ghc, install the ghc base package.
|
|||||||
%ghc_lib_subpackage -l %BSDHaskellReport process 1.1.0.1
|
%ghc_lib_subpackage -l %BSDHaskellReport process 1.1.0.1
|
||||||
%ghc_lib_subpackage template-haskell 2.7.0.0
|
%ghc_lib_subpackage template-haskell 2.7.0.0
|
||||||
%ghc_lib_subpackage time 1.4
|
%ghc_lib_subpackage time 1.4
|
||||||
%ghc_lib_subpackage unix 2.5.1.0
|
%ghc_lib_subpackage unix 2.5.1.1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global version %{ghc_version_override}
|
%global version %{ghc_version_override}
|
||||||
@ -224,14 +220,9 @@ ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# ARM patches
|
# ARM patches
|
||||||
%ifarch armv7hl armv5tel
|
|
||||||
%patch11 -p1 -b .arm1
|
|
||||||
%patch12 -p1 -b .arm2
|
|
||||||
%endif
|
|
||||||
%ifarch armv7hl
|
%ifarch armv7hl
|
||||||
# touches aclocal.m4
|
# touches aclocal.m4
|
||||||
%patch13 -p1 -b .arm
|
%patch11 -p1 -b .arm
|
||||||
%patch14 -p1 -b .arm
|
|
||||||
autoreconf
|
autoreconf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -249,9 +240,6 @@ BUILD_DOCBOOK_HTML = NO
|
|||||||
%if %{undefined without_hscolour}
|
%if %{undefined without_hscolour}
|
||||||
HSCOLOUR_SRCS = NO
|
HSCOLOUR_SRCS = NO
|
||||||
%endif
|
%endif
|
||||||
%ifarch armv7hl
|
|
||||||
SRC_HC_OPTS += -D__ARM_PCS_VFP
|
|
||||||
%endif
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
export CFLAGS="${CFLAGS:-%optflags}"
|
export CFLAGS="${CFLAGS:-%optflags}"
|
||||||
@ -263,10 +251,7 @@ export CFLAGS="${CFLAGS:-%optflags}"
|
|||||||
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
||||||
--with-gcc=%{_bindir}/gcc
|
--with-gcc=%{_bindir}/gcc
|
||||||
|
|
||||||
# >4 cpus tends to break build
|
make %{?_smp_mflags}
|
||||||
[ -z "$RPM_BUILD_NCPUS" ] && RPM_BUILD_NCPUS=$(%{_bindir}/getconf _NPROCESSORS_ONLN)
|
|
||||||
[ "$RPM_BUILD_NCPUS" -gt 4 ] && RPM_BUILD_NCPUS=4
|
|
||||||
make -j$RPM_BUILD_NCPUS
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make DESTDIR=${RPM_BUILD_ROOT} install
|
make DESTDIR=${RPM_BUILD_ROOT} install
|
||||||
@ -435,6 +420,14 @@ fi
|
|||||||
%files libraries
|
%files libraries
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 24 2012 Jens Petersen <petersen@redhat.com> - 7.4.2-7
|
||||||
|
- 7.4.2 bootstrap
|
||||||
|
http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/release-7-4-2.html
|
||||||
|
- update base and unix library versions
|
||||||
|
- ARM StgCRun patches not longer needed
|
||||||
|
- use Karel Gardas' ARM hardfloat patch committed upstream
|
||||||
|
- use _smp_mflags again
|
||||||
|
|
||||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.4.1-6
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.4.1-6
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user