#1053551 ftbfs on amd64 when building binary-arch

Package:
gcc-12
Source:
gcc-12
Description:
GNU C compiler
Submitter:
Simon Richter
Date:
2026-01-10 10:58:20 UTC
Severity:
normal
Tags:
#1053551#5
Date:
2023-10-06 07:49:03 UTC
From:
To:
Hi,

I just built arch:all and arch:amd64 packages separately in pbuilder,
and got a reproducible build failure while building amd64 with
--binary-arch. Normal severity because building both arch-dependent and
arch-independent packages together works fine.

/build/gcc-12-12.3.0/build/./prev-gcc/xg++ -B/build/gcc-12-12.3.0/build/./prev-gcc/ -B/usr/x86_64-linux-gnu/bin/ -nostdinc++ -B/build/gc
c-12-12.3.0/build/prev-x86_64-linux-gnu/libstdc++-v3/src/.libs -B/build/gcc-12-12.3.0/build/prev-x86_64-linux-gnu/libstdc++-v3/libsupc++
/.libs  -I/build/gcc-12-12.3.0/build/prev-x86_64-linux-gnu/libstdc++-v3/include/x86_64-linux-gnu  -I/build/gcc-12-12.3.0/build/prev-x86_
64-linux-gnu/libstdc++-v3/include  -I/build/gcc-12-12.3.0/src/libstdc++-v3/libsupc++ -L/build/gcc-12-12.3.0/build/prev-x86_64-linux-gnu/
libstdc++-v3/src/.libs -L/build/gcc-12-12.3.0/build/prev-x86_64-linux-gnu/libstdc++-v3/libsupc++/.libs  -fno-PIE -c -g   -g -O2 -fno-che
cking -gtoggle -DIN_GCC     -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
  -DHAVE_CONFIG_H -I. -Im2/gm2-gcc -I../../src/gcc -I../../src/gcc/m2/gm2-gcc -I../../src/gcc/../include -I../../src/gcc/../libcpp/inclu
de -I../../src/gcc/../libcody  -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/bid -I../libdecnumber -I../../src/gcc/../
libbacktrace   -I. -Im2/gm2-gcc -I../../src/gcc -I../../src/gcc/m2/gm2-gcc -I../../src/gcc/../include -I../../src/gcc/../libcpp/include
-I../../src/gcc/../libcody  -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/bid -I../libdecnumber -I../../src/gcc/../lib
backtrace  ../../src/gcc/m2/gm2-gcc/m2type.cc -o m2/gm2-gcc/m2type.o
[...]
In file included from ./tm.h:26,
                 from ../../src/gcc/backend.h:28,
                 from ../../src/gcc/m2/gm2-gcc/gcc-consolidation.h:26,
                 from ../../src/gcc/m2/gm2-gcc/m2type.cc:22:
../../src/gcc/config/i386/i386.h:2374:10: fatal error: insn-attr-common.h: No such file or directory
 2374 | #include "insn-attr-common.h"
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.

A lot of the other M2 sources are also affected.

   Simon

#1053551#10
Date:
2023-10-12 06:17:36 UTC
From:
To:
I cannot reproduce this, and I would rather not investigate time into that.
Please check if you see this with gcc-13 as well.

#1053551#15
Date:
2023-10-12 10:14:20 UTC
From:
To:
Hi,

I suspect it's a missing dependency, so the failure is more dependent on
"number of threads", and that it succeeds for -b might be coincidence.

I'll try adding a sleep statement to the rule generating this file and
see if I can get it to reproduce always.

    Simon

#1053551#20
Date:
2023-10-12 18:03:46 UTC
From:
To:
Hi,

Confirmed:
--- a/src/gcc/Makefile.in.orig 2023-10-12 12:20:46.349633453 +0200 +++ b/src/gcc/Makefile.in 2023-10-12 12:21:08.087623131 +0200 @@ -2431,6 +2431,7 @@ $(simple_generated_h:insn-%.h=s-%): s-%: build/gen%$(build_exeext) $(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \ $(filter insn-conditions.md,$^) > tmp-$*.h + if test "$*" = "attr-common"; then sleep 300; fi $(SHELL) $(srcdir)/../move-if-change tmp-$*.h insn-$*.h $(STAMP) s-$* makes the problem reproducible even when building with -j2, and regardless of whether building _all packages in the same build or not. I'll check tomorrow about gcc 13 and if that also happens upstream. Simon
#1053551#25
Date:
2023-10-13 09:55:40 UTC
From:
To:
Hi,

gcc 13 is okay, because of 0bfc503c [1]. This patch does not apply
cleanly to gcc-12, because gm2 is a separate archive there, and the file
looks a bit different.

There are a few dependency rules in the file that seem to do the same
thing, but use the wrong target name, so they are ignored, and this
doesn't seem to be a complete set anyway. I'm trying with the same
addition of an order-only dependency that the gcc-13 commit does, if
that fixes it, that should be good enough for now.

Is the separate Modula2 tree still maintained? For us, the one-line fix
should probably be sufficient, but from an upstream perspective, this
should be looked at properly (but might be moot after the merge into
gcc-13).

    Simon

[1]
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=00bfc503cc3b3e8f354afeac9b482649418fb70f

#1053551#30
Date:
2023-10-14 13:26:08 UTC
From:
To:
Hi,
dependency to make sure the insn-*.h are generated before frontend files
are built. This variable is set below the include directive in
gcc/Makefile that pulls in the language fragments, so at the point where
the rules are defined it is still empty, and since rule definitions
evaluate the variables immediately, that is not revisited later, so all
the Modula2 .o files are missing those dependencies.

I'm trying what happens if you set M2_OBJS = $(GM2_OBJS), so these .o
files end up a) in normal dependency tracking, and b) to add the
order-only dependency on $(generated_files) at the end of gcc/Makefiles
to those objects as well.

The order-only dependency should be enough for the first build, and
after that, normal dependency tracking takes over anyway, not that
anyone cares.

Am I right in assuming that this is only a Debian problem because no one
but us is gluing the M2 frontend onto gcc 12 anymore?

    Simon

#1053551#35
Date:
2026-01-10 10:10:29 UTC
From:
To:
Es gibt eine Familienspende in Höhe von 1.850.000,00 USD von Cheng Charlie
Saephan. Bitte antworten Sie für weitere Informationen. Denken Sie daran,
Ihrer Familie und den Bedürftigen in Ihrer Umgebung Gutes zu tun.

Dies ist bereits der zweite Versuch, Sie zu erreichen. Bitte antworten Sie
für weitere Details.