[EMAIL PROTECTED] wrote: > [ Things break horribly when I compile them > with a compiler built against glibc-2.3.x > and try to run them on a glibc-2.2.x system. ]
This is expected and normal. gcc and glibc have circular dependencies. A gcc tainted with a newer glibc is expected to produce binaries that don't work with older glibc's.
Mike Hearn wrote:
This policy of not supporting "build on newer, run on older" is a massive
pain for developers who distribute Linux binaries even though it's very
common: developers often use very new distributions but users often don't.
It requires all kinds of stupid hacks to work around.
No hacks needed; you just have to embrace reality.
As Marcin Dalecki and others pointed out, one way to ship software that needs to run on a range of gcc and glibc versions is to build against the lowest common denominator, either by cross-compiling (in which case http://kegel.com/crosstool is your friend) or by actually building on the older system (in which case http://thomas.apestaart.org/projects/mach/ might be your friend; I haven't used it myself).
Another way will be LSB, once it makes the leap forward to the gcc-3.4 ABI for C++. (Did you know that gcc-4.0 uses the gcc-3.4 ABI for C++, too? That's right, there is hope!) - Dan
-- Trying to get a job as a c++ developer? See http://kegel.com/academy/getting-hired.html