On Mon, Oct 16, 2000 at 01:10:03AM -0400, James Antill wrote: > Daniel Jacobowitz <[EMAIL PROTECTED]> writes: > > > On Mon, Oct 16, 2000 at 01:59:11AM +0200, Johannes Zellner wrote: > > > Hello, > > > > > > I cannot link any more against libX11.so: > > > > > > /usr/X11R6/lib/libX11.so: undefined reference to `getpwnam_r@@GLIBC_2.0' > > > > > > this shows, even if I link a minimal c program. > > > > > > my versions: > > > ii xlib6g 3.3.6-11 > > > ii libc6 2.1.94-3 > > > > > > Any comments ? > > > > To compile against a library built under an old glibc, the library > > needs to be recompiled to the new libc. > > If this is true then there isn't any binary compatibility. > The whole point of the symbols looking like the above is so that > there can be multiple versions of them. Eg. > > % nm -g /usr/lib/debug/libc-2.1.3.so | egrep GLIB | egrep chown > 000913c8 T __chown@@GLIBC_2.1 > 000913c8 T chown@@GLIBC_2.1 > 00091454 T [EMAIL PROTECTED] > % nm -g /usr/lib/debug/libc-2.1.3.so | egrep GLIB | egrep fopen > 0004b5c4 T _IO_file_fopen@@GLIBC_2.1 > 0004da48 T [EMAIL PROTECTED] > 000481e0 T _IO_fopen@@GLIBC_2.1 > 0004a9a0 T [EMAIL PROTECTED] > 000481e0 T fopen@@GLIBC_2.1 > 0004a9a0 T [EMAIL PROTECTED] > > So either something bad has happened with the glibc versioning > upstream or glibc was built badly.
No, you misunderstand symbol versioning. There is -runtime- compatiblity - the old [EMAIL PROTECTED] is still there. However, there is no compile-time compatibility - a library referencing that [EMAIL PROTECTED] can no longer be linked to. This is, I believe, deliberate. Libraries must be recompiled to be linked to. Dan /--------------------------------\ /--------------------------------\ | Daniel Jacobowitz |__| SCS Class of 2002 | | Debian GNU/Linux Developer __ Carnegie Mellon University | | [EMAIL PROTECTED] | | [EMAIL PROTECTED] | \--------------------------------/ \--------------------------------/