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

Reply via email to