如何编译一个更紧凑的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

结果超过 100 MB,我查看了 Debain libc 包,想知道相比之下他们是如何让它只有几兆字节的。似乎大部分空间都来自我可能永远不需要的语言环境和字符集。

可以把东西剪掉吗?

答案1

不完全是您问题的答案,但由于大小很重要,您应该考虑使用musl而不是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

不要构建不需要的语言环境,删除不需要的所有静态库,并从共享库中删除调试符号。这应该可以很好地缩小它的大小。

相关内容