[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