我正在尋找鏈接器腳本的形式語法。類似於給予lex和yacc但與其他yacc行李不同的東西。如果我直接看ld
的源代碼,我可以找到像語法這樣的yacc。但我現在不想這樣做。我在哪裏可以找到正式的ld鏈接器腳本語法?
我看過this question and its answers,但它指的是ld
的手冊頁。 manpages在很大程度上很好,但他們確實以某種模棱兩可的方式指定了一些東西。例如, 拿這個片段從Assignment: Defining Symbols它說:
例如,創建一個絕對符號,它的地址是輸出部分命名。數據的最後一個字節 :
SECTIONS{ ...
.data :
{
*(.data)
_edata = ABSOLUTE(.) ;
}
... }
如何解釋...
?
這是一個例子。經過一番鬥爭,我或許能夠充分準確地解釋這一點;但有很多這樣的例子;所以我的問題是:鏈接器腳本是否有更好的正式規範?就像你在裏奇和克尼漢的書The C Language
的附錄中看到的C語法一樣?
投票關閉作爲資源REC。除了源代碼之外,任何源代碼都不會比文檔更精確......我也鼓勵您生成最小的Linux 32位asm示例並使用objdump分析它們。 – 2015-10-06 21:41:42