This is the mail archive of the
dwarf2@corp.sgi.com
mailing list for the dwarf2 project.
Re: duplicate dwarf2 reduction via comdat
Jason Merrill wrote:
>
> >>>>> "David" == David B Anderson <davea@quasar.engr.sgi.com> writes:
>
> >>> The Elf COMDAT (aka SECTION GROUP) rules forbid relocations
> >>> which are offsets into a COMDAT section.
> >>
> >> Why? Arrgh.
>
> > Because 'to the byte identical everywhere' is not required
> > for section groups with the same name. So one
> > cannot be sure that blind (internal) section relative relocations
> > work right. (well that's my guess, not having been part of
> > the deliberations).
>
> > Relocations to a particular external name are fine as these
> > will work right even if the name is not at the identical byte in.
>
> So symbolic references are OK after all? That's how my implementation
> works.
It is fine to refer to a global symbol defined with a value that's in
a group section's address range, as long as you're conscious about which
of the group's symbols might not be defined in another instance of the
group that might displace it. Using an offset from a global symbol
implies knowledge about how the alternative instances would be laid out,
and must be done ___very___ carefully.
Jim
--
- Jim Dehnert dehnert@transmeta.com
(408)919-6984 dehnertj@acm.org