summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-12-12 12:17:21 -0500
committerBen Gamari <ben@smart-cactus.org>2018-12-12 23:25:02 -0500
commit0d7fb471f368237462c700bac5500a90d29a1114 (patch)
tree36ca8b4cc4b4b1f9e72c08fde0f5bb34e38ccd18
parentb2227af3205534c2bdf3e93ed2d1cf1da5864a77 (diff)
downloadhaskell-0d7fb471f368237462c700bac5500a90d29a1114.tar.gz
configure: Disable LD_NO_GOLD logic when cross-compiling
This is generally terrible: see #16025. In short, we previously just blindly used an un-prefixed ld for LD_NO_GOLD. This is blatantly wrong. Ideally we would actually verify that ld.gold is indeed broken (by binutils #22266) before insisting on using another linker but sadly we cannot do so when cross-compiling since this would require running host code. For now we simply disable the LD_NO_GOLD logic when cross-compiling and hope that the user has verified that their ld.gold isn't affected by #22266.
-rw-r--r--aclocal.m46
1 files changed, 5 insertions, 1 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index 447fd6119f..7aa3fb468a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -2408,7 +2408,11 @@ AC_DEFUN([FIND_LD],[
FP_CC_LINKER_FLAG_TRY(bfd, $2) ;;
"GNU gold"*)
FP_CC_LINKER_FLAG_TRY(gold, $2)
- LD_NO_GOLD=ld
+ if test "$cross_compiling" = "yes"; then
+ AC_MSG_NOTICE([Using ld.gold and assuming that it is not affected by binutils issue 22266]);
+ else
+ LD_NO_GOLD=ld;
+ fi
;;
"LLD"*)
FP_CC_LINKER_FLAG_TRY(lld, $2) ;;