문서의 이전 판입니다!


Linux From Scratch - Version 12.4

이전
개요

다음
GCC-15.2.0 - Pass 1

Binutils 패키지에는 링커, 어셈블러 및 오브젝트 파일을 처리하는 도구가 포함되어 있습니다.

빌드 예상시간:
필요한 사용량:

1 SBU
678 MB

5.2.1 크로스 Binutils 설치

다시 돌아가서 이후 컴파일 진행 방법의 내용를 다시 읽어보세요. 중요 표시된 부분을 이해하면 나중에 생길 문제를 줄일 수 있습니다.

Binutils가 가장 먼저 컴파일되는 패키지가 되는 것이 중요합니다. Glibc와 GCC 모두 사용 가능한 링커와 어셈블러에 대해 다양한 테스트를 수행하여 기능을 활성화할 수 있기 때문입니다.

Binutils 문서에서는 별도의 빌드 디렉터리에서 빌드할 것을 권장합니다.

mkdir -v build
cd build

책의 나머지 부분에 나열된 SBU 값들이 정확도를 높이려면, 구성부터 설치 완료까지 이 패키지를 빌드하는 데 걸리는 시간을 측정하세요. 이를 쉽게 하려면, 다음과 같이 time 명령어로 나머지 명령을 묶어주세요.

time { ../configure ... && make && make install; }

이제 Binutils 패키지 컴파일을 준비합니다.

../configure --prefix=$LFS/tools \
             --with-sysroot=$LFS \
             --target=$LFS_TGT   \
             --disable-nls       \
             --enable-gprofng=no \
             --disable-werror    \
             --enable-new-dtags  \
             --enable-default-hash-style=gnu

configure 옵션 설명

다른 패키지들과 다르게 Binuilt 패키지는 아래에 나오는 모든 옵션이 ./configure –help으로 나오지 않습니다. 예를 들어 –with-sysroot 옵션을 찾으려면 ld/configure –help 실행해야 합니다. 설정 가능한 모든 옵션을 한번에 보려면 ./configure –help=recursive를 사용하세요.

  • –prefix=$LFS/tools
    configure 스크립트가 $LFS/tools 디렉터리에 Binutils 프로그램을 설치할 준비를 하도록 알려줍니다.
  • –with-sysroot=$LFS 크로스 컴파일 시 빌드 시스템이 $LFS에서 타겟 시스템 라이브러리를 찾도록 지시합니다.
  • –target=$LFS_TGT
    LFS_TGT 변수의 머신 설명이 config.guess 스크립트에서 반환하는 값과 약간 다르기 때문에, configure 스크립트에 Vinutil의 빌드 시스템을 조정하여 크로스 링커를 만들도록 지시합니다.
  • –disable-nls
    임시 도구에 i18n이 필요하지 않으므로 국제화를 비활성화합니다.
  • –enable-gprofng=no
    임시 도구에는 필요하지 않은 gprofng 빌드를 비활성화합니다.
  • –disable-werror
    호스트의 컴파일러에서 경고가 발생했을 때 빌드가 중단되는 것을 방지합니다.
  • –enable-new-dtags
    이로 인해 링커는 전통적인 “rpath” 태그 대신 실행 파일과 공유 라이브러리에 라이브러리 검색 경로를 삽입할 때 “runpath” 태그를 사용합니다. 동적으로 연결된 실행 파일을 디버깅하기 쉽게 해주고, 일부 패키지의 테스트 스위트에서 발생할 수 있는 문제를 우회할 수 있게 해줍니다.
  • –enable-default-hash-style=gnu
    기본적으로 링커는 GNU 스타일 해시 테이블과 공유 라이브러리 및 동적 연결 실행 파일에 대한 고전 ELF 해시 테이블을 모두 생성합니다. 해시 테이블은 심볼 조회를 수행하는 동적 링커만을 위한 것입니다. LFS에서는 동적 링커(Glibc 패키지에서 제공)가 항상 GNU 스타일의 해시 테이블을 사용하는데, 이 해시 테이블이 쿼리가 더 빠릅니다. 그래서 고전적인 ELF 해시 테이블은 전혀 쓸모가 없습니다. 이 옵션으로로 인해 링커는 GNU 스타일 해시 테이블만 생성하므로, 패키지를 만들 때 고전적인 ELF 해시 테이블을 생성하느라 시간을 낭비하거나 디스크 공간을 낭비하지 않을 수 있습니다.

이어서 패키지를 컴파일 합니다.

make
패키지를 설치합니다.
make install

이 패키지에 상세한 정보는 8.20.2. Binutils 구성


이전
개요

다음
GCC-15.2.0 - Pass 1

  • linuxfromscratch/12.4/linux_from_scratch/045-binutils-2.45_-_pass_1.1767750998.txt.gz
  • 마지막으로 수정됨: 2026/01/07 01:56
  • 저자 baecy