use ld.gold and re-enable dynamic linking of ghc programs

Reverting "revert ld.gold to armv7 only; static ghc progs for aarch64"

This reverts commit bc51500a32.
This commit is contained in:
Jens Petersen 2015-06-11 22:56:02 +09:00
parent bc51500a32
commit 31153d40ac
3 changed files with 51 additions and 25 deletions

View File

@ -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?

View File

@ -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.

View File

@ -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 <petersen@fedoraproject.org> - 7.8.4-45
- use ld.gold on aarch64 like for armv7 (Erik de Castro Lopo, #1195231)
* Wed Apr 22 2015 Jens Petersen <petersen@redhat.com> - 7.8.4-44
- turn on SMP and ghci for aarch64 (Erik de Castro Lopo, #1203951)
- use "make -j2" for s390 (#1212374)