From f48d747dd647111b2e78679eaf572006908a7a5a Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Sun, 25 Jul 2021 16:44:35 -0400
Subject: configure: Move nm search logic to new file

---
 m4/fp_find_nm.m4 | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 m4/fp_find_nm.m4

(limited to 'm4')

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
+])
+
-- 
cgit v1.2.1