이 패키지에 대한 자세한 정보는 6.9.3절. “Glibc의 내용.”에서 찾을 수 있다.
Glibc 패키지는 메인 C 라이브러리를 포함하고 있다. 이 라이브러리는 메모리 할당, 디렉토리 검색, 파일 열기 및 닫기, 파일 읽기 및 쓰기, 문자열 처리, 패턴 대조, 산술 등의 기본 루틴을 제공한다.
Glibc 문서에서는 전용 빌드 디렉토리에 Glibc를 빌드할 것을 권장한다:
mkdir -v build cd build
다음으로 Glibc 컴파일을 준비한다:
../configure \ --prefix=/tools \ --host=$LFS_TGT \ --build=$(../scripts/config.guess) \ --enable-kernel=3.2 \ --with-headers=/tools/include
Configure 옵션들의 의미:
--host=$LFS_TGT,
--build=$(../scripts/config.guess)
/tools
의
크로스 링커와
크로스
컴파일러를
사용해서 Glibc의
빌드 시스템이
스스로를 크로스
컴파일하게 한다.
--enable-kernel=3.2
Glibc가 3.2 이상 리눅스 커널을 지원하는 라이브러리를 컴파일하도록 한다. 이전 커널에 대한 라이브러리는 사용할 수 없다.
--with-headers=/tools/include
앞서 tools 디렉토리에 설치된 헤더들을 가지고 컴파일하도록 한다. 커널이 어떤 기능들을 갖고 있는지 정확히 알고 그에 따른 최적화를 할 수 있다.
이 단계에서 다음과 같은 경고가 나타날 수 있다:
configure: WARNING: *** These auxiliary programs are missing or *** incompatible versions: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions.
누락됐거나 호환되지 않는다는 msgfmt 프로그램은 보통 문제가 되지 않는다. 이 msgfmt 프로그램은 호스트 배포판이 제공하는 Gettext 패키지의 일부다.
"병렬 make"로 빌드할 때 실패하는 경우가 있다는 보고가 있었다. 이럴 경우 "-j1" 옵션을 사용해서 make 명령을 다시 실행하라.
패키지를 컴파일한다:
make
패키지를 설치한다:
make install
여기서 잠깐 멈추고 새로운 툴체인의 기본 기능(컴파일 및 링크)이 기대한 대로 잘 작동하는지 확인하는 것이 우선이다. 다음 명령으로 온전성 검사를 수행하라:
echo 'int main(){}' > dummy.c $LFS_TGT-gcc dummy.c readelf -l a.out | grep ': /tools'
모든 것이 제대로 작동한다면 오류가 없어야 하며 마지막 명령의 출력은 다음과 같을 것이다:
[Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]
32비트
시스템에서는
인터프리터 이름이
/tools/lib/ld-linux.so.2
임을
참고하라.
만약 출력이 위와 같이 표시되지 않거나 출력이 전혀 없다면, 무언가 잘못된 것이다. 이전 단계로 돌아가 어디서 문제가 생겼는지 파악하고 수정하라. 이 문제는 계속 진행하기 전에 반드시 해결해야 한다.
모두 잘 됐다면, 테스트 파일을 정리하라:
rm -v dummy.c a.out
다음 절에서 Binutils를 빌드하면 툴체인이 올바르게 빌드되었는지 다시금 확인하는 기회가 될 것이다. Binutils 빌드에 실패하면, 이전 Binutils, GCC, 또는 Glibc 중 어딘가 문제가 생겼음을 보여주는 것이다.
이 패키지에 대한 자세한 정보는 6.9.3절. “Glibc의 내용.”에서 찾을 수 있다.