保持与先前版本的二进制兼容性

时间:2017-11-17 14:25:06

标签: glibc rpmbuild rhel7 rhel6

如果这比SO更多服务器故障,请道歉,但它与编码有关,所以这里......

我有其他人的代码,我试图在RHEL 7上编译,但会在RHEL 6上运行(目前至少)。我已编写自己的RPM spec文件来构建并输出RPM文件。 RPM在RHEL 6和RHEL 7上构建都很好,但是当我在RHEL 7上构建它时,由于GLIBC版本的原因,不能生成可以安装在RHEL 6上的RPM。

是否有一个简单的开关我可以添加到构建某个地方,这将允许生成的二进制文件满足早期版本的GLIBC并且能够安装在RHEL 6上?

要说清楚,我目前实际上并不需要RHEL 7二进制文件,我只想在RHEL 7开发框中编译RHEL 6。

1 个答案:

答案 0 :(得分:1)

您可以使用mock(遗憾地仅在EPEL中)在您的Red Hat Enterprise Linux 7系统上创建Red Hat Enterprise Linux 6 chroot。如果仅使用具有第1层ABI兼容性的库,则应用程序将继续在Red Hat Enterprise Linux 7上运行而无需重新编译。基于最早的受支持版本(从应用程序的角度来看)是实现此目的的唯一方法。如果您需要更新的C ++编译器,以及您在Red Hat Enterprise Linux 7上构建的原因,请考虑使用Developer Toolset(DTS)。

第1层库在Application Compatibility Guide中描述。应该有一个包含上一个包列表的PDF附件,但我现在无法访问它。