0

我需要从源代码为 GNU ABI 系统下的 System V ABI 系统构建共享 libc.so。如果它很重要,我正在尝试构建 glibc2.16。

我的 gcc 编译器是使用默认的 --hash-style 选项设置为“sysv”构建的。用它构建的每个应用程序都有 System V ABI。每个,但不是 libc。

尝试添加 C*FLAGS -Wl,--hash-style=sysv,但没有成功。配置已完成,但由于错误而停止:

glibc cannot be compiled without optimization

我发现这是因为 gcc 选项顺序。所以,我决定自己提出必要的选择。在 Makeconfig 和 configure.in 中找到 --hash-style=both。将其更改为 sysv。所有库(ld.so 和其他库)最终都适合使用 System V 构建。除libc.so之外的所有库。

你知道,如何准确地构建 libc.so 吗?谢谢!

4

1 回答 1

0

在配置选项的不同组合后,我得到了答案。正确的配置命令:

对于 x32 系统:

../configure --prefix=... --enable-kernel=2.4.0 --with-cpu=i686 --build=i686-unknown-linux-gnu CC="gcc -i686" CXX="g++ -i686"

对于 x64 系统:

../configure --prefix=... --enable-kernel=2.4.0 --with-cpu=i686 --build=i686-unknown-linux-gnu CC="gcc -m32" CXX="g++ -m32"

您需要使用下一个值导出 CFLAGS:

export CFLAGS="-mtune=native -O2 -pipe"
于 2017-01-10T09:52:10.010 回答