Building GHC head with clang on Mavericks

Kazu Yamamoto (=?iso-2022-jp?B?GyRCOzNLXE9CSScbKEI=?=) kazu at iij.ad.jp
Wed Nov 20 04:08:42 UTC 2013


> Was there an issue if you used a wrapped clang and those patches or not?
> I'm really confused.

Even with GHC/clang-wrapper and alex/happy with Nick's patches, I
cannot build GHC head. (I'm not using GCC 42 at all in this case.)

AlexTemplate (pre-processed by clang) has linemarkers like this:

----
# 1 "<built-in>"
----

So, Lexer.hs generated from Lexer.x by alex also includes this one. 

Lexer.hs is CPP language extension. So, it is pre-processed again by
clang. Since clang-wrapper specifies "-x assembler-with-cpp", 
generated Lexcer.hscpp contains:

----
 # 1 "<built-in>"
----

GHC cannot handle this, so build fails.

My hack lets alex and happy not to produce linemarkers at all.

Is this explanation clear to you?

P.S.

If we modify clang-wrapper to not convert "-x c" to "-x
assembler-with-cpp", some other files which contains " #-}" cannot be
compiled.

--Kazu


More information about the ghc-devs mailing list