데비안 chroot에서 gcc를 빌드하는 방법은 무엇입니까?

데비안 chroot에서 gcc를 빌드하는 방법은 무엇입니까?

나는 debootstrap최소한의 Debian 시스템(x86)을 설정한 적이 있습니다:

debootstrap wheezy /var/chroot http://ftp.debian.org/debian/

그런 다음 일부 패키지를 루트로 지정하고 설치했습니다.

apt-get install build-essential m4 flex bison libgmp-dev libmpfr-dev

저는 gcc 4.1.3을 구축하려고 합니다(이유는 묻지 마세요). 내 구성은 다음과 같습니다.

./configure --prefix=/usr/local --program-suffix=-4.1.3 --enable-languages=c,c++

몇 분 동안 실행된 후 다음 오류와 함께 실패합니다.

In file included from /usr/include/stdio.h:28,
                 from ../.././gcc/tsystem.h:90,
                 from ../.././gcc/crtstuff.c:68:
/usr/include/features.h:323:26: error: bits/predefs.h: No such file or directory
/usr/include/features.h:356:25: error: sys/cdefs.h: No such file or directory
/usr/include/features.h:388:23: error: gnu/stubs.h: No such file or directory
In file included from ../.././gcc/tsystem.h:90,
                 from ../.././gcc/crtstuff.c:68:
/usr/include/stdio.h:36:25: error: bits/types.h: No such file or directory
In file included from ../.././gcc/tsystem.h:90,
                 from ../.././gcc/crtstuff.c:68:

그러나 나는 stdio.h.so를 사용하여 컴파일할 수 있지만 분명히 gcc는 아닙니다.

gcc를 빌드하려면 chroot를 추가로 설치/구성해야 합니까?

답변1

이것을 설정한 후 빌드를 완료할 수 있었습니다.

export LIBRARY_PATH=/usr/lib/i386-linux-gnu
export C_INCLUDE_PATH=/usr/include/i386-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/i386-linux-gnu

편집: 이제 문제의 원인을 깨달았습니다. 시스템과 함께 제공되는 gcc는 /usr/include/i386-linux-gnu. 따라서 stage2에서 빌드가 실패합니다.

gcc에는 헤더 및 라이브러리 검색 경로를 설정할 수 있는 구성 옵션이 없는 것 같습니다. 따라서 gcc-4.1이 너무 오래되어(데비안의 다중 아키텍처 솔루션 이전) 최신 버전에서 이미 검색 중이라는 것을 알고 있는 것 같습니다 /usr/include/<target>.

관련 정보