Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bootstrap でツールを書く

bootstrap で書けるツールには 3 種類あります。

  • Mode::ToolBootstrap

    ツリー内コンパイラから何も必要とせず、stage0 の rustc で実行できるツールにはこれを使用します。 出力は “bootstrap-tools” ディレクトリに配置されます。 このモードは、ターゲットライブラリを含め、stage0 コンパイラだけでビルドされる汎用ツール向けで、 stage 0 でのみ機能します。

  • Mode::ToolStd

    ローカルでビルドされた std に依存するツールにはこれを使用します。 出力は “stageN-tools” ディレクトリに入ります。 このモードはほとんど使われず、主に libtest を必要とする compiletest 用です。

  • Mode::ToolRustcPrivate

    rustc_private メカニズムを使用するツール、 つまりローカルでビルドされた rustc とその rlib アーティファクトに依存するツールにはこれを使用します。 これは他のモードよりも複雑です。 なぜなら、そのツールは rustc に使用されたものと同じコンパイラでビルドされ、 “stageN-tools” ディレクトリに配置されなければならないためです。 Mode::ToolRustcPrivate を選択すると、 ToolBuild の実装がこれを自動的に処理します。 何か特定の用途で builder のコンパイラを使用する必要がある場合は、 ツールの Step から返される ToolBuildResult から取得できます。

ツールの種類にかかわらず、 ツールの Step 実装から ToolBuildResult を返し、 その中で ToolBuild を使用する必要があります。