GCCは、GNUプロジェクトによる各種プログラミング言語用のコンパイラ群です。 当初はC言語用のコンパイラでしたが、現在は、C++、Java、Fortranなど多くの言語に対応しています。
/tools以下の開発ツールでコンパイル・リンクされるため、Fedoraに依存しないGCCがビルド・インストールされます。
ソースファイルを展開します。
cd $MYLINUX/sources tar xvf gcc-4.9.2.tar.bz2 cd gcc-4.9.2
展開したソースファイルを修正します。
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > `dirname $($MYLINUX_TARGET-gcc -print-libgcc-file-name)`/include-fixed/limits.h for file in $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h) ; do sed -i -e 's,/lib\(64\)\?\(32\)\?/ld,/tools&,g' -e 's,/usr,/tools,g' $file echo ' #undef STANDARD_STARTFILE_PREFIX_1 #undef STANDARD_STARTFILE_PREFIX_2 #define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/" #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file done
展開したソースファイルに他のソフトウェアのソースファイルを追加します。
tar xvf ../gmp-5.1.3.tar.xz mv gmp-5.1.3 gmp tar xvf ../mpfr-3.1.2.tar.xz mv mpfr-3.1.2 mpfr tar xvf ../mpc-1.0.3.tar.gz mv mpc-1.0.3 mpc
ビルド用ディレクトリを準備します。
mkdir -vp ../gcc-build cd ../gcc-build
configureを実行します。
CC=$MYLINUX_TARGET-gcc CXX=$MYLINUX_TARGET-g++ AR=$MYLINUX_TARGET-ar RANLIB=$MYLINUX_TARGET-ranlib ../gcc-4.9.2/configure \ --prefix=/tools \ --enable-languages=c,c++ \ --disable-multilib \ --disable-libgomp \ --disable-libstdcxx-pch \ --disable-bootstrap \ --with-local-prefix=/tools \ --with-native-system-header-dir=/tools/include > ../../logs/configurelog.gcc 2>&1
configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
cat ../../logs/configurelog.gcc
インストール後の追加作業を行います。 gcc に cc という名称のシンボリックリンクを与えます。
ln -vsf gcc /tools/bin/cc
今後の作業でビルドするソフトウェアの中にはコンパイラを cc で呼び出すものもあるかもしれません。 そこで、gcc に cc という名称のシンボリックリンクを与えています。
ディスクを圧迫しないよう、ビルド用のディレクトリを削除します。
cd .. rm -fr gcc-4.9.2 rm -fr gcc-build