Question

What does the@GLIBC_2.2.5 do/mean with symbols inside glibc?

I'm attempting to build a package on a 64bit CLFS system. I'm getting unresolved symbol issues with multiple symbols linking against /lib64/libc-2.15.so, however, everything that is unresolved has a @GLIBC_2.2.5 suffix.

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

So it LOOKS like the xdr routines exist in libc-2.15 but I can't really use them. The symbols in my object files do not have that suffix. For example, an nm on the .o shows just 'xdr_accepted_reply'.

I would like to understand this first since I'm being led down a path of chasing replacement libraries otherwise. libtirpc to get the XDR routines and the some other library to get the missing crypto routines that tirpc needs.

Était-ce utile?

La solution

They look like Versioning Symbols for Shared Libraries (glibc)

As the content behind the link will point out, you can use:

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

To get a lot of information about the executable...

For example:

...
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
...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top