トップ > 最小システムの構築 > 新システムの作成(後半) >
Binutils

  

Binutilsのビルド

Binutilsは、オブジェクトファイルを扱うためのコマンド群です。 アーカイブの管理を行うための ar コマンド、リンクを行うための ld コマンド、アセンブリ言語を翻訳するための as コマンドなどが含まれます。

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

ソースファイルの展開

ソースファイルを展開します。


cd /sources
tar xvf binutils-2.25.tar.bz2
cd binutils-2.25

 

ビルド用ディレクトリの準備

ビルド用ディレクトリを準備します。


mkdir -vp ../binutils-build
cd ../binutils-build

 
  
Binutilsでは、ソースファイルが置かれているディレクトリでのビルドは推奨されていません。 別にビルド用のディレクトリを用意し、そこでビルドを行うことが推奨されています。

configure

configureを実行します。


../binutils-2.25/configure \
  --prefix=/usr \
  --enable-shared \
  --disable-werror > ../../logs/configurelog.binutils 2>&1

 

configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。


cat ../../logs/configurelog.binutils

 

ビルド

ビルドを実行します。


make tooldir=/usr

 

ビルドが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。

テスト

テストを行います。


make check 2>&1 | tee ../../logs/checklog.binutils

 

テストが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。


grep '^# of' ../../logs/checklog.binutils \
  | sed \
    -e '/# of expected passes/s/^/OK /' \
    -e '/# of unexpected passes/s/^/OK /' \
    -e '/# of expected failures/s/^/OK /' \
    -e '/# of unexpected successes/s/^/OK /' \
    -e '/# of unsupported tests/s/^/OK /' \
    -e '/# of untested testcases/s/^/OK /' \
    -e '/$^/d' \
  | sed \
    -e '/^# of/s/^/NG /' \
  | sort

 

以下のように、全ての行の行頭が "OK" となっていれば問題ありません

OK # of expected failures               4
OK # of expected passes         490
OK # of expected passes         95
OK # of expected passes         999
OK # of unsupported tests               12
OK # of unsupported tests               3
OK # of untested testcases              1

開発機の処理能力が低い場合には、テストの一部がタイムアウトすることがあります。

...(省略)...
Running /sources/binutils-2.25/gas/testsuite/gas/i386/i386.exp ...
WARNING: program timed out.
FAIL: gas/i386/rept
...(省略)...

上記のように "program timed out." となった場合はタイムアウトしています。

  
上記はログファイルの内容です。
  
仮想マシンで作業している場合には、ホストOSを再起動することでエラーを回避できる可能性があります。 ホストOSを再起動し、テストをやり直してください。

インストール

インストールを行います。


make tooldir=/usr install

 

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

ソースファイル付属文書のインストール

ソースファイルに付属している文書のインストールを行います。


cd ../binutils-2.25
mkdir -vp /usr/share/doc/binutils-2.25
cp -va COPYING                /usr/share/doc/binutils-2.25
cp -va COPYING.LIB            /usr/share/doc/binutils-2.25
cp -va COPYING3               /usr/share/doc/binutils-2.25
cp -va COPYING3.LIB           /usr/share/doc/binutils-2.25
cp -va ChangeLog              /usr/share/doc/binutils-2.25
cp -va MAINTAINERS            /usr/share/doc/binutils-2.25
cp -va README                 /usr/share/doc/binutils-2.25
cp -va README-maintainer-mode /usr/share/doc/binutils-2.25

 

後始末

ディスクを圧迫しないよう、ビルド用のディレクトリを削除します。


cd ..
rm -fr binutils-2.25
rm -fr binutils-build

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh binutils

 
  
  

まとめ

Binutilsは、オブジェクトファイルを扱うためのコマンド群です。

メニュー