2012-06-05 34 views
1

我正在爲我的項目使用ARM ELF工具鏈。我正在開發一個引導程序,它需要獨立於位置,因爲它將在重置時將其從閃存重定位到RAM。我努力弄清楚如何使用GNU ARM工具鏈編譯位置獨立代碼,但似乎無法使其工作。如何使用GNU ARM工具鏈生成與位置無關的代碼?

我已經嘗試使用-fpic和-fpie選項編譯器和-pie鏈接器,但是當我使用這些選項編譯器抱怨沒有爲.got或.plt節定義節。我不確定這些部分應該放在哪裏,即在BSS或TEXT中。經過Google搜索後,我認爲我應該只使用-fpie,但我不確定。

有經驗的人可以幫助我嗎?我正在使用GNU ARM 4.1.1

+0

有人?很難接受這裏沒有人遇到過這個問題。 – binW

回答

0

您可以通過向其他彙編程序提供-mapcs-reentrant選項arm-linux-gnueabi-gcc-Wa,-K選項來生成位置獨立代碼[PIC]。 like:

arm-linux-gnueabi-gcc <other option> -mapcs-reentrant -Wa, -K <other option> files..