在Ubuntu(和Debian)中,-s4在libgcc-s4中是什么意思



在检查libgcc以准备跨编译环境时,我注意到有一些libgcc-s[124]-{arch}包——有很多s1包,但只有很少的s2s4包(对于m68k正好是1,对于hppa正好是1(。

这些是什么意思?他们是如何分配的?有维基吗?

非常不幸的是,它没有wiki或任何类型的网络资源;变更日志";gcc-ver-base包中的文件。

信息也很分散,很难定位。但我想总结一下:

libgcc库实现了GCC编译器所期望的一些功能,但目标平台缺乏这些功能。在这些特征中;异常处理";例程。与其他计算整数和浮点例程不同,这些EH例程依赖于目标平台的ABI。

由于异常处理在Debian中的版本和平台之间有变化,因此必须通过使用版本屏障来保持兼容性,也就是说,使用版本控制来防止可执行二进制文件与不兼容的动态库链接。

这个版本被称为";soversion";(changelog术语(,表示共享对象版本,其中共享对象是Unix/Linux中动态库的术语。

m68k的版本被修改过一次,所以它是2;hppa的情况有点复杂,我无法确认它的soversion-3,但碰巧它曾经从soversion-6恢复到soversion-4。

显然,Debian认为,从功能正确性的角度来看,对如此重要的库在包名称中进行显式版本控制是有益的。

相关内容

  • 没有找到相关文章

最新更新