https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104838
Bug ID: 104838
Summary: [12 Regression] i686 gnat1 hangs since r12-7472
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
Target Milestone: ---
We are experiencing bootstrap hangs (eventually killed due to eating all
memory) on i686-linux starting with r12-7472-g609e8c492d62d924
but strangely only when building the Fedora gcc package in Fedora koji build
system or in local mock; if I rerun the same xgcc or gnat1 command by hand, it
doesn't hang.
The hang seems to be due to some kind of crash somewhere in gnat1, where the
signal handler calls
ada__exceptions__exception_propagation__allocate_occurrenceXn@plt
and %ebx seems to be start of /usr/lib64/libgnat-12.so (from ~ 14 days old gcc
trunk snapshot) .got.plt section (which I think is what %ebx should be in PLT),
but the .got.plt slot is NULL even though the
ada__exceptions__exception_propagation__allocate_occurrenceXn
symbol is defined in that shared library.
Bisection was my last resort how to narrow this down, even if I apply to
https://kojipkgs.fedoraproject.org/packages/gcc/12.0.1/0.9.fc36/src/gcc-12.0.1-0.9.fc36.src.rpm
just the r12-7472 i386.cc part, it hangs, while if I revert from
the newer gcc just that change, it doesn't.
I'll now try to add debug dumps to ix86_gen_scratch_sse_rtx to see at least in
which functions it changed behavior.
Anyway, any ideas how to debug this? Is there e.g. some easy way how to
disable installation of signal handlers by the Ada runtime (though, does gnat1
as used during bootstrap rely on those)?