[Bug bootstrap/125598] [16/17 regression] Comparing stages 2 and 3 with -with-build-config=bootstrap-O3
"yizeyi18 at mail dot nankai.edu.cn via Gcc-bugs" <[email protected]>
| Newsgroups | gmane.comp.gcc.bugs |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125598
伊泽平 <yizeyi18 at mail dot nankai.edu.cn> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |yizeyi18 at mail dot nankai.edu.cn
--- Comment #7 from 伊泽平 <yizeyi18 at mail dot nankai.edu.cn> ---
I also got this compare failure boostraping GCC 16.2, with GCC 15.1 or 16.1
used in building stage 1. Only `.debug_loclists` section differs between stage
2/3; all other sections are the same.
It seems that 3 conditions are required to trigger this bootstrap issue:
* macro ENABLE_GC_CHECKING=1 in building stage 1 but =0 in building stage 2/3
* default C++ std used in building stage 2/3 is c++20
* debug sections are generated and compared
For a released GCC 16, condition 1/2 are naturally met, and the build config
plays a role in enabling condition 3: any build config that do not explicitly
disable comparing debug info, e.g. an empty config.
With these 3 conditions set, GCC 15.2 also got bootstrap compare failure;
changing either condition(e.g. write "experimental" to `gcc/DEV-PHASE` so that
ENABLE_GC_CHECKING=1 in all 3 stages, or explicitly inject `-std=c++17` into
stage 2/3 flags, or do not give a --with-build-config so that the default
`bootstrap-debug` config which do explicitly disable comparing debug info), the
compare failures disappear. To reproduce this compare failure in the master
branch, do:
echo "" > gcc/DEV-PHASE
echo "" > config/empty.mk
mkdir -p build && cd build && ../configure $OTHER_ARGS
--with-build-config=empty