diff --git a/ghc-7.8-arm-use-ld-gold.patch b/ghc-7.8-arm-use-ld-gold.patch new file mode 100644 index 0000000..46d572f --- /dev/null +++ b/ghc-7.8-arm-use-ld-gold.patch @@ -0,0 +1,42 @@ +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 deleted file mode 100644 index 6852db5..0000000 --- a/ghc-7.8-arm7-use-ld-gold-8976.patch +++ /dev/null @@ -1,17 +0,0 @@ -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 b52dfe0..a2ddbf1 100644 --- a/ghc.spec +++ b/ghc.spec @@ -35,7 +35,7 @@ Version: 7.8.4 # (sometimes after a major release) # - minor release numbers for a branch should be incremented monotonically # xhtml moved from haskell-platform to ghc-7.8.3 -Release: 44%{?dist} +Release: 45%{?dist} Summary: Glasgow Haskell Compiler License: %BSDHaskellReport @@ -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-arm7-use-ld-gold-8976.patch +Patch24: ghc-7.8-arm-use-ld-gold.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,9 +276,12 @@ 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 @@ -317,11 +320,6 @@ 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: @@ -588,6 +586,9 @@ fi %changelog +* Thu Jun 11 2015 Jens Petersen - 7.8.4-45 +- use ld.gold on aarch64 like for armv7 (Erik de Castro Lopo, #1195231) + * Wed Apr 22 2015 Jens Petersen - 7.8.4-44 - turn on SMP and ghci for aarch64 (Erik de Castro Lopo, #1203951) - use "make -j2" for s390 (#1212374)