龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 2128|回复: 3

求删

[复制链接]
发表于 2013-10-23 19:16:04 | 显示全部楼层 |阅读模式
本帖最后由 文杰 于 2016-6-18 17:09 编辑

版主删除
发表于 2013-10-23 21:02:53 | 显示全部楼层
O32,N32,N64是一种对CPU寄存器的使用的约定, 这几种约定之间是互不兼容的。如果你要安装已经打包好的软件包就要关注这方面的问题。
win32和win64的兼容问题不光是ABI的问题,还有地址空间的问题(这是我自己的理解)。
发表于 2013-10-24 08:47:26 | 显示全部楼层
N64的系统,如果启用了multilib,可以兼容O32和N32的应用软件。
发表于 2013-10-24 17:44:34 | 显示全部楼层
N64 就要在 N64 的系统里面用,N32 就要在 N32 里面用,O32 就要在 O32 里面用。另外还有 O64 呢。
不过因为兼容问题,现在的实现办法是内核去切换这种 ABI 运行,但程序之间的函数库接口必须一至,也就是说这个程序调用的 so 都必须是和软件一样的 ABI 。如果你想要你的机器都能运行,那么就要同时装不同 ABI 的的一套函数库。除非程序是用 socket 或者直接命令行互相调用才不需要这么多套。

mips 有个新的 ABI 结构 NUBI ,好像 GCC 里面叫做 EABI ,这个 ABI 是同时支持 32 和 64 的,函数接口好像会自动转换长度。
http://www.cygwin.com/ml/binutils/2003-06/msg00436.html
http://www.linux-mips.org/wiki/MIPS_ABI_History
http://www.linux-mips.org/wiki/NUBI

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-7-18 04:31 , Processed in 0.183107 second(s), 17 queries .

快速回复 返回顶部 返回列表