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

--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 13 Mar 2018, hjl.tools at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84847
> 
> --- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
> (In reply to David Malcolm from comment #0)
> > The downstream bug report:
> >   https://bugzilla.redhat.com/show_bug.cgi?id=1543912
> > describes a problem building systemd and systemd-bootchart with gcc 8, which
> > turned out to be due to those packages' configure scripts injecting both
> >   -flto
> > and
> >   -Wl,--gc-sections
> > 
> > They build fine with just one of them, but with both, the binaries have
> > corrupt DWARF debuginfo.
> > 
> > Adding "-Wl,--print-gc-sections" shows the issue more clearly.
> > 
> > I created a minimal reproducer here:
> >   https://github.com/davidmalcolm/rhbz-1543912
> > with which I can reproduce the issue, using:
> >   gcc-8.0.1-0.16.fc29.x86_64
> >   binutils-2.30-6.fc29.x86_64
> > (this is on Fedora in a chroot via "mock -r fedora-rawhide-x86_64 shell";
> > I'm still working on reproducing this outside a chroot)
> > 
> > $ make
> > gcc -I ./src -flto -O2 -g -c src/bootchart.c -o build/bootchart.o
> > gcc -I ./src -flto -O2 -g -c src/log.c -o build/log.o
> > gcc -flto -g -Wl,--gc-sections -Wl,--print-gc-sections \
> >   build/bootchart.o build/log.o \
> >           -o build/systemd-bootchart
> > /usr/bin/ld: Removing unused section '.rodata.cst4' in file
> > '/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o'
> > /usr/bin/ld: Removing unused section '.data' in file
> > '/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o'
> > /usr/bin/ld: Removing unused section '.rodata' in file
> > '/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o'
> > /usr/bin/ld: Removing unused section '.debug_abbrev' in file
> > '/tmp/cc1vnNPxdebugobj'
> > /usr/bin/ld: Removing unused section '.debug_str' in file
> > '/tmp/cc1vnNPxdebugobj'
> > /usr/lib/rpm/debugedit build/systemd-bootchart
> > /usr/lib/rpm/debugedit: build/systemd-bootchart: Invalid .line_table offset
> > 0x2b0803
> > /usr/lib/rpm/debugedit: build/systemd-bootchart: Could not find DWARF
> > abbreviation 7
> > 
> 
> With binutils master branch, I got
> 
> mkdir build
> gcc -I ./src -flto -O2 -g -c src/bootchart.c -o build/bootchart.o
> gcc -I ./src -flto -O2 -g -c src/log.c -o build/log.o
> gcc -flto -g -Wl,--gc-sections -Wl,--print-gc-sections \
>   build/bootchart.o build/log.o \
>           -o build/systemd-bootchart
> /usr/local/bin/ld: removing unused section '.rodata.cst4' in file
> '/usr/lib/gcc/x86_64-redhat-linux/7/../../../../lib64/crt1.o'
> /usr/local/bin/ld: removing unused section '.data' in file
> '/usr/lib/gcc/x86_64-redhat-linux/7/../../../../lib64/crt1.o'
> /usr/local/bin/ld: removing unused section '.rodata' in file
> '/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o'
> /usr/lib/rpm/debugedit build/systemd-bootchart
> 
> Does it look OK?

Can you try

make check-target-libstdc++-v3 RUNTESTFLAGS="prettyprinters.exp"

with binutils master and the prettyprinters.exp hack removed?

Do you know what fixed it on master?

Reply via email to