本パッケージの詳細は 「Binutils の構成」を参照してください。
Binutils パッケージは、リンカーやアセンブラーなどのようにオブジェクトファイルを取り扱うツール類を提供します。
全般的なコンパイル手順 と書かれた節に戻って再度説明をよく読み、重要事項として説明している内容をよく理解しておいてください。 そうすればこの後の無用なトラブルを減らすことができるはずです。
Binutils は一番最初にビルドするパッケージです。 ここでビルドされるリンカーやアセンブラーを使って、Glibc や GCC のさまざまな機能が利用できるかどうかを判別することになります。
Binutils のドキュメントでは Binutils をビルドする際に、ビルド専用のディレクトリを使ってビルドすることを推奨しています。
mkdir -v build cd build
本節以降で SBU値を示していきます。 これを活用していくなら、本パッケージの configure
から初めのインストールまでの処理時間を計測しましょう。 具体的には処理コマンドを time で囲んで time { ../configure ... && make
&& make install; }
と入力すれば実現できます。
Binutils をコンパイルするための準備をします。:
../configure --prefix=$LFS/tools \ --with-sysroot=$LFS \ --target=$LFS_TGT \ --disable-nls \ --enable-gprofng=no \ --disable-werror \ --enable-new-dtags \ --enable-default-hash-style=gnu
configure オプションの意味
--prefix=$LFS/tools
configure スクリプトに対して Binutils プログラムを $LFS/tools
ディレクトリ以下にインストールすることを指示します。
--with-sysroot=$LFS
クロスコンパイル時に、ターゲットとして必要となるシステムライブラリを $LFS より探し出すことを指示します。
--target=$LFS_TGT
変数 LFS_TGT
に設定しているマシン名は
config.guess
スクリプトが返すものとは微妙に異なります。 そこでこのオプションは、binutils
のビルドにあたってクロスリンカーをビルドするように configure スクリプトに指示するものです。
--disable-nls
一時的なツール構築にあたっては i18n 国際化は行わないことを指示します。
--enable-gprofng=no
これは gprofng のビルドを無効にします。 gprofng は一時的ツールにおいては不要であるからです。
--disable-werror
ホストのコンパイラーが警告を発した場合に、ビルドが中断することがないようにします。
--enable-new-dtags
これは実行ファイルや共有ライブラリに埋め込むライブラリ検索パスとして「runpath」を用いることをリンカーに対して指示します。 従来の「rpath」タグは用いません。 こうすると、動的リンクされた実行ファイルのデバッグが容易になり、いくつかのパッケージにおけるテストスイートにおいて発生する潜在的な問題を解決できるものとなります。
--enable-default-hash-style=gnu
リンカーにおいては、共有ライブラリや動的リンク実行ファイルのハッシュテーブルに関して、GNU スタイルのものと旧来の ELF 形式のものの双方を生成することがデフォルトとなっています。 ハッシュテーブルは、動的リンカーがシンボル検索を実現するためのものです。 LFS における動的リンカー(Glibc パッケージから提供されるもの)は、GNU スタイルのハッシュを常に用いることにしており、シンボル検索をより早くなるようにしています。 したがって旧来の ELF ハッシュテーブルは完全に無用です。 本指定はリンカーに対して、デフォルトでは GNU スタイルのハッシュテーブルしか生成しないように指示します。 こうすることで、パッケージビルドの際に、旧来の ELF ハッシュテーブルを生成する不要な時間、およびそれを収容するディスクスペースを軽減できます。
パッケージをコンパイルします。
make
パッケージをインストールします。
make install
本パッケージの詳細は 「Binutils の構成」を参照してください。