RFC Adding a section group flag of 0
Peter Smith
peter.smith@linaro.org
Wed Jan 9 15:04:00 GMT 2019
On Wed, 9 Jan 2019 at 15:00, Florian Weimer <fweimer@redhat.com> wrote:
>
> * 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
This was my first interpretation as well. I had assumed that the flags
specified additional properties over the default. As a possible
alternative to adding 0 as a value, maybe a clarifying sentence in the
paragraph above.
Peter
More information about the Binutils
mailing list