Switched to Clang

A recent conversation in #devtools

<nigelb> My current build segfaults when I touch the webconsole. <robcee> that's no good <nigelb> That's counter productive when I'm patching the webconsole. <robcee> are you on linux? <nigelb> Ya. <robcee> are you building with clang? <nigelb> No I'm not. <nigelb> gcc forever <3 . a little while later . <nigelb> Wait, that's a gcc bug? <msucan> yes <nigelb> Sadness. <nigelb> gcc </3 <nigelb> its time to move on. <robcee> it was a good run 

So, yeah, I’ve switched to clang on Ubuntu. A quick rundown of what I did for any Ubuntu or other Linux users. The instructions are pretty much the same as what ehsan posted for Mac, except I didn’t install clang system-wide.

So, here’s what I did.

mkdir clang cd clang svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/trunk clang cd ../../ mkdir build cd build ../llvm/configure --enable-optimized --disable-assertions make 

This got the clang binary in Release/bin. I use ZSH, so I added that folder to my $PATH variable like so

export PATH=$PATH:$HOME/clang/build/Release/bin 

The last bit is to add the following to your .mozconf

export CC=clang export CXX=clang++ 

Note – If you’re working on Ubuntu 10.04 with gcc version 4:4.4.3–1ubuntu1, it might be essential to use clang and not gcc. As of now the segfaults are attributed to gcc. For more details, see bug 694594






Leave a Reply