tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gcc 16 bootstrap, stage 2 and 3 differ



On Mon, 17 Aug 2026, Thomas Klausner wrote:

If you don't see the difference (I didn't), its:

-fno-checking

vs.

-fchecking=1

all the rest is the same.


That's fine, I should think. It's how the Makefile defines it:

```
    619 STAGE1_TFLAGS += -fno-checking
    620 STAGE2_CFLAGS += -fno-checking
    621 STAGE2_TFLAGS += -fno-checking
    622 STAGE3_CFLAGS += -fchecking=1
    623 STAGE3_TFLAGS += -fchecking=1
```

vs. in the build log:

gmake[3]: Leaving directory '/tmp/lang/gcc16/work/build'
Comparing stages 2 and 3
warning: gcc/cobol/parse.o differs
Bootstrap comparison failure!
gcc/build/genoutput.o differs
gcc/build/gensupport.o differs
gcc/build/genrecog.o differs
gcc/build/genmatch.o differs
gcc/c/gimple-parser.o differs
gcc/c/c-typeck.o differs
gcc/c/c-parser.o differs
gcc/c/c-decl.o differs
gcc/cobol/except.o differs
...

Looking at the toplevel Makefile, the comparison uses

do-compare = cmp $$f1 $$f2 16 16

which is kind of expected since the configure script sets it to

do_compare="$gcc_cv_prog_cmp_skip"


`do-compare' is overridden later on in the Makefile when gcc is being built:

```
   1045 BUILD_CONFIG = bootstrap-debug
   1046 ifneq ($(BUILD_CONFIG),)
   1047 include $(foreach CONFIG, $(BUILD_CONFIG), $(srcdir)/config/$(CONFIG).mk)
1048 endif ```

and in `config/bootstrap-debug.mk' we have:

```
STAGE2_CFLAGS += -gtoggle
do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
```

Can you fiddle with the Makefile to show what `do-compare' is at that point?

```
  29332 compare:
  [...]
  29348           $(do-compare) > /dev/null 2>&1; \
```

-RVP


Home | Main Index | Thread Index | Old Index