Clear SHF_GROUP flag when linking
commitccf9ed7d54910308ac1779d090cb38b5da2ad948
authorroot <root@mallow.celest.fr>
Fri, 25 Nov 2016 21:29:01 +0000 (25 21:29 +0000)
committerThomas Preud'homme <robotux@celest.fr>
Sat, 3 Dec 2016 17:26:50 +0000 (3 17:26 +0000)
tree4d3ed1fb47dc30c70e0099c665f33aba78602cdd
parented99f3608df3d6dd4c8c7d52d608a8212203dfe4
Clear SHF_GROUP flag when linking

SHF_GROUP flag set on a section indicates that it is part of a section
group and that if the section is removed, the other sections in the same
group should be removed as well [1]. Since section group are guide for
the linking process, they do not have any meaning after linking has
occured. TCC rightfully [2] discard such sections (by not recognizing the
section type) but keeps the SHF_GROUP flag set on sections that were
part of a section group which confuses binutils (objdump and gdb at
least). Clearing that bit makes objdump and gdb accept binaries created
by TCC.

[1] https://docs.oracle.com/cd/E19683-01/816-1386/chapter7-26/index.html
[2] GNU ld does the same
tccelf.c