Я понимаю, что они содержат батуты .Батуты созданы компилятором или компоновщиком?Каков формат раздела (он не является кодом. Objdump -d не может его разобрать)?
Есть ли возможность подавить их создание?
Nr Name Type Addr Off Size ES Flg Lk Inf Al
16 .tramp PROGBITS 0xxxxxxx 0xxxxx 0000xx 00 A 0 0 4
Я не смог найти ничего в спецификации ELF .
Изменить 2012.01.30:
Немного больше информации по этому вопросу.Код генерируется компилятором MaxAda (версия 3.5.1) и каким-то образом связан с Ada Runtime.
Единственный символ, который ссылается на раздел .tramp, это
4379: 080xxxxx 0 OBJECT GLOBAL DEFAULT 16 A$rts_bounce_list
Построил файл карты компоновщика и обнаружил, что символ возник из:
/usr/ada/i86_3.5.1/lib/libruntime.bart.a(bounce.red_hat.o)
/usr/ada/i86_3.5.1/lib/libruntime.bart.a(ada.rts.elaboration.runtimeB) (A$rts_bounce_list)
Шестнадцатеричный дампраздела (objdump) дает:
Contents of section .tramp:
80xxxa8 01000000 90e70708 22e80708 01000000 ........".......
80xxxb8 24e80708 17eb0708 01000000 4cec0708 $...........L...
80xxxc8 4cee0708 01000000 4cee0708 c2f00708 L.......L.......
80xxxd8 01000000 701d0808 1f1e0808 01000000 ....p...........
80xxxe8 70400808 c6410808 02000000 ac960808 p@...A..........
80xxxf8 00000000 02000000 00000000 00000000 ................
80xxy08 02000000 00000000 00000000 03000000 ................
80xxy18 66400808 01000000 02000000 349d0808 f@..........4...
80xxy28 00000000 02000000 00000000 00000000 ................
Руководство совершенно бесполезно:
Pragma TRAMPOLINE
NOTE : Pragma TRAMPOLINE is reserved for internal MAXAda use only;
it is not intended for use in user-defined code.