我在一台最新的Linux机器上静态编译并链接了一个程序,并在另一个9岁的Linux中运行它。它给了我一个错误“致命:内核太旧”并退出。具体来说,新版本是Fedora 18(gcc 4.7.2,glibc 2.16,kernel 3.7.2),旧版本是RHEL4.8(glibc 2.3.4,kernel 2.6.9)。由于它是静态链接,glibc版本应该不重要。我想这里的问题是程序调用不在旧内核中的系统调用。编译旧内核程序
如果在旧系统上开发不是一种选择,我该如何在新系统中构建程序并运行在较旧(甚至更好)的系统中?我正在寻找一种在兼容模式下运行gcc的方式,它只调用旧的系统调用。没有运气。
获取旧版本的glibc并链接它。新的glibc不能在旧的内核上运行。 –