llvm-gccをamd64にインストール
比較的面倒*1。
glibcのアップデート
gcc4.3をコンパイルするために、glibcを2.7-r2以上にアップデートする。これは現時点ではmaskedなので、=sys-libs/glibc-2.7-r2 ~amd64のようにpackage.keywordsに追記する必要があるかもしれない。(emerge -s glibc等してインストールされるはずのバージョンを調べる)
glibcのアップデートはそれなりにリスクのある仕事なのでそもそもgentooをLLVMのホストに使うのは向かないかもしれない。
gcc4.3のビルド
gentooのgcc4.1はllvmを正常にビルドできないので、gccを普通にインストールする。portageから導入するのが好ましいが、諸般の事情で通常のgcc配布からインストールした。
gccのビルドには作法があり、gccを展開したディレクトリでconfigureしてはいけない。別のフォルダを同じレベルに掘り、
../gcc-4.3.2/configure --prefix=/opt/gcc43 --enable-languages=c,c++
のようにする。
当然、インストール後、llvmやllvm-gccをビルドする前にPATHとLD_LIBRARY_PATHを通さなければならない。
llvmのビルド
注意すべき点は基本的にgcc4.3以降を使用することのみ。
llvmのMakefileは適切に書かれていないのでmake -j2といった並列ビルドを使用してはいけない。これはllvm-gccにもおそらく当てはまる。
./configure --prefix=/opt/llvm24
llvm-gccのビルド
64bitアーキテクチャでのgentooは/usr/libに64bitライブラリを保持しているので、README.LLVMの指示通り、gcc/config/i386/t-linux64を書き換える必要がある。
必ず--program-prefixで適切なプレフィックスを付ける。多くの場合はシステム本来のgccを継続して使いたいはずで、そのような場合に、システムのgccとllvm-gccの提供するgccの区別がつかなくなるかもしれない。
../llvm-gcc4.2-2.4.source/configure --program-prefix=llvm- --enable-llvm=/opt/llvm24 \ --prefix=/opt/llvm24 --enable-languages=c,c++
*1:というか普段ディストリビューションのCコンパイラなんか使わないから気づかなかった。。