[LLVMdev] switching to llvm-g++ as the host compiler

Stuart Hastings stuart at apple.com
Mon Jul 6 15:47:00 PDT 2009

IANACE (I Am Not A Configury Expert :-), but I've been asked to  
reconfigure LLVM and LLVM-GCC to build with LLVM-GCC (perhaps more  
accurately, LLVM-G++).

The patches to do this are short.  In the LLVM tree, this suffices; it  
looks for LLVM-GCC first, and if that fails, falls back to GCC:

Index: llvm.test/autoconf/configure.ac
--- llvm.test/autoconf/configure.ac     (revision 74729)
+++ llvm.test/autoconf/configure.ac     (working copy)
@@ -601,8 +601,8 @@

  dnl Check for compilation tools
+AC_PROG_CC([llvm-gcc gcc])
+AC_PROG_CXX([llvm-g++ g++])


Likewise, in our LLVM-GCC tree, this seems to work for Darwin/x86:

Index: llvm-gcc.test/configure.in
--- llvm-gcc.test/configure.in  (revision 74729)
+++ llvm-gcc.test/configure.in  (working copy)
@@ -993,10 +993,10 @@
    # APPLE LOCAL begin dynamic-no-pic
-    # gcc can default to x86_64 code generation, avoid that
+    # llvm-gcc can default to x86_64 code generation, avoid that
      if test "${build}" = "${host}"; then
-      CC="${CC-gcc} -m32"
-      CXX="${CXX-g++} -m32"
+      CC="${CC-llvm-gcc} -m32"
+      CXX="${CXX-llvm-g++} -m32"
    # APPLE LOCAL end dynamic-no-pic

I've done some light testing of these, and I'm convinced they will  
work, at least for those of us on Darwin.  The latter patch is Darwin/ 
x86-specific, and hopefully non-contentious.  I would hope the former  
patch wouldn't break anybody, but I thought I'd ask before applying it.

Of course, I'm omitting the diffs resulting from the re-auto- 
confiscation of both trees.  I was obliged to tweak all the version  
checks in the LLVM file AutoRegen.sh in order to get it to run :-),  
but no errors turned up after my hacking.  (Should AutoRegen.sh be  
updated too?)

Comments invited; if there's a better approach, please share.


More information about the llvm-dev mailing list