Commit 24668a10 authored by Gianfranco Costamagna's avatar Gianfranco Costamagna
Browse files

ghc: try to enable again armel patch, but commented out, and everywhere

parent 97ce9255
Loading
Loading
Loading
Loading
+67 −66
Original line number Diff line number Diff line
Description: Revert ghci ARM improvements (ticket #10375) on armel
 This patch reverts a change which improved ghci on ARM (see
 ghc ticket #10375). While the change fixed ghci on armhf, it
 actually resulted in the ghc package FTBFS on armel since the
 changes introduced made ghc incompatible with this architecture
 (ticket #11058). As a temporary workaround, we revert this particular
 change when ghc is built on armel. For this reason, this patch
 is not applied using the series file but only selectively on
 armel with the help of debian/rules.
 .

Index: ghc-8.4.1/aclocal.m4
===================================================================
--- ghc-8.4.1.orig/aclocal.m4
+++ ghc-8.4.1/aclocal.m4
@@ -651,15 +651,8 @@
         $3="$$3 -D_HPUX_SOURCE"
         $5="$$5 -D_HPUX_SOURCE"
         ;;
-    arm*linux*)
-        # On arm/linux and arm/android, tell gcc to generate Arm
-        # instructions (ie not Thumb).
-        $2="$$2 -marm"
-        $3="$$3 -Wl,-z,noexecstack"
-        $4="$$4 -z noexecstack"
-        ;;
-
-    aarch64*linux*)
+    arm*linux*		| \
+    aarch64*linux*	)
         $3="$$3 -Wl,-z,noexecstack"
         $4="$$4 -z noexecstack"
         ;;
Index: ghc-8.4.1/libraries/ghci/GHCi/InfoTable.hsc
===================================================================
--- ghc-8.4.1.orig/libraries/ghci/GHCi/InfoTable.hsc
+++ ghc-8.4.1/libraries/ghci/GHCi/InfoTable.hsc
@@ -245,17 +245,17 @@
                  , fromIntegral ((w64 `shiftR` 32) .&. 0x0000FFFF) ]
 
     ArchARM { } ->
