# GCC 10.2.0 (Pass 2)
GCC 패키지는 C, C++ 컴파일러를 포함하는 GNU 컴파일러 모음을 제곰합니다.
평균 빌드 시간 | 필요한 디스크 공간 |
---|---|
11 SBU | 3.7GB |
# 크로스 GCC의 설치
GCC의 첫 번째 빌드처럼, GMP, MPFR, MPC 패키지가 필요합니다. 각각의 패키지를 압축 해제한 다음 디렉토리 이름을 변경하십시오:
tar -xf ../mpfr-4.1.0.tar.xz
mv -v mpfr-4.1.0 mpfr
tar -xf ../gmp-6.2.1.tar.xz
mv -v gmp-6.2.1 gmp
tar -xf ../mpc-1.2.1.tar.gz
mv -v mpc-1.2.1 mpc
x86_64 호스트에서는, 64비트용 기본 디렉토리의 이름을 lib
로 설정하십시오:
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
별도의 빌드 디렉토리를 다시 만드십시오:
mkdir build
cd build
libgcc가 posix 스레드 지원과 함께 빌드되도록 심볼릭 링크를 만드십시오:
mkdir -pv $LFS_TGT/libgcc
ln -sv ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
GCC 빌드를 시작하기 전에, 기본 최적화 플래그를 덮어쓰는 모든 환경 변수(CFLAGS
, CXXFLAGS
, LDFLAGS
, MAKEFLAGS
등)를 삭제하십시오.
GCC 컴파일을 준비하십시오:
../configure \
--build=$(../config.guess) \
--host=$LFS_TGT \
--prefix=/usr \
CC_FOR_TARGET=$LFS_TGT-gcc \
--with-build-sysroot=$LFS \
--enable-initfini-array \
--disable-nls \
--disable-multilib \
--disable-decimal-float \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++
새 configure 옵션의 의미
--with-build-sysroot=$LFS
일반적으로
--host
를 사용하면 크로스 컴파일러가 GCC 빌드에 사용되고, 해당 컴파일러는$LFS
에서 헤더와 라이브러리를 찾아야 한다는 것을 알 수 있습니다. 그러나 GCC의 빌드 시스템은 이 위치를 알지 못하는 다른 도구를 사용합니다. 이 옵션은 호스트에서가 아니라$LFS
에서 필요한 파일을 찾도록 하는 데 필요합니다.--enable-initfini-array
이 옵션은 네이티브 컴파일러를 빌드할 때 자동으로 사용됩니다. 하지만, 여기서는 크로스 컴파일러를 빌드하기 때문에, 이 옵션을 별도로 설정해야 합니다.
패키지를 컴파일하십시오:
make
패키지를 설치하십시오:
make DESTDIR=$LFS install
마지막으로, 유틸리티 심볼릭 링크를 생성하십시오. 많은 프로그램과 스크립트는 프로그램을 일반적으로 유지하고 GNU C 컴파일러가 없을 수도 있는 모든 유닉스 시스템에서 사용 가능하도록 gcc
대신 cc
를 실행합니다. cc
를 실행하는 것을 시스템 관리자가 어떤 C 컴파일러를 설치할 지 자유롭게 결정할 수 있도록 합니다.
ln -sv gcc $LFS/usr/bin/cc
이 패키지의 자세한 내용은 여기를 참고하십시오.