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에서 작성할 수 있는 도구에는 세 가지 유형이 있습니다.

  • 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 구현이 이를 자동으로 처리합니다. 특정 작업에 빌더의 컴파일러를 사용해야 한다면, 도구의 Step이 반환하는 ToolBuildResult에서 가져올 수 있습니다.

도구 유형과 관계없이 도구의 Step 구현에서 ToolBuildResult를 반환해야 하며, 그 안에서 ToolBuild를 사용해야 합니다.