對my answer describing how to use linker scripts to make a ctor-like function list的一個很好的評論指出,最近的GNU ld已經大大改進了將新章節移植到系統鏈接描述文件中的支持,其中-Wl,-T...
和INSERT BEFORE
/INSERT AFTER
。這讓我想到了其他鏈接腳本技巧。巧妙使用鏈接器腳本?
對於網卡固件,我修改了鏈接描述文件,將固件的運行時模塊分組在一起,以便它們全部位於可能在L1高速緩存中而沒有衝突的連續塊中。清理散兵士兵(我無法通過.o
進行分組)我在各個功能上使用了部分屬性。性能計數器驗證它實際上工作(減少L1指令緩存缺失幾乎沒有)。
你用鏈接器腳本完成了哪些其他聰明的事情?