From bc51500a32c12e58b0cdc8a50b0d551c8da177d8 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Apr 28 2015 04:02:15 +0000 Subject: revert ld.gold to armv7 only; static ghc progs for aarch64 - ld.gold patch didn't fix subprocess output problem aarch64 ghci crashes with both gold and bfd but TH seems to work --- diff --git a/ghc-7.8-arm-use-ld-gold.patch b/ghc-7.8-arm-use-ld-gold.patch deleted file mode 100644 index 46d572f..0000000 --- a/ghc-7.8-arm-use-ld-gold.patch +++ /dev/null @@ -1,42 +0,0 @@ -armv7 by nomeata: https://ghc.haskell.org/trac/ghc/ticket/8976#comment:12 -arm64 backport of https://ghc.haskell.org/trac/ghc/ticket/9673#comment:28 (erikd) - ---- ghc-7.8.4/aclocal.m4.24~ 2015-04-01 04:48:39.961193022 -0400 -+++ ghc-7.8.4/aclocal.m4 2015-04-01 04:50:19.708203082 -0400 -@@ -553,6 +553,14 @@ - $3="$$3 -D_HPUX_SOURCE" - $5="$$5 -D_HPUX_SOURCE" - ;; -+ arm*) -+ # On arm, link using gold -+ $3="$$3 -fuse-ld=gold" -+ ;; -+ aarch64) -+ # On arm, link using gold -+ $3="$$3 -fuse-ld=gold" -+ ;; - esac - - # If gcc knows about the stack protector, turn it off. ---- ghc-7.8.4/configure.ac~ 2014-12-22 14:08:24.000000000 -0500 -+++ ghc-7.8.4/configure.ac 2015-04-22 00:08:54.646110535 -0400 -@@ -587,7 +587,18 @@ - dnl ** Which ld to use? - dnl -------------------------------------------------------------- - FP_ARG_WITH_PATH_GNU_PROG([LD], [ld], [ld]) --LdCmd="$LD" -+case $target in -+arm*linux* | aarch64*linux*) -+ # Arm requires use of the binutils ld.gold linker. -+ # This case should catch at least arm-unknown-linux-gnueabihf and -+ # arm-linux-androideabi. -+ FP_ARG_WITH_PATH_GNU_PROG([LD_GOLD], [ld.gold], [ld.gold]) -+ LdCmd="$LD_GOLD" -+ ;; -+*) -+ LdCmd="$LD" -+ ;; -+esac - AC_SUBST([LdCmd]) - - dnl ** Which nm to use? diff --git a/ghc-7.8-arm7-use-ld-gold-8976.patch b/ghc-7.8-arm7-use-ld-gold-8976.patch new file mode 100644 index 0000000..6852db5 --- /dev/null +++ b/ghc-7.8-arm7-use-ld-gold-8976.patch @@ -0,0 +1,17 @@ +Patch by nomeata: https://ghc.haskell.org/trac/ghc/ticket/8976#comment:12 + +Index: ghc-7.8.3.20141119/aclocal.m4 +=================================================================== +--- ghc-7.8.3.20141119.orig/aclocal.m4 2014-12-08 18:49:28.207171714 +0100 ++++ ghc-7.8.3.20141119/aclocal.m4 2014-12-08 19:03:06.815522917 +0100 +@@ -553,6 +553,10 @@ + $3="$$3 -D_HPUX_SOURCE" + $5="$$5 -D_HPUX_SOURCE" + ;; ++ arm*) ++ # On arm, link using gold ++ $3="$$3 -fuse-ld=gold" ++ ;; + esac + + # If gcc knows about the stack protector, turn it off. diff --git a/ghc.spec b/ghc.spec index 74c9847..b52dfe0 100644 --- a/ghc.spec +++ b/ghc.spec @@ -56,7 +56,7 @@ Patch20: ghc-glibc-2.20_BSD_SOURCE.patch Patch21: ghc-arm64.patch Patch22: ghc-armv7-VFPv3D16--NEON.patch Patch23: ghc-7.8.3-Cabal-install-PATH-warning.patch -Patch24: ghc-7.8-arm-use-ld-gold.patch +Patch24: ghc-7.8-arm7-use-ld-gold-8976.patch Patch25: ghc-7.8-arm7_saner-linker-opt-handling-9873.patch Patch26: ghc-config.mk.in-Enable-SMP-and-GHCi-support-for-Aarch64.patch @@ -276,12 +276,9 @@ rm -r libffi-tarballs %patch26 -p1 -b .orig %endif -%ifarch armv7hl aarch64 -%patch24 -p1 -b .24~ -%endif - %ifarch armv7hl %patch22 -p1 -b .orig +%patch24 -p1 -b .24~ %patch25 -p1 -b .25~ %endif @@ -320,6 +317,11 @@ HADDOCK_DOCS = NO %if %{defined without_manual} BUILD_DOCBOOK_HTML = NO %endif +%ifarch aarch64 +# aarch64 dynlinking causing runtime IO problems +# https://ghc.haskell.org/trac/ghc/ticket/9673 +DYNAMIC_GHC_PROGRAMS=NO +%endif ## for verbose build output #GhcStage1HcOpts=-v4 ## enable RTS debugging: @@ -587,8 +589,7 @@ fi %changelog * Wed Apr 22 2015 Jens Petersen - 7.8.4-44 -- use ld.gold on aarch64 like for armv7 (Erik de Castro Lopo, #1195231) -- turn on SMP and ghci for aarch64 (Erik de Castro Lopo, #1195231) +- turn on SMP and ghci for aarch64 (Erik de Castro Lopo, #1203951) - use "make -j2" for s390 (#1212374) * Mon Mar 30 2015 Jens Petersen - 7.8.4-43