https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102187
Bug ID: 102187
Summary: Ada LTO bootstrap broken on x86_64 since
r12-2927-g29020d0527512a
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: bootstrap
Assignee: unassigned at gcc dot gnu.org
Reporter: jamborm at gcc dot gnu.org
CC: ebotcazou at gcc dot gnu.org
Target Milestone: ---
Host: x86_64-linux
Target: x86_64-linux
When attempting to LTO-bootstrap Ada on x86_64 machines, I get the
following ICE:
/home/mjambor/gcc/mine/b-obj/./prev-gcc/xgcc
-B/home/mjambor/gcc/mine/b-obj/./prev-gcc/
-B/home/mjambor/gcc/mine/inst/x86_64-pc-linux-gnu/bin/
-B/home/mjambor/gcc/mine/inst/x86_64-pc-linux-gnu/bin/
-B/home/mjambor/gcc/mine/inst/x86_64-pc-linux-gnu/lib/ -isystem
/home/mjambor/gcc/mine/inst/x86_64-pc-linux-gnu/include -isystem
/home/mjambor/gcc/mine/inst/x86_64-pc-linux-gnu/sys-include -fno-checking -c
-g -O2 -fno-checking -flto=jobserver -frandom-seed=1 -gnatpg -gnata -W -Wall
-nostdinc -I- -I. -Iada/generated -Iada -I/home/mjambor/gcc/mine/src/gcc/ada
-Iada/libgnat -I/home/mjambor/gcc/mine/src/gcc/ada/libgnat -Iada/gcc-interface
-I/home/mjambor/gcc/mine/src/gcc/ada/gcc-interface
/home/mjambor/gcc/mine/src/gcc/ada/exp_dist.adb -o ada/exp_dist.o
+===========================GNAT BUG DETECTED==============================+
| 12.0.0 20210901 (experimental) (x86_64-pc-linux-gnu) GCC error: |
| in get_base_type_offset, at dwarf2out.c:4330 |
| Error detected around
/home/mjambor/gcc/mine/src/gcc/ada/exp_dist.adb:11655:1|
| Compiling /home/mjambor/gcc/mine/src/gcc/ada/exp_dist.adb |
| Please submit a bug report; see https://gcc.gnu.org/bugs/ . |
| Use a subject line meaningful to you and us to track the bug. |
| Include the entire contents of this bug box in the report. |
| Include the exact command that you entered. |
| Also include sources listed below. |
+==========================================================================+
(I'm omitting the long lit of "sources listed below," just run LTO
bootstrap with Ada to reproduce).
I have bisected it down to:
29020d0527512ae0444ad32b1461b7f8526e7427 is the first bad commit
commit 29020d0527512ae0444ad32b1461b7f8526e7427
Author: Eric Botcazou <[email protected]>
Date: Mon Aug 16 12:14:12 2021 +0200
Disable GNAT encodings by default
Given the latest work in the compiler and debugger, we no longer need to
use
most GNAT-specific encodings in the debug info generated for an Ada
program,
so the attached patch disables them, except with -fgnat-encodings=all.
gcc/
* dwarf2out.c (add_data_member_location_attribute): Use GNAT
encodings only when -fgnat-encodings=all is specified.
(add_bound_info): Likewise.
(add_byte_size_attribute): Likewise.
(gen_member_die): Likewise.
gcc/dwarf2out.c | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
bisect run success
FWIW, my configure options I used when bisecting are just:
--enable-languages=c,c++,ada --enable-checking=yes --disable-libsanitizer
--disable-libgomp --with-build-config=bootstrap-lto