summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorErik de Castro Lopo <erik.decastrolopo@ambiata.com>2016-08-16 06:41:19 +1000
committerErik de Castro Lopo <erikd@mega-nerd.com>2016-08-16 06:42:22 +1000
commitda99a7f515cddb7e9eebd81283375c245e1625d4 (patch)
treedb57edfb3b28564fe0210ab669e64e0877bbc6fe /configure.ac
parent3551e622ab3a833589a069b473a4dfb3f171e5b8 (diff)
downloadhaskell-da99a7f515cddb7e9eebd81283375c245e1625d4.tar.gz
Darwin: Detect broken NM program at configure time
Some recent versions of XCode ship a broken version of `nm`. Detect this at configure time, and error out with a suggestion to rerun configure with a `--with-nm=...` argument. Test Plan: Test of Linux and OS X Reviewers: carter, hvr, austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2425
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac26
1 files changed, 26 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index acd33cf22c..ea3ba4efc8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -483,6 +483,32 @@ AC_SUBST([LdCmd])
dnl ** Which nm to use?
dnl --------------------------------------------------------------
FP_ARG_WITH_PATH_GNU_PROG([NM], [nm], [nm])
+
+if test "$TargetOS_CPP" = "darwin"
+then
+ AC_MSG_CHECKING(whether nm program is broken)
+ # Some versions of XCode ship a broken version of `nm`. Detect and work
+ # around this issue. See : https://ghc.haskell.org/trac/ghc/ticket/11744
+ nmver=$(${NM} --version | grep version | sed 's/ //g')
+ case "$nmver" in
+ LLVMversion7.3.0|LLVMversion7.3.1)
+ AC_MSG_RESULT(yes)
+ echo "The detected nm program is broken."
+ echo
+ echo "See: https://ghc.haskell.org/trac/ghc/ticket/11744"
+ echo
+ echo "Try re-running configure with:"
+ echo
+ echo ' ./configure --with-nm=$(xcrun --find nm-classic)'
+ echo
+ exit 1
+ ;;
+ *)
+ AC_MSG_RESULT(no)
+ ;;
+ esac
+fi
+
NmCmd="$NM"
AC_SUBST([NmCmd])