2
在Hurd中处理信号实现时,我遇到了以下问题。如何在使用弱符号时避免依赖于GLIBC_X.Y
基本上,我添加了一个新函数glibc,libpthread使用这些函数(这些函数来自Hurd的不同来源)。为了让新的libpthread继续使用旧的glibc,我将新函数声明为libpthread代码中的弱符号。 (请参阅修补程序here。)
当libpthread使用较旧的glibc构建时,所有工作都按照原样进行。 然而,当符号在编译时glibc的是居然发现, 链接器发出“VERNEED”所对应的新符号的 版本,并与旧的glibc结果运行:
foo: ./libc.so.0.3: version `GLIBC_X.Y' not found
(required by /lib/libpthread.so.0.3)
其中GLIBC_X.Y是新引入的符号的版本。
我正在寻找的结果是,当glibc没有它的时候,新的符号是NULL ,当我用老的glibc编译libpthread时会发生这种情况。
任何想法如何解决这个问题? 链接libpthread时,我可以禁止我的符号的版本?
你有没有解决这个问题?我想我有[相关的问题](http://stackoverflow.com/questions/39744926/how-can-i-compile-a-rust-program-so-it-doesnt-use-cxa-thread-atexit -impl) – Timmmm 2016-09-28 15:50:26