Lin George <george4academic@xxxxxxxxx> writes: > Why running a program on a specific platform (Linux), there are > runtime errors which mentions that specific LIBC runtime version is > required (for example, GLIBC_2.3.3). > > I think C runtime should be compatible (means using one version of > gcc to build a program, it should be able to run on platform which > contains another version of gcc runtime). I am not sure whether this > error is caused by some wrongly used compile/link options (which > binds this program to specific C runtime version)? As already noted, this is not a gcc issue. It is a glibc issue. glibc and gcc are separate projects. I'll add that glibc is backward compatible: if you link against glibc version N, then you can run with glibc versions M >= N. The problem you are encountering is that glibc is not in general forward compatible: you can not necessarily run on glibc versions M < N. In those cases where the program will not work with an older version of glibc, you get a helpful error when the program starts, rather than a confusing error at runtime. It would be difficult to design a system which permitted full forward compatibility with interfaces as complex and efficient as the ones provided by glibc. I don't personally have any idea how one might do it. But it would definitely be a nice feature. Ian