如何构建缩小尺寸的glibc?

问题描述 投票:0回答:1

我正在尝试下载 glibc 2.23 源代码并在我的 Ubuntu 系统上构建它们。 我需要从源代码构建该特定版本,以获得为我的研究定制的 glibc 修改版本,并且它将仅在使用加载程序环境变量(例如 LD_PREDLOAD 或 LD_LIBRARY_PATH)的我的研究应用程序中使用。

但是,当按如下方式构建它时,我得到了一个巨大的文件作为输出(libc.so 重量约为 11MB):

  • 将源下载到某个本地目录(假设 /tmp/glibc/)
  • 为构建结果创建新目录(/tmp/glibc/build)
  • 从构建目录运行配置:
  • < build-dir >$ ../配置--前缀=< build-dir > 结果,构建过程将在 build-dir 下生成大小为 11MB 的 libc.so 文件。

有没有办法减少构建的 libc.so 的大小?

附注

这是我的系统详细信息: Linux 版本 4.4.0-93-generic (buildd@lgw01-03) (gcc 版本 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #116-Ubuntu SMP 8 月 11 日周五 21:17:51 UTC 2017

linux ubuntu shared-libraries glibc
1个回答
2
投票

从源代码构建

glibc
可能是一个坏主意。请参阅this以及那里的一些评论。它的当前版本是 GNU libc 2.26...考虑升级整个 Ubuntu 发行版(Ubuntu 17.10 应该在几周内发布,即 2017 年 10 月末)

../configure --prefix=
构建目录

是对

--prefix
autoconf-ed 软件中的作用的误解。它与软件的安装位置有关,而不是其构建目录。

(我不知道你的

--prefix
应该是什么,因为
libc
对你的系统来说 非常重要,也许应该是
--prefix=/
,但你应该仔细检查)

有什么办法可以减少构建的libc.so的大小吗?

您可能会(非常小心地)使用strip(1),但您可能会面临破坏系统的风险。

您可能不关心减小

libc
的大小,因为 Linux 系统上的几乎每个软件都使用(并且共享)它!

顺便说一句,也请考虑musl-libc。它可以与 GNU glibc 很好地共存,并且实际上仅由使用

musl-gcc
(由它提供)构建的程序使用。

如果您正在做一些研究,那么在 chroot(2)-ed 环境中工作是合理的。 另请参阅schroot。您可以在

make install DESTDIR=/tmp/instmylibc
的帮助下安装,然后适当地复制
/tmp/instmylibc
。阅读 更多关于
autoconf

PS。在进行此类危险的实验之前,请务必至少备份您的重要数据。我认为您的

libc.so
的大小不应该是一个重大问题。但您需要使用
chroot
,也许在安装 chrooted 环境期间需要借助
debootstrap

© www.soinside.com 2019 - 2024. All rights reserved.