簡體   English   中英

GCC M68K PC相對

[英]GCC m68k pc-relative

我正在使用Microtek工具鏈生成具有可重定位代碼(相對於pc)和來自固定地址的數據(絕對數據)的可執行二進制文件。 如今,此工具鏈無法在Windows 7 64位上運行。 這個想法是用GNU工具鏈(GCC 4.8.0)代替68000的Microtek工具鏈。

但是我在gcc編譯器上找不到相同的選項:

Microtec編譯器“ MCC68K”,帶有:“ -Mcp”:指示編譯器對所有代碼引用使用PC相對尋址。 “ -Mda”:指示編譯器對所有數據引用使用絕對尋址。

GCC(m68k-elf-gcc)具有:-mpcrel

無法像Microteck編譯器那樣使用沒有可重定位數據的gcc可重定位代碼進行構建。 使用“ -mpcrel”,所有內容均可重定位(代碼和數據)。

你有想法嗎?

對不起,我的英語不好。

謝謝。

據我所知,使用GNU m68k工具鏈無法獲得相同的結果。

  • -mpcrel將生成完全獨立於位置的代碼,並且對代碼和數據使用pc相對地址,從而導致程序/數據大小受限(pc相對偏移不能超過16位)。
  • -fpic-fPIC將生成具有可重定位二進制文​​件的與位置無關的代碼,但將需要特殊的加載程序來進行就地重定位

來自gcc文檔

-fpic生成適合在共享庫中使用的位置無關代碼(PIC),...

-fPIC如果目標計算機支持,則發出與位置無關的代碼,適合動態鏈接並避免對全局偏移表的大小進行任何限制。

也嘗試搜尋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM