이 패키지에 대한 자세한 정보는 6.18.2절. “Binutils의 내용.”에서 찾을 수 있다.
Binutils 패키지는 링커, 어셈블러 및 객체 파일을 처리하기 위한 기타 도구를 포함한다.
다시 별도의 빌드 디렉토리를 생성한다:
mkdir -v build cd build
Binutils 컴파일을 준비한다:
CC=$LFS_TGT-gcc \ AR=$LFS_TGT-ar \ RANLIB=$LFS_TGT-ranlib \ ../configure \ --prefix=/tools \ --disable-nls \ --disable-werror \ --with-lib-path=/tools/lib \ --with-sysroot
새 Configure 옵션들의 의미:
CC=$LFS_TGT-gcc
AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib
이것은 실사용할 Binutils의 네이티브 빌드이기 때문에, 이 옵션을 설정하여 빌드 시스템으로 하여금 호스트 시스템이 아닌 크로스 컴파일러와 관련 도구들을 사용하게끔 한다.
--with-lib-path=/tools/lib
Binutils를 컴파일하는
동안 라이브러리
검색 경로를
지정하도록 configure
스크립트에
지시해서 /tools/lib
가 링커에
전달되도록 한다.
이렇게 해서
링커가 호스트의
라이브러리
디렉토리를
검색하는 것을
방지할 수 있다.
--with-sysroot
기본(존재하지
않는) sysroot 디렉토리
/tools/$LFS_TGT/sys-root
를
정의한다. 링커의
명령줄에 명시된
다른 공유 객체에
필요한 공유
객체를 찾을 때
유용하다. 이러한
객체들은 <sysroot>/etc/ld.so.conf
에
나열된
디렉토리에서
검색되고, 찾지
못하면, 링커 검색
경로로 검색된다.
만약 이 옵션이
설정되지 않으면,
호스트의 /etc/ld.so.conf
가
사용되고, 그러면
프로그램이
호스트의
라이브러리에
연결될 수 있으며
이는 우리의
목적에 부합하지
않는다.
패키지를 컴파일한다:
make
패키지를 설치한다:
make install
이제 다음 장의 링커 “재조정” 단계를 위한 준비를 한다:
make -C ld clean make -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
Make 인자들의 의미:
-C ld
clean
ld
하위
디렉토리에서
컴파일된 모든
파일을 제거한다.
-C ld
LIB_PATH=/usr/lib:/lib
ld
하위
디렉토리의 모든
것을 재빌드한다.
명령줄에 LIB_PATH
Makefile 변수를
지정하면 임시
도구의 기본값을
무시하고 올바른
최종 경로를
가리킬 수 있다. 이
변수의 값이
링커의 기본
라이브러리 검색
경로이다. 이
준비사항은 다음
장에서 쓰인다.
이 패키지에 대한 자세한 정보는 6.18.2절. “Binutils의 내용.”에서 찾을 수 있다.