在 GNU ABI 下为 System V ABI 构建共享 libc.so
Building shared libc.so for System V ABI under GNU ABI
我需要从源代码为 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 options order。所以,我决定自己设置必要的选项。在 Makeconfig 和 configure.in 中找到 --hash-style=both。将其更改为 sysv。所有库(ld.so 和其他库)最终都适用于 System V。除了 libc.so.
你知道如何构建 libc.so 吗?谢谢!
在配置选项的不同组合之后,我得到了答案。
正确的配置命令:
对于 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"
我需要从源代码为 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 options order。所以,我决定自己设置必要的选项。在 Makeconfig 和 configure.in 中找到 --hash-style=both。将其更改为 sysv。所有库(ld.so 和其他库)最终都适用于 System V。除了 libc.so.
你知道如何构建 libc.so 吗?谢谢!
在配置选项的不同组合之后,我得到了答案。 正确的配置命令:
对于 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"