[ghc] Reverting last patch "avoid actually running aclocal (for +d16) by using hard float patch closer to
Jens Petersen
petersen at fedoraproject.org
Fri Apr 27 14:18:53 UTC 2012
commit 2d889de3ba5aff69389e7c621c262760eda25967
Author: Jens Petersen <petersen at redhat.com>
Date: Fri Apr 27 23:18:42 2012 +0900
Reverting last patch "avoid actually running aclocal (for +d16) by using hard float patch closer to Ubuntu" and run autoreconf
ghc-7.4.1-armv7hl-llc-hard-float.patch | 15 ---------------
ghc-debian-ARM-VFPv3D16.patch | 16 ++++++++++++++++
ghc-debian-armhf_llvm_abi.patch | 26 ++++++++++++++++++++++++++
ghc.spec | 16 ++++++++++++----
4 files changed, 54 insertions(+), 19 deletions(-)
---
diff --git a/ghc-debian-ARM-VFPv3D16.patch b/ghc-debian-ARM-VFPv3D16.patch
new file mode 100644
index 0000000..ffe76cb
--- /dev/null
+++ b/ghc-debian-ARM-VFPv3D16.patch
@@ -0,0 +1,16 @@
+Description: Use VFPv3-D16 FPU for ARM builds
+Author: Jani Monoses <jani at 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
+ ])
+ ])
diff --git a/ghc-debian-armhf_llvm_abi.patch b/ghc-debian-armhf_llvm_abi.patch
new file mode 100644
index 0000000..c3b045e
--- /dev/null
+++ b/ghc-debian-armhf_llvm_abi.patch
@@ -0,0 +1,26 @@
+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 at 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 []
+ _ -> []
+
diff --git a/ghc.spec b/ghc.spec
index fe02411..903321f 100644
--- a/ghc.spec
+++ b/ghc.spec
@@ -98,8 +98,9 @@ Patch9: Cabal-fix-dynamic-exec-for-TH.patch
# Debian armel fixes
Patch10: fix-ARM-s-StgCRun-clobbered-register-list-for-both-A.patch
Patch11: fix-ARM-StgCRun-to-not-save-and-restore-r11-fp-regis.patch
-# need to tell llc to use hard float on armv7hl
-Patch12: ghc-7.4.1-armv7hl-llc-hard-float.patch
+# Debian armhf fixes
+Patch12: ghc-debian-ARM-VFPv3D16.patch
+Patch13: ghc-debian-armhf_llvm_abi.patch
%description
GHC is a state-of-the-art, open source, compiler and interactive environment
@@ -218,7 +219,12 @@ ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build
%ifarch armv7hl armv5tel
%patch10 -p1 -b .arm1
%patch11 -p1 -b .arm2
+%endif
+%ifarch armv7hl
+# touches aclocal.m4
%patch12 -p1 -b .arm
+%patch13 -p1 -b .arm
+autoreconf
%endif
%build
@@ -235,6 +241,9 @@ 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}"
@@ -421,8 +430,7 @@ fi
* Tue Apr 10 2012 Jens Petersen <petersen at redhat.com> - 7.4.1-1.1
- build with llvm-3.0 on ARM
- remove arm from unregisterised_archs
-- add Debian ARM register patches (Iain Lane)
-- make llc use -float-abi=hard on armv7hl (thanks Debian and Ubuntu)
+- add 4 Debian ARM patches for armel and armhf (Iain Lane)
- bootstrap build
* Wed Feb 15 2012 Jens Petersen <petersen at redhat.com> - 7.4.1-1
More information about the scm-commits
mailing list