On Fri, Dec 04, 2020 at 05:16:38AM -0800, H.J. Lu via Gcc-patches wrote:
> On Fri, Dec 4, 2020 at 4:17 AM Jozef Lawrynowicz
> <joze...@mittosystems.com> wrote:
> >
> > On Thu, Dec 03, 2020 at 04:06:50PM -0800, H.J. Lu via Gcc-patches wrote:
> > > When SECTION_RETAIN is used, definitions marked with used attribute and
> > > unmarked definitions are placed in the same section.  Instead of issue
> > > an error:
> > >
> > > [hjl@gnu-cfl-2 gcc]$ /usr/gcc-11.0.0-x32/bin/gcc -S c.c 
> > > -fdiagnostics-plain-output
> > > c.c:2:49: error: ‘foo1’ causes a section type conflict with ‘foo2’
> > > c.c:1:54: note: ‘foo2’ was declared here
> > > [hjl@gnu-cfl-2 gcc]$
> > >
> > > the first patch switches to a new section if the SECTION_RETAIN bit
> > > doesn't match.  The second optional patch issues a warning:
> > >
> > > [hjl@gnu-cfl-2 gcc]$ ./xgcc -B./ -S c.c -fdiagnostics-plain-output
> > > c.c:2:49: warning: ‘foo1’ without ‘used’ attribute is placed in a section 
> > > with ‘foo2’ with ‘used’ attribute [-Wattributes]
> > > [hjl@gnu-cfl-2 gcc]$
> >
> > I think the warning is useful, since we are modifying the structure of
> > the object file where the user may not expect it. It ensures they review
> > which declarations have "used" applied so they don't unexpectedly lose
> > parts of their program they wanted to keep by putting them in a
> > section that was marked "used" elsewhere.
> 
> I agree.
> 
> > >
> > > H.J. Lu (2):
> > >   Switch to a new section if the SECTION_RETAIN bit doesn't match
> > >   Warn used and not used symbols in the same section
> >
> > We should probably use a new PR to associate with these patches, rather
> > than PR/98121.
> >
> > Your changes here address the issue exposed by glibc code, whilst 98121
> > was for the broader issue of whether "used" should apply SHF_GNU_RETAIN.
> >
> > Let me know if you agree, and I'll create a new GCC PR for the specific
> 
> Please do.

Filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98146.

Thanks,
Jozef

Reply via email to