在GNU ABI下为System V ABI构建共享libc.so

时间:2016-12-20 16:02:32

标签: gcc gnu libc sysv

我需要从源代码构建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 =。将其更改为sysv。最终构建的所有库(ld.so和其他)都适用于System V.除 libc.so 外。

您知道吗,如何构建精确的libc.so?谢谢!

1 个答案:

答案 0 :(得分: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"
相关问题