# 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

이 패키지의 자세한 내용은 여기를 참고하십시오.

Last Updated: 5/4/2021, 1:08:32 AM