보다 컴팩트한 glibc를 컴파일하는 방법은 무엇입니까?

보다 컴팩트한 glibc를 컴파일하는 방법은 무엇입니까?

당연히 x86-64 장치를 만들려고 할 때 glibc 2.23을 컴파일하고 싶었습니다. 나는 그것을 할 수 있었다

mkdir build
cd build
../configure --enable-kernel=2.6.32 
--with-headers=/path/to/appliance/kernel/headers
--prefix=/usr

그리고

make -j4 install_root=/path/to/appliance/root && make install install_root=/path/to/appliance/root

결과는 100MB가 넘었고 Debain libc 패키지를 살펴보며 어떻게 비교하면 몇 메가바이트에 불과한지 확인했습니다. 대부분의 공간은 나에게 전혀 필요하지 않은 로캘과 문자 집합에서 나오는 것 같습니다.

끊어도 될까요?

답변1

귀하의 질문에 대한 정확한 답변은 아니지만 크기가 중요하므로 musl대신 libc를 사용하는 것이 좋습니다 glibc. 이렇게 하면 모든 바이너리가 해당 libc에 정적 또는 동적으로 연결되어 더 작아집니다.

https://www.musl-libc.org/

http://elinux.org/images/e/eb/Transitioning_From_uclibc_to_musl_for_Embedded_Development.pdf

http://wiki.musl-libc.org/wiki/Projects_using_musl

답변2

필요하지 않은 로케일을 빌드하지 말고, 필요하지 않은 정적 라이브러리를 제거하고, 공유 라이브러리에서 디버깅 기호를 제거하십시오. 그러면 크기가 멋지게 줄어들 것입니다.

관련 정보