[Bug bootstrap/87747] New: [9 regression] Bootstrap failure if using gcc-4.6 as stage1 compiler
rearnsha at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 25 09:36:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87747
Bug ID: 87747
Summary: [9 regression] Bootstrap failure if using gcc-4.6 as
stage1 compiler
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: build
Severity: normal
Priority: P3
Component: bootstrap
Assignee: unassigned at gcc dot gnu.org
Reporter: rearnsha at gcc dot gnu.org
CC: iii at linux dot ibm.com, rsandifo at gcc dot gnu.org
Target Milestone: ---
Target: arm-none-linux-gnueabihf
Build: arm-none-linux-gnueabihf
r264556 introduced a new construct to the initializer for rtx_code_size, but
this relies on the compiler being able to optimize away the expression
(FORMAT)[0] even at -O0. If it cannot do this, it will generate a static
constructor to initialize the array.
Unfortunately, cselib.c also has a static constructor that is used to
initialize the pool allocator for cselib VALUE constructs and this uses the
rtx_code_size array.
We therefore have a phase ordering problem where the two constructors must be
run in a precise order or the pool allocator will be initialized incorrectly.
How to repeat:
bootstrap the compiler with gcc-4.6 as the stage1 compiler; probably applies to
all targets, but originally reproduced on ubuntu-12.04 for Arm.
More information about the Gcc-bugs
mailing list