推定構築時間: 1.4 SBU 推定必要ディスクスペース 167 MB |
Binutils はオブジェクトファイルとアーカイブで働くリンカ、アセンブラ、その他のツールを含むソフトウェア開発ツールの集まりです。
インストールされるプログラム: addr2line, ar, as, c++filt,gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings 及び strip
インストールされるライブラリ: libiberty.a, libbfd.[a,so] andlibopcodes.[a,so]
Binutils は以下のパッケージに依存します: Bash, Coreutils, Diffutils, GCC, Gettext,Glibc, Grep, Make, Perl, Sed, Texinfo.
では、仮想ターミナル( PTYs )が chroot 環境の中で正しく動いているかを確かめる適切な時です。再び簡単なテストを行なうことで全てが正しく設定されていることを素早くチェックします。
expect -c "spawn ls" |
もしも
The system has no more ptys. Ask your system administrator to create more.
というメッセージが出るなら、お使いの chroot 環境は正しい PTY 操作に設定されていません。この場合は、問題を解決できるようになるまで Binutils と GCC へのテストは意味がありません。 the Section called prov と devpts ファイルシステムのマウント という節と、the Section called デバイスの作成 (Makedev-1.7) という節に戻って、問題を修正するのに所定の手順を踏んでください。
Note: この章の Binutils へのテストスイーツは必須だと考えています。どんな状況下でもテストを飛ばしてしまわないように注意しておきます。
このパッケージはデフォルト最適化フラグ( -march 及び -mcpu オプションを含む)を変更するとおかしなふるまいをすると知られています。 ですから、たとえば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるような何かの環境変数を定義したなら、Binutils を構築する時に、その設定を解除するか、修正するようお勧めします。
Binutils の文書は、ソースディレクトリとは別の構築専用ディレクトリでコンパイルするよう勧めています。
mkdir ../binutils-build cd ../binutils-build |
さてコンパイルのために Binutils を準備します。
../binutils-2.14/configure \ --prefix=/usr --enable-shared |
パッケージをコンパイルします。
make tooldir=/usr |
通常、tooldir(実行ファイルが入ることになるディレクトリ)は $(exec_prefix)/$(target_alias) に設定されていて、たとえば /usr/i686-pc-linux-gnu のようになります。 自分のシステムを構築するだけなので、/usr の中にこの対象となる特定のディレクトリは必要ありません。 システムがクロスコンパイル(たとえば PowerPC で実行されるコードを Intel マシンで生成するようなパッケージのコンパイル)に使われるなら、そのようなセットアップが使われることになります。
結果をテストします。
make check |
the Section called Binutils-2.14 のインストール in Chapter 5という節からのテストスイーツの注意書きはここでもまだとても役立ちます。万一何か疑問を持ったらそこを参照して確かめて下さい。
パッケージをインストールします。
make tooldir=/usr install |
いくつかのパッケージに必要とされる libiberty ヘッダファイルをインストールします。
cp ../binutils-2.14/include/libiberty.h /usr/include |