首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GCC m68k pc-relative

GCC m68k pc-relative
EN

Stack Overflow用户
提问于 2014-04-11 19:18:36
回答 2查看 589关注 0票数 1

我使用Microtek工具链生成一个可执行的二进制文件,其中包含可重定位的代码(与pc相关)和来自固定地址的数据(绝对数据)。现在,这个工具链不能在64位Windows 7上运行。其想法是将68000的Microtek工具链替换为GNU工具链(GCC 4.8.0)。

但我在gcc编译器上找不到相同的选项:

带有:“-Mcp”的Microtec编译器"MCC68K“:指示编译器对所有代码引用使用PC相对寻址。"-Mda":指示编译器对所有数据引用使用绝对寻址。

Gcc (m68k-精灵-gcc)与:-mpcrel

无法使用没有可重定位数据的gcc可重定位代码作为Microteck编译器进行生成。使用"-mpcrel",一切都是可重定位的(代码和数据)。

你有什么想法吗?

对不起,我的英语不好。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-11 21:59:44

据我所知,没有办法使用GNU m68k工具链实现相同的结果。

对于代码和数据,

  • -mpcrel将使用pc相对地址生成完全位置独立的代码,从而导致程序/数据大小有限(pc相对偏移量不能超过16 bits).
  • -fpic-fPIC将使用可重定位的二进制文件生成与位置无关的代码,但将需要执行就地重定位

的特殊加载程序

票数 2
EN

Stack Overflow用户

发布于 2014-04-11 19:39:24

来自gcc docs

-fpic生成适合在共享库中使用的位置无关代码(PIC),...

-fPIC如果目标机器支持,则发出与位置无关的代码,适用于动态链接,并避免对全局偏移表大小的任何限制。

还可以尝试search

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23011162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档