Relocation truncated to fit解决办法

Relocation truncated to fit解决办法

通过上篇文章,大概知道了这种情况一般就是地址相关!

那么这次,要写的就是和跳转相关。这种情况一般出现在汇编代码中。有些跳转指令的跳转范围很小。而当要跳转到的地址超出了范围,那么就会报错!

对于x86:

最终的原因是使用参数-mcmodel=kernel,只能使用最高2G最低2G的内存空间,如果想使用更多的大内存空间,应该使用-mcmodel=large。

对于ppc:

mcmodel对于ppc并不适用,我们在网上搜索找到了-mlongcall参数,加入到base_cflags中。

这对于c源码文件很有效果。可是如果写在汇编里的跳转指令,则没法了。

这时候,也许我们应该想想是否可以改汇编。或者,把跳转指令后面跟的跳转地址放在跳转指令的跳转范围之内。

你可能感兴趣的:(Relocation truncated to fit解决办法)