- 論壇徽章:
- 20
|
我沒有看過elf的規(guī)范,但是我做過一個實驗,把一個elf文件里的.bss字符串替換為.BSS(sed s/bss/BSS/),elf文件同樣可以正常執(zhí)行的。
粗略瀏覽了一下exec/load_elf_binray路徑,總體感覺是section叫什么名字不重要,關(guān)鍵是section的屬性(也就是readelf -S 所顯示的type和flag字段)。
Section Headers:
[Nr] Name Type Address Off Size ES Flg Lk Inf Al
[13] .text PROGBITS 00000000004003e0 0003e0 000218 00 AX 0 0 16
[24] .data PROGBITS 0000000000600928 000928 000004 00 WA 0 0 4
[25] .bss NOBITS 0000000000600930 00092c 000010 00 WA 0 0 8
Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings) I (info), L (link order), G (group), x (unknown) O (extra OS processing required) o (OS specific), p (processor specific)
當(dāng)然這也不是絕對的,比如kernel moudle的.ko文件,里面有很多section的名字就是被os定死的(比如.modinfo字段)
至于交叉編譯的問題,還是請其他高人回答吧。 |
|