LFS Book: 5.7.Adjusting the Toolchain
大晦日の本日はLFS構築記4日目として暫定環境の調整から作業を開始します。
前回Glibcのインストールが終ったので、以降の作業でインストールするパッケージはこの暫定環境用にインストールしたGlibcにリンクするように調整します。また、GCCについてもスペックファイルを編集します。
先ず、以前残しておいたBinutilsのビルド用ディレクトリに移動し、リンカのみをインストールします。実行コマンドは以下の通りです。
$ cd $LFS/sources/binutils-build
$ make -C ld install
この時点でBinutilsのソースディレクトリとビルド用ディレクトリは削除して構いません。Binutilsはこの後のLFSの本システム構築時にもビルドするので、後々の混乱を避けるためにも削除しておくことをお奨めします。
次に、スペックファイルを編集します。実行コマンドは以下の通りです。最後のコマンドはホスト側のインクルードファイルがGCC固有のインクルードファイルへのパスを見つけてしまう可能性があるため、余計なヘッダファイルを削除しています。
$ SPECFILE=`gcc --print-file specs` &&
>sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
>$SPECFILE > tempspecfile &&
>mv -f tempspecfile $SPECFILE &&
>unset SPECFILE
$ rm -vf /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h}
最後に簡単なダミープログラムを使用してここまでの暫定環境が正しく動作しているか確認します。テスト方法は以下の通りです。
$ echo 'main(){}' > dummy.c
$ cc dummy.c
$ readelf -l a.out | grep ': /tools'
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
上記の例の様に、ダイナミックリンカld-linux.so.2のパスが/tools/libであることを確認します。
コメントする