我在使用 busybox 和 dns 查找时遇到一些问题。我发现索赔这是一个 glibc 问题。我在gentoo。我想针对 uClibc 编译 busybox,而不替换系统上的 glibc。
澄清
主机系统
Gentoo 系统,针对 glibc 构建的软件包。我已经将 busybox 安装为针对 glibc 的静态链接二进制文件。编辑:架构是x86_64,没有multilib。
目标
我想将 busybox 链接到 uClibc,而不弄乱主机系统的 libc。我更喜欢使用 gentoo 的本地工具来实现这一点,比如 emerge。但是,也欢迎涉及一些手动脚本的建议。目标主机是相同的架构。
尝试过
- 使用
emerge --root=/..
选项。但链接似乎仍然是针对 glibc 进行的/
- 使用gentoo 前缀项目,但我最终得到了另一个基于 glibc 的第 3 阶段,位于前缀安装路径中。
- 我有成立的选项
gcc -Xlinker -rpath=/default/path/to/libraries -Xlinker -I/default/path/to/libraries/ld.so program.c
。但我不知道如何在gentoo中使用它make.conf
或者在像 busybox 这样的常规make
构建中。
编辑;更多尝试:
- 在busybox上设置
USE="-static
以构建动态链接版本。使用 查找它的库依赖项ldd /bin/busybox
。 Stangly,ldd
不返回任何nss*.so
库。所以我手动将图像复制给他们。仍然一点,nslookup
ofping example.com
会导致错误。 - 从以下位置下载 uClibc 阶段https://www.gentoo.org/downloads/。在 chroot 中配置并重新构建 busybox 二进制文件。这可行,但对于构建 +/- 1MB busybox 二进制文件(与 144MB 的 stage3 相比)来说绝对是过分的。