+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 5.8. ツールチェーンの調整
- </title>
- <link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
- <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- </head>
- <body class="lfs" id="lfs-6.8">
- <div class="navheader">
- <h4>
- Linux From Scratch - Version 6.8
- </h4>
- <h3>
- 第5章 一時的環境の構築
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="glibc.html" title="Glibc-2.13">前のページ</a>
- <p>
- Glibc-2.13
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="binutils-pass2.html" title=
- "Binutils-2.21 - 2回め">次のページ</a>
- <p>
- Binutils-2.21 - 2回め
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter05.html" title=
- "第5章 一時的環境の構築">上に戻る</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Linux From Scratch - Version 6.8">ホーム</a>
- </li>
- </ul>
- </div>
- <div class="sect1" lang="ja" xml:lang="ja">
- <h1 class="sect1">
- <a id="ch-tools-adjusting" name="ch-tools-adjusting"></a>5.8.
- ツールチェーンの調整
- </h1>
- <p>
- 一時的な C ライブラリをインストールしました。 これ以降の章でコンパイルしていくツール類は、このライブラリをリンクしていきます。
- リンクを行うにはクロスコンパイラのスペックファイルを修正して <code class="filename">/tools</code>
- ディレクトリにあるダイナミックリンカを指し示すようにします。
- </p>
- <p>
- 具体的にはコンパイラの 「<span class="quote">スペック (specs)</span> 」
- ファイルをダンプして、これが参照されるディレクトリに置きます。 以下では単純な <span class=
- "command"><strong>sed</strong></span> コマンドによる置換によって GCC
- が利用するダイナミックリンカを変更します。 ここで為すことは <code class="filename">/lib</code>
- ディレクトリ内 (ホストが 64 ビットなら <code class="filename">/lib64</code> ディレクトリ内)
- のダイナミックリンカファイルへの参照を探し出し、これを新しい <code class="filename">/tools</code>
- への参照へと調整することです。
- </p>
- <p>
- 作業を正確に行うために、以下のコマンド実行にあたってはコピー・ペーストによりコマンド入力を行うことをお勧めします。
- そしてスペックファイルを開いて、ダイナミックリンカの配置場所を示す記述がすべて適切に調整されていることを確認してください。 必要に応じて
- <a class="xref" href="toolchaintechnotes.html" title=
- "5.2. ツールチェーンの技術的情報">5.2.「ツールチェーンの技術的情報」</a>
- を読み直し、ダイナミックリンカのデフォルト名を確認してください。
- </p>
- <pre class="userinput">
-<kbd class=
-"command">SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs
-$LFS_TGT-gcc -dumpspecs | sed \
- -e 's@/lib\(64\)\?/ld@/tools&@g' \
- -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS
-echo "New specs file is: $SPECS"
-unset SPECS</kbd>
-</pre>
- <div class="admon caution">
- <img alt="[注意]" src="../images/caution.png" />
- <h3>
- 注意
- </h3>
- <p>
- この時点において新しく構築したツールチェーンの基本的な (コンパイルやリンクなどの)
- 機能が正しく動作していることを確認する必要があります。 健全性検査 (sanity check) を行うために以下を実行してください。
- </p>
- <pre class="userinput">
-<kbd class="command">echo 'main(){}' > dummy.c
-$LFS_TGT-gcc -B/tools/lib dummy.c
-readelf -l a.out | grep ': /tools'</kbd>
-</pre>
- <p>
- 問題なく動作した場合はエラーがなかったということで、最後のコマンドから出力される結果は以下のようになるはずです。
- </p>
- <pre class="screen">
-<code class=
-"computeroutput">[Requesting program interpreter: /tools/lib/ld-linux.so.2]</code>
-</pre>
- <p>
- ダイナミックリンカのディレクトリは <code class="filename">/tools/lib</code> に、あるいは
- 64 ビットマシンであれば <code class="filename">/tools/lib64</code> になります。
- </p>
- <p>
- コマンドの出力結果が上と異なっていたり、あるいは何も出力されなかった場合は、何かがおかしいことを意味します。
- どこに問題があるのか調査・再試行を行って解消してください。 解決せずにこの先に進まないでください。
- おかしいとすれば、上で行ったスペックファイルの修正に何か問題があったのかもしれません。
- もしそうであったなら、スペックファイルの修正を、コマンドのコピー・ペースト作業に十分注意して再度行ってください。
- </p>
- <p>
- すべてが終了したらテストファイルを削除します。
- </p>
- <pre class="userinput">
-<kbd class="command">rm -v dummy.c a.out</kbd>
-</pre>
- </div>
- <div class="admon note">
- <img alt="[注記]" src="../images/note.png" />
- <h3>
- 注記
- </h3>
- <p>
- 次節にてビルドする Binutils では、ツールチェーンが正しくビルドできているかどうかを改めてチェックします。 もし
- Binutils のビルドが失敗したなら、それはここまでに行ってきた Binutils、GCC、Glibc
- のビルドに失敗していることを意味します。
- </p>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="glibc.html" title="Glibc-2.13">前のページ</a>
- <p>
- Glibc-2.13
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="binutils-pass2.html" title=
- "Binutils-2.21 - 2回め">次のページ</a>
- <p>
- Binutils-2.21 - 2回め
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter05.html" title=
- "第5章 一時的環境の構築">上に戻る</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Linux From Scratch - Version 6.8">ホーム</a>
- </li>
- </ul>
- </div>
- </body>
-</html>