Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1815504

Summary: Regression in the line information debug information generated by gcc
Product: Red Hat Developer Toolset Reporter: Carlos Santos <casantos>
Component: gccAssignee: Marek Polacek <mpolacek>
Status: CLOSED ERRATA QA Contact: Alexandra Petlanová Hájková <ahajkova>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: DTS 9.0 RHEL 7CC: ahajkova, dsmith, jakub, mcermak, mjw, mnewsome, ohudlick, sipoyare, vikpatil, wcohen
Target Milestone: alphaKeywords: Bugfix, Triaged
Target Release: 9.1Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: devtoolset-10-gcc-10.2.1-10.1.el7 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-06-03 11:18:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Carlos Santos 2020-03-20 13:00:10 UTC
Description of problem:

The regression was detected when compiling and running valgrind, as valgrind
reads its own debug information, and reports strange values found in the debug
info.

Valgrind reports then that line numbers > 1048575 are found in its own debug
info, when compiled with lto and gcc 9.

Version-Release number of selected component (if applicable):

devtoolset-9-gcc-9.1.1-2.6.el7.x86_64

How reproducible:

Always

Steps to Reproduce:

1. Dowload the valgrind code

   $ wget https://sourceware.org/pub/valgrind/valgrind-3.15.0.tar.bz2

2. Extract the source code

   $ tar -xf valgrind-3.15.0.tar.bz2

3. Configure and build

   $ source scl_source enable devtoolset-9
   $ { ./autogen.sh; \
   ./configure --prefix=`pwd`/install --enable-only64bit --enable-lto; \
   make -j2 install; \
   } >& build.log

Actual results:

   $ ./install/bin/valgrind -q date
   ==14497== warning: Can't handle line info entry with line number 177277754 greater than 1048575
   ==14497== (Nb: this message is only shown once)
   ==14497== warning: Can't handle inlined call info entry with line number 177277750 greater than 1048575 
   ==14497== (Nb: this message is only shown once)
   Fri Mar 20 09:53:41 -03 2020
Expected results:

   $ valgrind -q date
   Fri Mar 20 09:55:17 -03 2020

Additional info:

#### Double check that valgrind debug info reader is correct:
gdb ./.in_place/memcheck-amd64-linux
Reading symbols from ./.in_place/memcheck-amd64-linux...
(gdb) info line guest_amd64_toIR.c:177277754
Line number 177277754 is out of range for "priv/guest_amd64_toIR.c".
Line 177277754 of "priv/guest_amd64_toIR.c" starts at address 0x58069001 <dis_ESC_0F__SSE4+17> and ends at 0x58069005 <dis_ESC_0F__SSE4+21>.
(gdb)
You can also try:
(gdb) disass /s dis_ESC_0F__SSE4
and it shows lots of useless lines.

You can ask valgrind to show more info about what it is doing/reading by doing

./install/bin/valgrind -v -v -v -v -d -d -d -d --debug-dump=line  date |& tee d.out

Comment 2 Marek Polacek 2020-03-20 15:25:53 UTC
You mention this is a regression, what version of GCC handled this right, GCC 8 from DTS 8?

Comment 3 Carlos Santos 2020-03-20 16:54:00 UTC
(In reply to Marek Polacek from comment #2)
> You mention this is a regression, what version of GCC handled this right,
> GCC 8 from DTS 8?

Right, it's a regression regarding devtoolset-8-gcc-8.3.1-3.1.el7.x86_64.

Comment 4 Marek Polacek 2020-03-20 17:39:46 UTC
Reproduced with devtoolset-9-gcc-9.3.1-1.el7.x86_64.  I'll try mainline gcc now.

Comment 5 Marek Polacek 2020-03-20 18:55:49 UTC
Also happens with gcc-10.0.1-0.9.fc32.x86_64 so I think this will require an upstream PR.

Comment 6 Marek Polacek 2020-03-24 19:58:14 UTC
Upstream PR opened.  Hopefully someone who understands LTO more than I will take a look at it before long.

Comment 13 Marek Polacek 2020-10-19 15:33:47 UTC
Fixed upstream.

Comment 25 errata-xmlrpc 2021-06-03 11:18:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (devtoolset-10-gcc bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:2219