Binutilsのビルド
Binutilsは、オブジェクトファイルを扱うためのコマンド群です。
アーカイブの管理を行うための ar コマンド、リンクを行うための ld コマンド、アセンブリ言語を翻訳するための as コマンドなどが含まれます。
コンパイル・リンクに使用する開発ツールは/tools以下のもの、つまり、前半の作業でビルド・インストールしたクロス開発用の実行ファイルです。
これにより、Fedoraに依存しないBinutilsをビルド・インストールすることができます。
ソースファイルの展開
ソースファイルを展開します。
cd $MYLINUX/sources
tar xvf binutils-2.25.tar.bz2
cd binutils-2.25
cd $MYLINUX/sources

tar xvf binutils-2.25.tar.bz2

cd binutils-2.25

ビルド用ディレクトリの準備
ビルド用ディレクトリを準備します。
mkdir -vp ../binutils-build
cd ../binutils-build
mkdir -vp ../binutils-build

cd ../binutils-build

Binutilsでは、ソースファイルが置かれているディレクトリでのビルドは推奨されていません。
別にビルド用のディレクトリを用意し、そこでビルドを行うことが推奨されています。
configure
configureを実行します。
CC=$MYLINUX_TARGET-gcc AR=$MYLINUX_TARGET-ar RANLIB=$MYLINUX_TARGET-ranlib ../binutils-2.25/configure \
--prefix=/tools \
--disable-nls \
--with-sysroot \
--with-lib-path=/tools/lib > ../../logs/configurelog.binutils 2>&1
CC=$MYLINUX_TARGET-gcc AR=$MYLINUX_TARGET-ar RANLIB=$MYLINUX_TARGET-ranlib ../binutils-2.25/configure \

--prefix=/tools \

--disable-nls \

--with-sysroot \

--with-lib-path=/tools/lib > ../../logs/configurelog.binutils 2>&1

1回目のBinutilsのビルドでは、ターゲットプラットフォーム(--target=)を指定しましたが、今回は指定しません。
configureコマンドの前に、CC=$MYLINUX_TARGET-gcc AR=$MYLINUX_TARGET-ar RANLIB=$MYLINUX_TARGET-ranlibと記述しています。
上記の記述は、/tools/binディレクトリにある i686-mylinux-linux-gnu-gcc、i686-mylinux-linux-gnu-ar、i686-mylinux-linux-gnu-ranlibを使用するように設定するための記述です。
それらの実行ファイルは、Binutilsの1回目のビルドとGCCの1回目のビルドでインストールされた実行ファイル、つまり、クロス開発用の開発ツールです。
configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
cat ../../logs/configurelog.binutils
cat ../../logs/configurelog.binutils

ビルド
ビルドを実行します。
make
make

ビルドが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。
インストール
インストールを行います。
make install
make install

インストールが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。
インストール後の追加作業
インストール後の追加作業を行います。
ld-new という名称のリンカを生成します。
cd ld
make clean
make LIB_PATH=/lib:/usr/lib
cp -va ld-new /tools/bin
cd ..
cd ld

make clean

make LIB_PATH=/lib:/usr/lib

cp -va ld-new /tools/bin

cd ..

なお、ld-newリンカは、一時的な開発ツールの構築中は使用しません。
一時的な開発ツールの構築が完了した時点でld-new から ld に改名し、利用されるようにします。
ld-newは、本来はブートストラップテスト用のリンカです。
ブートストラップテストとは、自分で自分を処理し、その結果を比較するテストのことです。
具体的には、まず、ld-newリンカ で ld1リンカ を生成します。
次に、ld1リンカ で ld2リンカ を生成します。
最後にld1リンカとld2リンカを比較し、一致することを確認します。
なお、この記事ではブートストラップテストは行いません。
LIB_PATH=/lib:/usr/libという記述は、リンカが探すライブラリのパスを指定するためのものです。
ld-new の実行時に、/lib および /usr/lib を参照させるために指定しています。
後始末
ディスクを圧迫しないよう、ビルド用のディレクトリを削除します。
cd ..
rm -fr binutils-2.25
rm -fr binutils-build
cd ..

rm -fr binutils-2.25

rm -fr binutils-build
