Matt, sorry for sending this twice to your mail; I forgot to add the mailing list as CC the first time.
clang uses __clang__ as preprocessor "identifier". Be sure not to conditionalize the other branch on __GNUC__ or similar, as clang also defines it. Sincerely, Alex PS: For the curious (from lib/Lex/Preprocessor.cpp): // Compiler version introspection macros. DefineBuiltinMacro(Buf, "__llvm__=1"); // LLVM Backend DefineBuiltinMacro(Buf, "__clang__=1"); // Clang Frontend // Currently claim to be compatible with GCC 4.2.1-5621. DefineBuiltinMacro(Buf, "__APPLE_CC__=5621"); DefineBuiltinMacro(Buf, "__GNUC_MINOR__=2"); DefineBuiltinMacro(Buf, "__GNUC_PATCHLEVEL__=1"); DefineBuiltinMacro(Buf, "__GNUC__=4"); DefineBuiltinMacro(Buf, "__GXX_ABI_VERSION=1002"); DefineBuiltinMacro(Buf, "__VERSION__=\"4.2.1 (Apple Computer, Inc. " "build 5621) (dot 3)\""); On Mon, 2009-03-16 at 16:36 -0700, Matthew Dillon wrote: > :Hi, > : > :I've managed to get our GENERIC kernel to compile with llvm/clang. > There > :is still one temporary fix (at least until clang guys fix the related > :bug), but the kernel definitely compiles, boots and works stable. > :As a stress test I've done a buildworld, which it survived without > :problems. > :I've put everything about DragonFly and llvm/clang so far together on > :one page, http://leaf.dragonflybsd.org/~alexh/clang/clang.html in > case > :you are interested in details or even want to try it yourself. > : > :Sincerely, > :Alex > > I assume clang defines a preprocessor symbol identifying that > clang > is the compiler? What is that symbol? I would be happy to commit > that patch at the end suitably conditionalized for clang (just so > we > know the hack is for clang and can remove it later on when clang > is > fixed). > > -Matt > Matthew Dillon > <dil...@backplane.com>