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
|
||||
/ghc-7.4.1-testsuite.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)
|
||||
|
||||
# To bootstrap a new version of ghc, uncomment the following:
|
||||
#%%global ghc_bootstrapping 1
|
||||
#%%{?ghc_bootstrap}
|
||||
#%%global without_hscolour 1
|
||||
#%%global without_testsuite 1
|
||||
%global ghc_bootstrapping 1
|
||||
%{?ghc_bootstrap}
|
||||
%global without_hscolour 1
|
||||
%global without_testsuite 1
|
||||
|
||||
# To do a test build instead with shared libs, uncomment the following:
|
||||
#%%global ghc_bootstrapping 1
|
||||
@ -25,12 +25,12 @@
|
||||
Name: ghc
|
||||
# part of haskell-platform
|
||||
# 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:
|
||||
# - release can only be reset if all library versions get bumped simultaneously
|
||||
# (eg for a major release)
|
||||
# - minor release numbers should be incremented monotonically
|
||||
Release: 6%{?dist}
|
||||
Release: 7%{?dist}
|
||||
Summary: Glasgow Haskell Compiler
|
||||
# fedora ghc has been bootstrapped on
|
||||
# %{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
|
||||
# add libffi include dir to ghc wrapper for archs using gcc/llc
|
||||
Patch10: ghc-wrapper-libffi-include.patch
|
||||
# Debian armel fixes
|
||||
Patch11: fix-ARM-s-StgCRun-clobbered-register-list-for-both-A.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
|
||||
# latest arm hf patch
|
||||
Patch11: ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch
|
||||
|
||||
%description
|
||||
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}
|
||||
%ghc_lib_subpackage Cabal 1.14.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 bytestring 0.9.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 template-haskell 2.7.0.0
|
||||
%ghc_lib_subpackage time 1.4
|
||||
%ghc_lib_subpackage unix 2.5.1.0
|
||||
%ghc_lib_subpackage unix 2.5.1.1
|
||||
%endif
|
||||
|
||||
%global version %{ghc_version_override}
|
||||
@ -224,14 +220,9 @@ ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build
|
||||
%endif
|
||||
|
||||
# ARM patches
|
||||
%ifarch armv7hl armv5tel
|
||||
%patch11 -p1 -b .arm1
|
||||
%patch12 -p1 -b .arm2
|
||||
%endif
|
||||
%ifarch armv7hl
|
||||
# touches aclocal.m4
|
||||
%patch13 -p1 -b .arm
|
||||
%patch14 -p1 -b .arm
|
||||
%patch11 -p1 -b .arm
|
||||
autoreconf
|
||||
%endif
|
||||
|
||||
@ -249,9 +240,6 @@ BUILD_DOCBOOK_HTML = NO
|
||||
%if %{undefined without_hscolour}
|
||||
HSCOLOUR_SRCS = NO
|
||||
%endif
|
||||
%ifarch armv7hl
|
||||
SRC_HC_OPTS += -D__ARM_PCS_VFP
|
||||
%endif
|
||||
EOF
|
||||
|
||||
export CFLAGS="${CFLAGS:-%optflags}"
|
||||
@ -263,10 +251,7 @@ export CFLAGS="${CFLAGS:-%optflags}"
|
||||
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
||||
--with-gcc=%{_bindir}/gcc
|
||||
|
||||
# >4 cpus tends to break build
|
||||
[ -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
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
make DESTDIR=${RPM_BUILD_ROOT} install
|
||||
@ -435,6 +420,14 @@ fi
|
||||
%files libraries
|
||||
|
||||
%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
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user