我需要从源代码构建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?谢谢!
答案 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"