2012-03-17 312 views
5

你好,我有一個鏈接腳本,其中我發現代碼「__exidx_start = .;」,它將標籤值設置爲位置計數器「.」的值。這個標籤不會在同一個鏈接描述文件中的任何地方使用。'__exidx_start'和'__exidx_end'他們做什麼?

在第一個下面有一個類似的標籤定義了幾行,它的定義方式與「__exidx_end = .;」相同。

這兩個標籤是.text.rodata部分boundries,但我不知道爲什麼會有人定義這兩個,如果他們沒有在鏈接腳本中使用?

回答

2

它們不在鏈接器腳本中使用,但它們被聲明爲extern變量並在gcc庫中使用。把它們拿出來,這就是發生了什麼事:

 
.../gcc/config/arm/unwind-arm.c:614: undefined reference to `__exidx_start' 
.../gcc/config/arm/unwind-arm.c:614: undefined reference to `__exidx_end' 
相關問題