update to 7.4.2 bootstrap

- drop arm StgCRun patches
- update arm hf patch
- use _smp_mflags
epel9
Jens Petersen 13 years ago
parent a27c47f9d9
commit 6b98066a85

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;
}

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 []
_ -> []

@ -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

@ -1,2 +1 @@
54bc9405c14c3226b6e3de3cd61e2777 ghc-7.4.1-testsuite.tar.bz2
5d86c420978b49cc60edea9bd4c36703 ghc-7.4.1-src.tar.bz2
528005749c761fe6c12a0079bd84fb90 ghc-7.4.2-testsuite.tar.bz2

Loading…
Cancel
Save