From da99a7f515cddb7e9eebd81283375c245e1625d4 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Tue, 16 Aug 2016 06:41:19 +1000 Subject: 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 --- configure.ac | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'configure.ac') 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]) -- cgit v1.2.1