cross version development

Glenn Burkhardt gbburkhardt at aaahawk.com
Thu Oct 23 16:38:19 EDT 2003


> I would think you would be better doing your development against 
> the older libraries and then test that it works linked to the 
> newer ones.  You would be less likely to use something that isn't 
> there in the other library.

That probably works - but then I'd at least need to keep an old system around 
for final builds.  I'd prefer to have the latest stuff on the desktop I'm 
using...

> I think the linking should just work, shouldn't it?  Have you
> tried anything yet?  The linker name ld puts in the executable
> header doesn't include the version number, unless you force it to.

I think it does "just work" going from an old system to a new system.
But with a module linked my Mandrake 9.1 system, this is the ldd output on an 
Mandrake 8.1 system:

[glenn at loki glenn]$ ldd er
./er: /lib/libc.so.6: version `GLIBC_2.3' not found (required by ./er)
        libqt-mt.so.3 => /usr/local/lib/libqt-mt.so.3 (0x40017000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40898000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x408a7000)
        libm.so.6 => /lib/libm.so.6 (0x40991000)
        libfp3d.so => /usr/local/lib/libfp3d.so (0x409b4000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x409d5000)
        libstdc++.so.5 => not found
        libgcc_s.so.1 => not found

So the new glibc is sticking a version number in the executable, or the 
default linker settings request it.  I'll have to check the linker settings, 
but it's not anything I've stuck in.

> What's this libstdc?  Do you mean the C++ library?

yes, the C++ library.



More information about the Discuss mailing list