[英]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
將生成具有可重定位二進制文件的與位置無關的代碼,但將需要特殊的加載程序來進行就地重定位
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.