On Wed, Sep 30, 2020 at 3:56 AM Nick Clifton wrote: > > Hi Fangrui, Hi H.J., > > > If the section group intention of .annobin.text is so that .annobin.text > > can be discarded if the associated .text is discarded (--gc-sections), > > an alternative is SHF_LINK_ORDER > > Sorry to bother you with this, but I am having some troubles > getting to grip with using SHF_LINK_ORDER to eliminate unused > sections. I create a small test file to compare using groups > and link_orders but it does not work as I would expect: > > % cat eliminate.s > .text > .nop > > .section .unused1, "ax", %progbits > .nop > > .section .unused2, "axG", %progbits, unused_group > .nop > > .section .gnu.note.text, "", %note > .word 1 > > .section .gnu.note1, "o", %note, .unused1 > .word 2 > > .section .gnu.note2, "G", %note, unused_group > .word 3 > > % as eliminate.s -o elminate.o > % ld -e0 --gc-sections --print-gc-sections elminate.o > ld: removing unused section '.group' in file 'eliminate.o' > ld: removing unused section '.text' in file 'eliminate.o' > ld: removing unused section '.unused1' in file 'eliminate.o' > ld: removing unused section '.unused2[unused_group]' in file 'eliminate.o' > ld: removing unused section '.gnu.note2[unused_group]' in file 'eliminate.o' > ld: a.out: sh_link of section `.gnu.note1' points to discarded section `.unused1' of `eliminate.o' > ld/: final link failed: bad value > > I thought that the sh_link from .gnu.note1 to .unused1 would mean that it > should be discarded when .unused1 is discarded. But instead I get an > error. > > I am probably doing something silly, but please could you point me in the > right direction ? > Please try this patch. -- H.J.