本パッケージの詳細は 6.12.2. 「Binutils の構成」 を参照してください。
Binutils パッケージは、リンカやアセンブラなどのようにオブジェクトファイルを取り扱うツール類を提供します。
前の節に戻って再度説明をよく読み、重要事項として説明している内容をよく理解しておいてください。 そうすればこの後の無用なトラブルを減らすことができるはずです。
Binutils は一番最初にビルドするパッケージです。 ここでビルドされるリンカやアセンブラを使って、Glibc や GCC の様々な機能が利用できるかどうかを判別することになります。
Binutils のドキュメントでは Binutils をビルドする際に、ソースディレクトリではなく、ビルド専用のディレクトリを使ってビルドすることを推奨しています。
mkdir -v ../binutils-build cd ../binutils-build
本節以降で SBU値を示していきます。 これを活用していくなら、本パッケージの configure
から初めのインストールまでの処理時間を計測しましょう。 具体的には処理コマンドを time で囲んで time { ./configure ... && make
&& make install; }
と入力すれば実現できます。
Binutils をコンパイルするための準備をします。
../binutils-2.20/configure \ --target=$LFS_TGT --prefix=/tools \ --disable-nls --disable-werror
configure オプションの意味:
--target=$LFS_TGT
変数 LFS_TGT
に設定しているマシン名は
config.guess
スクリプトが返すものとは微妙に異なります。 そこでこのオプションは、Binutils
のビルドにあたってクロスリンカをビルドするように configure スクリプトに指示するものです。
--prefix=/tools
configure スクリプトに対して Binutils プログラムを /tools
ディレクトリ以下にインストールすることを指示します。
--disable-nls
一時的なツール構築にあたっては i18n 国際化は行わないことを指示します。
--disable-werror
ホストのコンパイラが警告を発した場合に、ビルドが中断することがないようにします。
パッケージをコンパイルします。
make
コンパイルが終了しました。通常ならここでテストスイートを実行します。 しかしシステム構築初期のこの段階ではテストスイートのフレームワーク (Tcl, Expect, DejaGNU) が準備できていません。 さらにこの時点で生成されるプログラムは、すぐに次の生成作業によって置き換えられますから、 この時点でテストを実行することはあまり意味がありません。
x86_64 にて作業をしている場合は、ツールチェーンの切り分けを適切に行うためにシンボリックリンクを作成します。
case $(uname -m) in x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
パッケージをインストールします。
make install
本パッケージの詳細は 6.12.2. 「Binutils の構成」 を参照してください。