符号上的@ GLIBC_2.2.5后缀有什么作用?

时间:2014-05-01 20:54:47

标签: c glibc

@GLIBC_2.2.5对glibc中的符号有什么意义?

我正在尝试在64位CLFS系统上构建一个包。我正在解决与/lib64/libc-2.15.so链接的多个符号的未解决的符号问题,但是,未解决的所有内容都有@GLIBC_2.2.5后缀。

0000000000107910 T xdr_accepted_reply@GLIBC_2.2.5
0000000000112290 T xdr_array@GLIBC_2.2.5
0000000000109650 T xdr_authdes_cred@GLIBC_2.2.5

所以它看起来像libc-2.15中存在的xdr例程,但我不能真正使用它们。我的目标文件中的符号没有该后缀。例如,.o上的nm只显示'xdr_accepted_reply'。

我想首先理解这一点,因为我被引导追逐替换库的路径。 libtirpc获取XDR例程和其他一些库来获取tirpc需要的缺少的加密例程。

1 个答案:

答案 0 :(得分:0)

它们看起来像 Versioning Symbols for Shared Libraries (glibc)

由于链接背后的内容会指出,您可以使用:

objdump -x wrapper-linux-x86-32  //and possibly -64

获取有关可执行文件的大量信息......

例如:

...
Version References:
required from libpthread.so.0:
0x0d696912 0x00 05 GLIBC_2.2
0x0d696911 0x00 04 GLIBC_2.1
0x0d696910 0x00 03 GLIBC_2.0
required from libc.so.6:
0x0d696913 0x00 08 GLIBC_2.3
0x0d696911 0x00 07 GLIBC_2.1
0x0d696912 0x00 06 GLIBC_2.2
0x0d696910 0x00 02 GLIBC_2.0
...