2013-10-29 21 views
1

我使用的GNU鏈接腳本,其中bss部分變量越來越非4字節對齊的地址,這是爲變量的地址正在使用的硬件的大問題,需要字對齊地址。ARM:GNU GCC連接BSS部分對準

而不是使用它們的單獨一個align屬性,讓如果我有10個變量或我想有鏈接生成字對齊的地址,每個變量的特定部分我該怎麼辦呢?

我一直在使用ALIGN()不影響審判。

這是例子:

.bss.a 9cdf8  0x1 

.bss.b 9cdf9  0x1 

對於.bss.b我想獲得0x9cdf8 + 4因此對於所有的變量。

我該如何做到這一點?

+0

有** 2 **類型*對準的*。一個用於*輸入部分*,另一個用於*輸出部分*。您必須在源文件中設置對齊方式。請參閱'SORT_BY_ALIGNMENT','SORT_BY_NAME',或者您可以指定每個文件。 '.bss {foo.o(.bss); 。 = ALIGN(4);文件bar.o(.bss段); }'。 「ALIGN」只是對齊當前輸出地址。 –

回答