Пытаясь создать устройство 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 МБ, я смотрю на пакет Debain libc и удивляюсь, как они получили его всего несколько мегабайт для сравнения. Похоже, что большая часть места занята языками и кодировками, которые мне, скорее всего, никогда не понадобятся.
Можно ли вырезать лишнее?
Не создавайте языковые стандарты, которые Вам не нужны, удаляйте все статические библиотеки, которые Вам не нужны, и удаляйте символы отладки из общих. Это должно красиво сократить его до размера.
Не совсем ответ на ваш вопрос, но, поскольку размер имеет значение, вам следует подумать об использовании musl
вместо glibc
. Это также уменьшает размер всех двоичных файлов, статически или динамически связанных с этой libc.
http://elinux.org/images/e/eb/Transitioning_From_uclibc_to_musl_for_Embedded_Development.pdf