danny payton <dannyx.payton@xxxxxxxxx> writes: > Okay. So I need to keep multiple Linux build boxes. That's fine. You don't necessary need multiple build boxes. You can build and install several different versions of gcc using a different --prefix option when you run configure. However, the glibc symbol versions will be included in your build, so you will want to do this on a system which runs the oldest version of glibc that you care to support. > Is there perhaps a way to bundle multiple versions of the code > into the ELF output file, tagged with different versions, so that > we can at least distribute only 1 file to the user (rather than asking > the users to check their Linux library version number for stdc++, > libm, libgcc... which is just asking them too much)? I don't see any way to do this short of accessing all symbols via dlopen and dlsym. Note that libm and libgcc have not changed major version numbers in many years. For them, what matters is the version of the symbol. The symbol version which you link against will have to be available on the system where the executable is run. For that matter, libstdc++ also uses symbol versions. So in practice, for these basic system libraries, there is only one relevant distinction: libstdc++.so.5 vs. libstdc++.so.6. The latter has been in use for over five years. The situation is certainly not ideal. While having a single library provide both the libstdc++.so.5 and libstd++.so.6 symbols is technically feasible, making it actually work in practice would require a significant amount of tedious work. Ian