Use nm-classic instead of nm when host is Darwin
authorTomas Carnecky <tomas.carnecky@gmail.com>
Sat, 23 Jul 2016 22:03:59 +0000 (00:03 +0200)
committerTomas Carnecky <tomas.carnecky@gmail.com>
Sat, 23 Jul 2016 22:03:59 +0000 (00:03 +0200)
README.md
src/Settings/Builders/Configure.hs

index 4ce3b3a..d99d2b7 100644 (file)
--- a/README.md
+++ b/README.md
@@ -43,14 +43,6 @@ runs the `boot` and `configure` scripts automatically on the first build, so tha
 need to. Use `--skip-configure` to suppress this behaviour (see overview of command line
 flags below).
 
-* Also note on OS X newer versions of XCode ship with a broken `nm` tool
-([#11744](https://ghc.haskell.org/trac/ghc/ticket/11744)). One way to mitigate the
-problem is to add the following into your `UserSettings.hs`:
-  ````haskell
-  userArgs :: Args
-  userArgs = builder (Configure ".") ? arg "--with-nm=$(xcrun --find nm-classic)"
-  ````
-
 Using the build system
 ----------------------
 Once your first build is successful, simply run `build` to rebuild. Most build artefacts
index c95a5da..6482df1 100644 (file)
@@ -1,5 +1,7 @@
 module Settings.Builders.Configure (configureBuilderArgs) where
 
+import qualified System.Info as System
+
 import Base
 import Oracles.Config.Setting
 import Oracles.WindowsPath
@@ -23,4 +25,9 @@ configureBuilderArgs = mconcat
                , "--enable-static=yes"
                , "--enable-shared=no" -- TODO: add support for yes
                , "--host=" ++ targetPlatform ]
+
+    -- On OS X, use "nm-classic" instead of "nm" due to a bug in the later.
+    -- See https://ghc.haskell.org/trac/ghc/ticket/11744
+    , builder (Configure ".") ? System.os == "darwin" ?
+        arg "--with-nm=$(xcrun --find nm-classic)"
     ]