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
I cannot reproduce this, and I would rather not investigate time into that. Please check if you see this with gcc-13 as well.
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
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
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
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
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.