有没有办法用散列样式 SYSV 而不是 GNU/Linux 编译 GCC 的 libstdc++?我有一个工具链(通过 crosstool-ng),我用它来编译我们公司的库,以便与非常广泛的 Linux 系统一起工作。
其中一个系统是一个非常古老的 RedHat,它只有 SYSV 哈希样式,当我使用工具链编译一个仅限 C 的库/程序时,它工作得很好,因为生成的二进制文件使用 SYSV。
但是,当我与 libstdc++ 链接时,二进制文件会自动更改为 GNU/Linux 样式,原因是因为 libstdc++ 是作为 GNU/Linux 构建的,因此存在问题。
在这个系统中运行二进制文件给了我错误
ELF file OS ABI invalid
为了完整起见,我已经尝试过 -Wl,--hash-style=sysv,但没有成功。
另外,我还有另一个用于 ARM 系统的工具链,它具有相同版本的 GCC、GLIBC 等,但在这个工具链中 libstdc++ 使用 SYSV,不知道为什么。
提前致谢!