【发布时间】:2014-02-20 15:22:08
【问题描述】:
glibc 2.14 似乎引入了memcpy 的新版本(修复bug 12518)。然后,针对 glibc 2.14+ 编译的程序将包含指向 memcpy@GLIBC_2.14 的动态链接,这在旧版本的 glibc 中显然不可用。
但是,glibc 2.14+ 显然仍然包含旧的 memcpy@GLIBC_2.2.5 符号以实现向后兼容性。我希望能够以与旧 glibc 版本二进制兼容的方式编译一些程序。如何在具有 glibc 2.14+ 的系统上编译程序,以便它使用这个旧的符号版本?如果该过程必须是特定于编译器的,我正在使用 GCC(但如果知道如何在其他编译器上执行它也会很高兴)。
(顺便说一句,我必须承认我对版本化符号知之甚少,例如如何生成它们以及如何使用它们,或者它们是特定于 ELF 还是应该被视为现代 ABI;我还没有找到任何关于它的文档。有没有关于这个主题的好的信息来源?)
【问题讨论】:
标签: c glibc elf libc binary-compatibility