차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
linuxfromscratch:12.1:038-glibc-2.39 [2024/06/07 07:18] – baecy | linuxfromscratch:12.1:038-glibc-2.39 [2024/06/14 16:52] (현재) – baecy | ||
---|---|---|---|
줄 7: | 줄 7: | ||
---- | ---- | ||
- | ====== 5.5. Glibc-2.39 | + | ===== 5.5. Glibc-2.39 ====== |
Glibc 패키지에는 기본 C 라이브러리가 포함되어 있습니다. 이 라이브러리는 메모리 할당, 디렉터리 검색, 파일 열기 및 닫기, 파일 읽기 및 쓰기, 문자열 처리, 패턴 일치, 연산 등을 위한 기본 루틴을 제공합니다. | Glibc 패키지에는 기본 C 라이브러리가 포함되어 있습니다. 이 라이브러리는 메모리 할당, 디렉터리 검색, 파일 열기 및 닫기, 파일 읽기 및 쓰기, 문자열 처리, 패턴 일치, 연산 등을 위한 기본 루틴을 제공합니다. | ||
- | * **빌드 시간입니다:** 1.5 SBU | + | * **빌드 시간:** 1.5 SBU |
* **디스크 공간:** 846 MB | * **디스크 공간:** 846 MB | ||
----- | ----- | ||
- | ===== 5.5.1. Glibc 설치 | + | ==== 5.5.1. Glibc 설치 ==== |
먼저 LSB 준수를 위한 심볼릭 링크를 생성합니다. 또한 x86_64의 경우 동적 라이브러리 로더가 제대로 작동하는 데 필요한 호환성 심볼릭 링크를 생성합니다. | 먼저 LSB 준수를 위한 심볼릭 링크를 생성합니다. 또한 x86_64의 경우 동적 라이브러리 로더가 제대로 작동하는 데 필요한 호환성 심볼릭 링크를 생성합니다. | ||
- | < | + | <code bash> |
case $(uname -m) in | case $(uname -m) in | ||
- | i?86) ln -sfv ld-linux.so.2 $LFS/ | + | i?86) |
;; | ;; | ||
x86_64) ln -sfv ../ | x86_64) ln -sfv ../ | ||
줄 37: | 줄 37: | ||
일부 Glibc 프로그램은 런타임 데이터를 저장하기 위해 FHS와 호환되지 않는 ''/ | 일부 Glibc 프로그램은 런타임 데이터를 저장하기 위해 FHS와 호환되지 않는 ''/ | ||
- | < | + | <code bash> |
patch -Np1 -i ../ | patch -Np1 -i ../ | ||
</ | </ | ||
줄 43: | 줄 43: | ||
Glibc 문서에서는 전용 빌드 디렉터리에 Glibc를 빌드할 것을 권장합니다. | Glibc 문서에서는 전용 빌드 디렉터리에 Glibc를 빌드할 것을 권장합니다. | ||
- | < | + | <code bash> |
mkdir -v build | mkdir -v build | ||
- | cd build | + | cd |
</ | </ | ||
- | '' | + | **ldconfig** 및 **sln** 유틸리티가 ''/ |
- | < | + | <code bash> |
echo " | echo " | ||
</ | </ | ||
줄 56: | 줄 56: | ||
Glibc 컴파일을 준비합니다. | Glibc 컴파일을 준비합니다. | ||
- | < | + | <code bash> |
../ | ../ | ||
--prefix=/ | --prefix=/ | ||
줄 67: | 줄 67: | ||
</ | </ | ||
- | ==== 설정 | + | === configure |
* // | * // | ||
* // | * // | ||
* // | * // | ||
- | * // | + | * // |
* // | * // | ||
줄 93: | 줄 93: | ||
패키지를 컴파일합니다. | 패키지를 컴파일합니다. | ||
- | < | + | <code bash> |
make | make | ||
</ | </ | ||
줄 101: | 줄 101: | ||
<WRAP alert round center 90%> | <WRAP alert round center 90%> | ||
**경고** \\ | **경고** \\ | ||
- | '' | + | '' |
</ | </ | ||
- | < | + | <code bash> |
make DESTDIR=$LFS install | make DESTDIR=$LFS install | ||
</ | </ | ||
줄 110: | 줄 110: | ||
=== make install 옵션 설명 === | === make install 옵션 설명 === | ||
- | * // | + | * // |
- | '' | + | '' |
- | < | + | <code bash> |
sed '/ | sed '/ | ||
</ | </ | ||
줄 120: | 줄 120: | ||
<WRAP alert center round 90%> | <WRAP alert center round 90%> | ||
**주의** \\ | **주의** \\ | ||
- | 이 시점에서 새 툴체인의 기본 기능(컴파일 및 연결)이 예상대로 작동하는지 확인해야 합니다. 점검을 수행하려면 | + | 이 시점에서 새 툴체인의 기본 기능(컴파일 및 연결)이 예상대로 작동하는지 확인해야 합니다. |
- | < | + | <code bash> |
- | echo 'int main(){}' | + | echo 'int main(){}' |
readelf -l a.out | grep ld-linux | readelf -l a.out | grep ld-linux | ||
</ | </ | ||
- | 모든 것이 올바르게 작동하면 오류가 없어야 하며 마지막 명령의 출력은 다음과 같은 형식이 됩니다. | + | 모든 것이 올바르게 작동하면 오류가 없어야 하며 마지막 명령의 출력은 다음과 같습니다. |
<code cmdout=1> | <code cmdout=1> | ||
줄 134: | 줄 134: | ||
32비트 컴퓨터의 경우 인터프리터 이름은 '' | 32비트 컴퓨터의 경우 인터프리터 이름은 '' | ||
- | 출력이 위와 다르거나 전혀 출력되지 않는다면 문제가 있는 것입니다. 각 단계를 조사하고 역추적하여 문제가 있는 위치를 찾아서 해결하세요. 더 진행하기 전에 이 문제를 해결해야 합니다. | + | 출력이 위와 다르거나 전혀 출력되지 않는다면 문제가 있는 것입니다. 각 단계를 조사하고 역추적하여 문제를 찾아서 해결하세요. 더 진행하기 전에 |
모든 문제가 해결되면 테스트 파일을 정리합니다. | 모든 문제가 해결되면 테스트 파일을 정리합니다. | ||
- | < | + | <code bash> |
rm -v a.out | rm -v a.out | ||
</ | </ | ||
줄 149: | 줄 149: | ||
----- | ----- | ||
- | 이 패키지에 대한 자세한 내용은 [[.: | + | 이 패키지에 대한 자세한 내용은 [[.: |