[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/build32: Discard all orphaned sections
On 13/05/2020 16:15, Jan Beulich wrote: >>> But it would be really nice if we had a way to >>> flag the need to play with the linker script. Hence perhaps >>> on new enough tool chains we indeed may want to make use of >>> --orphan-handling= ? And then discard just .note and .note.* >>> here? >> The only valid option would be =error, but experimenting with that yields >> >> ld: error: unplaced orphan section `.comment' from `cmdline.o' >> ld: error: unplaced orphan section `.note.GNU-stack' from `cmdline.o' >> ld: error: unplaced orphan section `.note.gnu.property' from `cmdline.o' >> ld: error: unplaced orphan section `.rel.got' from `cmdline.o' >> ld: error: unplaced orphan section `.got' from `cmdline.o' >> ld: error: unplaced orphan section `.got.plt' from `cmdline.o' >> ld: error: unplaced orphan section `.iplt' from `cmdline.o' >> ld: error: unplaced orphan section `.rel.iplt' from `cmdline.o' >> ld: error: unplaced orphan section `.igot.plt' from `cmdline.o' >> >> which I think is going to get us massively bogged down in toolchain >> specifics. I'm not entirely convinced this would be a good move. > That's ugly indeed; especially the .rel.* sections are worrying to > appear there. What is even more curious, most of them don't exist in cmdine.o Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .group GROUP 00000000 000034 000008 04 14 38 4 [ 2] .group GROUP 00000000 00003c 000008 04 14 40 4 [ 3] .text PROGBITS 00000000 000044 00094a 00 AX 0 0 1 [ 4] .rel.text REL 00000000 000e88 0001e8 08 I 14 3 4 [ 5] .data PROGBITS 00000000 00098e 000000 00 WA 0 0 1 [ 6] .bss NOBITS 00000000 00098e 000000 00 WA 0 0 1 [ 7] .rodata PROGBITS 00000000 000990 0000f3 00 A 0 0 4 [ 8] .rel.rodata REL 00000000 001070 000120 08 I 14 7 4 [ 9] .text.__x86.get_pc_thunk.ax PROGBITS 00000000 000a83 000004 00 AXG 0 0 1 [10] .text.__x86.get_pc_thunk.bx PROGBITS 00000000 000a87 000004 00 AXG 0 0 1 [11] .comment PROGBITS 00000000 000a8b 00002d 01 MS 0 0 1 [12] .note.GNU-stack PROGBITS 00000000 000ab8 000000 00 0 0 1 [13] .note.gnu.property NOTE 00000000 000ab8 00001c 00 A 0 0 4 [14] .symtab SYMTAB 00000000 000ad4 000290 10 15 36 4 [15] .strtab STRTAB 00000000 000d64 000124 00 0 0 1 [16] .shstrtab STRTAB 00000000 001190 0000a7 00 0 0 1 I suspect they are inserted by default as part of processing the relocations, and end up empty. With =warn rather than =error, we instead get ld: warning: orphan section `.comment' from `cmdline.o' being placed in section `.comment' ld: warning: orphan section `.note.GNU-stack' from `cmdline.o' being placed in section `.note.GNU-stack' ld: warning: orphan section `.note.gnu.property' from `cmdline.o' being placed in section `.note.gnu.property' ld: warning: orphan section `.rel.got' from `cmdline.o' being placed in section `.rel.dyn' ld: warning: orphan section `.got' from `cmdline.o' being placed in section `.got' ld: warning: orphan section `.got.plt' from `cmdline.o' being placed in section `.got.plt' ld: warning: orphan section `.iplt' from `cmdline.o' being placed in section `.iplt' ld: warning: orphan section `.rel.iplt' from `cmdline.o' being placed in section `.rel.dyn' ld: warning: orphan section `.igot.plt' from `cmdline.o' being placed in section `.igot.plt' and Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .note.gnu.property NOTE 00000000 0000b4 00001c 00 A 0 0 4 [ 2] .text PROGBITS 0000001c 0000d0 000a47 00 WAX 0 0 4 [ 3] .got.plt PROGBITS 00000a64 000b18 00000c 04 WA 0 0 4 [ 4] .comment PROGBITS 00000000 000b24 00002c 01 MS 0 0 1 [ 5] .symtab SYMTAB 00000000 000b50 000230 10 6 31 4 [ 6] .strtab STRTAB 00000000 000d80 000124 00 0 0 1 [ 7] .shstrtab STRTAB 00000000 000ea4 000046 00 0 0 1 in cmdline.lnk, so the .rel.* sections have been dropped overall. I think the =error logic is simply at an unhelpful position during processing. > Hence patch as is Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Thanks, As I say, I have a plan to replace all of this completely when a bit more of kbuild is in place. ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |