LFS 책을 따르려고 하는데 이 문제를 해결할 수 없습니다. 대상 파티션의 5장에서 GCC 컴파일러를 구축했는데 왜 chroot 모드로 들어간 후 다시 수행해야 합니까? 요점은 무엇입니까? 이전 버전을 사용하지 않는 이유는 무엇입니까? GlibC에서도 마찬가지입니다.
답변1
chroot
나는 빌드가 GCC와 GlibC를 빌드하기 위한 모든 보조 파일과 프로그램이 존재하고 "빌드 시스템"과 독립적인지 확인한다고 믿습니다 . 종종 컴파일러를 구축하는 것은 결코 간단하지 않습니다. 나는 GCC가 bison
다양한 flex
헤더 파일, 구성 파일, 그리고 그 밖의 파일을 요구할 것이라고 믿습니다 . 빌드는 chroot
빌드 시스템(LFS 아님)과 자체 호스팅되어야 하는 최종 LFS 설치 사이의 중간 단계일 뿐입니다.
GCC 런타임 환경( PATH
및 LD_LIBRARY_PATH
기타 구성 항목)의 복잡성으로 인해 초기 GCC 컴파일러에서 일부 부작용이 누출될 수도 있습니다. 논문을 찾을 수는 없지만 모든 이상한 버그와 종속성이 표면화되기 위해 이전 세대와 함께 컴파일하는 데 최대 5세대의 컴파일러가 걸렸을 수 있다는 것을 기억합니다.
답변2
a를 입력한다는 것은 아무것도 설치되지 않고 아무것도 작동하지 않는 빈 시스템을 의미하므로 5장에서 수행한 작업을 컴파일하기 위한 도구가 필요합니다. 이것이 chroot
당신이 나에게 도구 디렉토리를 지적한 이유이기도 합니다.chroot
/tools/bin/env
PATH
gcc
6장은 5장의 도구를 사용하여 패키지를 컴파일하는 것을 포함하여 패키지를 다운로드하고 설치하여 chroot를 채웁니다 .