-        -- Generates Arm sequence,
+        -- Generates Thumb sequence,
         --      ldr r1, [pc, #0]
         --      bx r1
         --
         -- which looks like:
         --     00000000 <.addr-0x8>:
-        --     0:       00109fe5    ldr    r1, [pc]      ; 8 <.addr>
-        --     4:       11ff2fe1    bx     r1
+        --     0:       4900        ldr    r1, [pc]      ; 8 <.addr>
+        --     4:       4708        bx     r1
         let w32 = fromIntegral (funPtrToInt a) :: Word32
-        in Left [ 0x00, 0x10, 0x9f, 0xe5
-                , 0x11, 0xff, 0x2f, 0xe1
+        in Left [ 0x49, 0x00
+                , 0x47, 0x08
                 , byte0 w32, byte1 w32, byte2 w32, byte3 w32]
 
     ArchARM64 { } ->
Description: with new ghc 8.4.3, the armel situation seems to have improved,
 apply this patch unconditionally.
#Description: Revert ghci ARM improvements (ticket #10375) on armel
# This patch reverts a change which improved ghci on ARM (see
# ghc ticket #10375). While the change fixed ghci on armhf, it
# actually resulted in the ghc package FTBFS on armel since the
# changes introduced made ghc incompatible with this architecture
# (ticket #11058). As a temporary workaround, we revert this particular
# change when ghc is built on armel. For this reason, this patch
# is not applied using the series file but only selectively on
# armel with the help of debian/rules.
# .
#
#Index: ghc-8.4.1/aclocal.m4
#===================================================================
#--- ghc-8.4.1.orig/aclocal.m4
#+++ ghc-8.4.1/aclocal.m4
#@@ -651,15 +651,8 @@
#         $3="$$3 -D_HPUX_SOURCE"
#         $5="$$5 -D_HPUX_SOURCE"
#         ;;
#-    arm*linux*)
#-        # On arm/linux and arm/android, tell gcc to generate Arm
#-        # instructions (ie not Thumb).
#-        $2="$$2 -marm"
#-        $3="$$3 -Wl,-z,noexecstack"
#-        $4="$$4 -z noexecstack"
#-        ;;
#-
#-    aarch64*linux*)
#+    arm*linux*		| \
#+    aarch64*linux*	)
#         $3="$$3 -Wl,-z,noexecstack"
#         $4="$$4 -z noexecstack"
#         ;;
#Index: ghc-8.4.1/libraries/ghci/GHCi/InfoTable.hsc
#===================================================================
#--- ghc-8.4.1.orig/libraries/ghci/GHCi/InfoTable.hsc
#+++ ghc-8.4.1/libraries/ghci/GHCi/InfoTable.hsc
#@@ -245,17 +245,17 @@
#                  , fromIntegral ((w64 `shiftR` 32) .&. 0x0000FFFF) ]
# 
#     ArchARM { } ->
#-        -- Generates Arm sequence,
#+        -- Generates Thumb sequence,
#         --      ldr r1, [pc, #0]
#         --      bx r1
#         --
#         -- which looks like:
#         --     00000000 <.addr-0x8>:
#-        --     0:       00109fe5    ldr    r1, [pc]      ; 8 <.addr>
#-        --     4:       11ff2fe1    bx     r1
#+        --     0:       4900        ldr    r1, [pc]      ; 8 <.addr>
#+        --     4:       4708        bx     r1
#         let w32 = fromIntegral (funPtrToInt a) :: Word32
#-        in Left [ 0x00, 0x10, 0x9f, 0xe5
#-                , 0x11, 0xff, 0x2f, 0xe1
#+        in Left [ 0x49, 0x00
#+                , 0x47, 0x08
#                 , byte0 w32, byte1 w32, byte2 w32, byte3 w32]
# 
#     ArchARM64 { } ->
Index: ghc-8.4.1/llvm-targets
===================================================================
--- ghc-8.4.1.orig/llvm-targets
+++ ghc-8.4.1/llvm-targets
@@ -2,7 +2,7 @@
 ,("i686-unknown-windows", ("e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32", "pentium4", ""))
@@ -3,6 +3,7 @@
 ,("x86_64-unknown-windows", ("e-m:w-i64:64-f80:128-n8:16:32:64-S128", "x86-64", ""))
 ,("arm-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
-,("armv6-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1136jf-s", "+strict-align"))
+,("arm-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1136jf-s", "+strict-align"))
 ,("armv6-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1136jf-s", "+strict-align"))
+,("arm-unknown-linux-gnueabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1136jf-s", "+strict-align"))
 ,("armv6l-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
 ,("armv7-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
 ,("aarch64-unknown-linux-gnu", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
 ,("aarch64-unknown-linux", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
 ,("armv7a-unknown-linux-gnueabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+1 −0
Original line number Diff line number Diff line
@@ -10,3 +10,4 @@ bsymbolic-only-for-registerised.patch
use-llvm-6.0.patch
e175aaf6918bb2b497b83618dc4c270a0d231a1c.patch
risc-support.patch
armel-revert-ghci-fixes.patch
+0 −3
Original line number Diff line number Diff line
@@ -81,9 +81,6 @@ endif
ifeq (armhf,$(DEB_HOST_ARCH))
	echo "SRC_HC_OPTS += -D__ARM_PCS_VFP" >> mk/build.mk
endif
#ifeq (armel,$(DEB_HOST_ARCH))
#	patch -p1 < debian/patches/armel-revert-ghci-fixes.patch
#endif
ifneq (,$(filter mips mipsel, $(DEB_HOST_ARCH)))
	echo "SRC_HC_OPTS     += -optc--param -optcggc-min-expand=10" >> mk/build.mk
endif