RFC Adding a section group flag of 0

Florian Weimer fweimer@redhat.com
Wed Jan 9 15:01:00 GMT 2019


* Nick Clifton:

> Hi Guys,
>
>   Currently the ELF standard for section groups requires that the first word 
>   of data in the group section be a flag, with only certain values recognised:
>
>     The following flags are currently defined:
>     Figure 4-13: Section Group Flags
>
>     Name 		Value
>     GRP_COMDAT 		0x1
>     GRP_MASKOS 		0x0ff00000
>     GRP_MASKPROC 	0xf0000000
>
>     [...]
>
>   I would like to propose adding a new value to this list.  A value of 0.
>   This value would indicate that the section group has no special processing
>   semantics, and that the contents of the group, unless discarded via garbage
>   collection, should be linked as normal.
>
>   This matches the current behaviour of the bfd and gold linkers, and it would
>   also help to resolve a problem for the lld linker:
>
> https://reviews.llvm.org/D56437
>
>   This is not a theoretical problem, as binaries containing section groups with
>   a flag value of zero already exist:
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1658942
>
>   The maintainers of lld have stated, quite reasonably, that they do not want to
>   add support for an unofficial flag value.  Hence I would like to make the value
>   official.

According to my reading of the specification, the behavior of flag 0 is
already specified.  Setting GRP_COMDAT merely enables deduplication of
the section group based on its name.  With flag 0, the name is not used
and no deduplication happens.

Thanks,
Florian



More information about the Binutils mailing list