Symbol versioning question
H.J. Lu
hjl@lucon.org
Sun Dec 20 11:03:00 GMT 1998
>
> Ulrich Drepper <drepper@cygnus.com> writes:
>
> > Steve Dunham <dunham@cse.msu.edu> writes:
> >
> > > A typical example is that it claims it can't find the symbol
> > > "_popen@GLIBC_2.0" referenced by libgpm.so, where libc contains both
> > > GLIBC_2.1 and GLIBC_2.0 versions of the symbol.
>
> > There never was a symbol _popen. If you want answers you have to be
> > accurate.
>
> Sorry, I had replaced the libraries on the machine in question. I've
> reproduced in on another machine, details are below. (The
> architecture is sparc.)
>
> foo.c contains:
>
> main(){}
>
> I compile with:
>
> gcc foo.c -lgpm
>
> and get:
>
> /usr/lib/libgpm.so: undefined reference to `popen@@GLIBC_2.0'
> /usr/lib/libgpm.so: undefined reference to `pclose@@GLIBC_2.0'
>
> This happened after moving from glibc-2.0.100 to glibc-2.0.105.
>
> I'm using binutils 2.9.1.0.15.
>
> "objdump -T /lib/libc-2.0.105.so |grep popen " gives:
>
> 0000000000057dc4 g DF .text 000000000000008c GLIBC_2.1 _IO_popen
> 000000000005a154 g DF .text 000000000000008c (GLIBC_2.0) popen
> 0000000000057dc4 g DF .text 000000000000008c GLIBC_2.1 popen
> 000000000005a154 g DF .text 000000000000008c (GLIBC_2.0) _IO_popen
>
glibc 2.1 is still in beta. I added those popen stuff to fix a bug.
You may have to recompile all the libraries against the new glibc
2.1.
H.J.
More information about the Libc-alpha
mailing list