当使用弱符号

|时,如何避免依赖GLIBC_X.Y。 在Hurd中进行信号实现时,我遇到了以下问题。 基本上,我向glibc添加了一个新函数,供libpthread使用(这些函数来自Hurd的不同资源)。为了使新的libpthread仍能与旧的glibc一起使用,我在libpthread代码中将新函数声明为弱符号。 (请参阅此处的补丁。) 当使用较旧的glibc构建libpthread时,一切都会按预期进行。 但是,当在构建时在glibc中实际找到该符号时, 链接器发出与新符号版本相对应的\“ VERNEED \” 并使用较旧的glibc运行会导致:
foo: ./libc.so.0.3: version `GLIBC_X.Y\' not found
(required by /lib/libpthread.so.0.3)
其中,GLIBC_X.Y是新引入符号的版本。 我正在寻找的结果是新符号为NULL 当glibc没有它时, 当我使用较旧的glibc构建libpthread时会发生什么。 任何想法如何解决这个问题? 链接libpthread时,可以禁止对我的符号进行版本控制吗?     
已邀请:
所以我对默认实现使用了弱别名 而不是与symbol1相比的弱符号, 由于某种原因,事实证明 链接时,没有从glibc提取符号版本。     

要回复问题请先登录注册