diff options
author | Erik de Castro Lopo <erik.decastrolopo@ambiata.com> | 2016-08-16 06:41:19 +1000 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2016-08-16 06:42:22 +1000 |
commit | da99a7f515cddb7e9eebd81283375c245e1625d4 (patch) | |
tree | db57edfb3b28564fe0210ab669e64e0877bbc6fe /configure.ac | |
parent | 3551e622ab3a833589a069b473a4dfb3f171e5b8 (diff) | |
download | haskell-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.ac | 26 |
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]) |