^ Linux From Scratch - Version 12.1-systemd ^^^
^ Chapter 6. Cross Compiling Temporary Tools ^^^
|[[.:055-xz-5.4.6|이전]] | [[.:06-cross_compiling_temporary_tools|위로]] / [[.:12.1|처음으로]] | [[.:057-gcc-13.2.0_-_pass_2|다음]]|
|Xz-5.4.6 | GCC-13.2.0 - 2차|
------
===== 6.17. Binutils-2.42 - 2차 =====
Binutils 패키지에는 링커, 어셈블러 및 오브젝트 파일 처리를 위한 기타 도구가 포함되어 있습니다.
* **빌드 시간:** 0.5 SBU
* **디스크 공간:** 537 MB
------
==== 6.17.1. Binutils 설치 ====
Binutils 빌드 시스템은 내부 정적 라이브러리에 대해 링크하기 위해 제공된 libtool 사본을 사용하지만 패키지로 제공된 libiberty 및 zlib 사본은 libtool을 사용하지 않습니다. 이러한 불일치로 인해 생성된 바이너리가 호스트 배포판의 라이브러리에 링크될 수 있습니다. 다음과 같이 해결하세요.
sed '6009s/$add_dir//' -i ltmain.sh
다시 별도의 빌드 디렉터리를 생성합니다.
mkdir -v build
cd build
Binutils 컴파일을 준비합니다.
../configure \
--prefix=/usr \
--build=$(../config.guess) \
--host=$LFS_TGT \
--disable-nls \
--enable-shared \
--enable-gprofng=no \
--disable-werror \
--enable-64-bit-bfd \
--enable-default-hash-style=gnu
=== configure 옵션 설명 ===
* //--enable-shared// \\ libbfd를 공유 라이브러리로 빌드합니다.
* //--enable-64-bit-bfd// \\ word 크기가 작은 호스트에서 64비트 지원을 활성화합니다. 64비트 시스템에서는 필요하지 않지만 해가 되지는 않습니다.
패키지를 컴파일합니다.
make
패키지를 설치합니다.
make DESTDIR=$LFS install
크로스 컴파일에 문제를 일으키는 libtool archive 파일과 LFS에서는 사용하지 않는 정적 라이브러리를 제거합니다.
rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}
------
이 패키지에 대한 자세한 내용은 [[.:089-binutils-2.42#8.19.2. Binutils 패키지 구성|8.19.2. "Binutils 패키지 구성"]]에 있습니다.