I have replaced the llvm-gcc shipped with the Xcode by the latest version and I was wondering if I have missed something... (everything *seems* to work).
Here's what I did:
0. Checkout LLVM (and clang) + llvm-gcc
1. Build LLVM (with clang) and install into /Developer/usr/local :
# mkdir llvmobj
# cd llvmobj
# CC=gcc-4.2 CXX=g++-4.2 ../llvm/configure --prefix=/Developer/usr/local --enable-optimized
# make -j2
# make install
# cp -p ../llvm/tools/clang/utils/* /Developer/usr/local/bin/
The procedure you describe is quite complicated and invasive, in my
opinion. It might be useful someday to be able to use the compiler
binaries supplied by Apple; you never know...
I'm not at my Mac right now, but you should be able to achieve the
same results through two small steps: first, create a small shell
script that adds the directory containing libLTO to DYLD_LIBRARY_PATH.
Then, edit the project rules in Xcode to invoke this script instead of
the default LLVM GCC. The first step works quite well for me, but as I
don't use Xcode that often, I'm not sure I tried the second. As an
alternative, you should be able to edit your Xcode configuration to
default to the new path.
If you're interested, I can post the shell script I use.
I have replaced the llvm-gcc shipped with the Xcode by the latest
version and I was wondering if I have missed something... (everything
*seems* to work).
Here's what I did:
0. Checkout LLVM (and clang) + llvm-gcc
1. Build LLVM (with clang) and install into /Developer/usr/local :
# mkdir llvmobj
# cd llvmobj
# CC=gcc-4.2 CXX=g++-4.2 ../llvm/configure --prefix=/Developer/
usr/local --enable-optimized
# make -j2
# make install
# cp -p ../llvm/tools/clang/utils/* /Developer/usr/local/bin/
llvm tools shipped with Xcode does not include clang bits. And everything from /Developer/usr/local is stripped, except libLTO. However what you're doing is just fine, if you do not care about universal builds. FWIW, we use GNUmakefile and build_llvm script from llvm/utils/buildit to build llvm tools that are shipped with Xcode.
A couple of minor points I noticed:
You'll also want to edit /Developer/Library/Xcode/Plug-ins/llvm-gcc 4.2.xcplugin/Contents/Resources/llvmgcc42.xcspec and comment out the
because if you have llvm-gcc selected as a compiler in Xcode and you do scan-build for your project clang won't accept more than one -isysroot option and will fail the scan-build.
Naturally you'll also want to add /Developer/usr/bin and /Developer/usr/local/bin to your path