Tom Quarendon wrote: >> Right. Like most systems, it's backwards compatible but not forwards. >> Forwards compatibility is in general impossible since APIs are added >> from time to time. > > But is works just fine on Windows. You compile specifying the os level > you're targetting and all later APIs are #ifdeffed out so you can't use > them. The resulting executable then works quite happily on the older > version of the OS. All of the OS entry points have fixed IDs in the run > time library, so there's no API compatibility, or ABI compatibility > issues, only semantic ones, and generally they're pretty careful about > that. Perhaps, but this isn't simply a matter of OS entry points but also that of other libraries that gcc uses. In any case, I'm not here to argue about Windows. > The issue we're having on linux seems to be to do with the dynamic > loading hash table incompatbility, and the level of libstdc++ shared > object. libstdc++ is part of gcc. When you build gcc you also get the appropriate version of libstdc++. Andrew.