[commit: ghc] wip/nfs-locking: Pass __GLASGOW_HASKELL__ to gcc when compiling directory.c (098c9ec)

git at git.haskell.org git at git.haskell.org
Thu Oct 26 23:23:38 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/nfs-locking
Link       : http://ghc.haskell.org/trac/ghc/changeset/098c9ece49564542cc180a6cba06577695243c7e/ghc

>---------------------------------------------------------------

commit 098c9ece49564542cc180a6cba06577695243c7e
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Fri Dec 11 00:24:01 2015 +0000

    Pass __GLASGOW_HASKELL__ to gcc when compiling directory.c


>---------------------------------------------------------------

098c9ece49564542cc180a6cba06577695243c7e
 src/Settings/Builders/Gcc.hs | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/Settings/Builders/Gcc.hs b/src/Settings/Builders/Gcc.hs
index 6a45740..3437a6c 100644
--- a/src/Settings/Builders/Gcc.hs
+++ b/src/Settings/Builders/Gcc.hs
@@ -1,14 +1,21 @@
 module Settings.Builders.Gcc (gccArgs, gccMArgs) where
 
 import Expression
+import GHC
 import Oracles
-import Predicates (stagedBuilder)
+import Predicates (package, stagedBuilder)
 import Settings
 
+-- TODO: I had to define symbol __GLASGOW_HASKELL__ as otherwise directory.c is
+-- effectively empty. I presume it was expected that GHC will be used for
+-- compiling all C files, but I don't know why. It seems that directory.c is the
+-- only file which requires special treatment when using GCC.
 gccArgs :: Args
-gccArgs = stagedBuilder Gcc ? mconcat [ commonGccArgs
-                                      , arg "-c", arg =<< getInput
-                                      , arg "-o", arg =<< getOutput ]
+gccArgs = stagedBuilder Gcc ?
+    mconcat [ commonGccArgs
+            , package directory ? arg "-D__GLASGOW_HASKELL__"
+            , arg "-c", arg =<< getInput
+            , arg "-o", arg =<< getOutput ]
 
 -- TODO: handle custom $1_$2_MKDEPENDC_OPTS and
 gccMArgs :: Args



More information about the ghc-commits mailing list