summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-07-25 16:44:35 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-09-23 16:00:17 -0400
commitf48d747dd647111b2e78679eaf572006908a7a5a (patch)
tree3e3d611d32cd23422890b05c3d96936eea91f5c6
parentbe11120f56ebe7fa28bc362056733b35ae932e1e (diff)
downloadhaskell-f48d747dd647111b2e78679eaf572006908a7a5a.tar.gz
configure: Move nm search logic to new file
-rw-r--r--configure.ac34
-rw-r--r--m4/fp_find_nm.m440
2 files changed, 41 insertions, 33 deletions
diff --git a/configure.ac b/configure.ac
index a62f092877..c8ef451e5d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -642,39 +642,7 @@ FP_PROG_LD_FILELIST
dnl ** Which nm to use?
dnl --------------------------------------------------------------
-if test "$HostOS" != "mingw32"; then
- AC_CHECK_TARGET_TOOL([NM], [nm])
- if test "$NM" = ":"; then
- AC_MSG_ERROR([cannot find nm in your PATH])
- fi
-fi
-NmCmd="$NM"
-AC_SUBST([NmCmd])
-
-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://gitlab.haskell.org/ghc/ghc/issues/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://gitlab.haskell.org/ghc/ghc/issues/11744"
- echo
- echo "Try re-running configure with:"
- echo
- echo ' NM=$(xcrun --find nm-classic) ./configure'
- echo
- exit 1
- ;;
- *)
- AC_MSG_RESULT(no)
- ;;
- esac
-fi
+FP_FIND_NM
dnl ** Which objdump to use?
dnl --------------------------------------------------------------
diff --git a/m4/fp_find_nm.m4 b/m4/fp_find_nm.m4
new file mode 100644
index 0000000000..f3a75440eb
--- /dev/null
+++ b/m4/fp_find_nm.m4
@@ -0,0 +1,40 @@
+# FP_FIND_NM
+# ---------------------
+# Find nm and verify that it works.
+AC_DEFUN([FP_FIND_NM],
+[
+ if test "$HostOS" != "mingw32"; then
+ AC_CHECK_TARGET_TOOL([NM], [nm])
+ if test "$NM" = ":"; then
+ AC_MSG_ERROR([cannot find nm in your PATH])
+ fi
+ fi
+ NmCmd="$NM"
+ AC_SUBST([NmCmd])
+
+ 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://gitlab.haskell.org/ghc/ghc/issues/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://gitlab.haskell.org/ghc/ghc/issues/11744"
+ echo
+ echo "Try re-running configure with:"
+ echo
+ echo ' NM=$(xcrun --find nm-classic) ./configure'
+ echo
+ exit 1
+ ;;
+ *)
+ AC_MSG_RESULT(no)
+ ;;
+ esac
+ fi
+])
+