Building GCC with multiple make jobs appears to trigger a race condition.  The 
build fails with:

/bin/bash: 
TOPDIR/tmp/work/x86_64-linux/gcc-cross-i686/9.3.0-r0/gcc-9.3.0/build.x86_64-linux.i686-poky-linux/./gcc/xgcc:
 No such file or directory

Signed-off-by: Steve Sakoman <st...@sakoman.com>
---
 meta/recipes-devtools/gcc/gcc-9.3.inc         |  1 +
 ...x-missing-dependencies-for-selftests.patch | 45 +++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 
meta/recipes-devtools/gcc/gcc-9.3/0040-fix-missing-dependencies-for-selftests.patch

diff --git a/meta/recipes-devtools/gcc/gcc-9.3.inc 
b/meta/recipes-devtools/gcc/gcc-9.3.inc
index 1c8e3df51d..235576e627 100644
--- a/meta/recipes-devtools/gcc/gcc-9.3.inc
+++ b/meta/recipes-devtools/gcc/gcc-9.3.inc
@@ -69,6 +69,7 @@ SRC_URI = "\
            
file://0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch \
            
file://0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
            
file://0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch \
+           file://0040-fix-missing-dependencies-for-selftests.patch \
            
file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \
            
file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \
            file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \
diff --git 
a/meta/recipes-devtools/gcc/gcc-9.3/0040-fix-missing-dependencies-for-selftests.patch
 
b/meta/recipes-devtools/gcc/gcc-9.3/0040-fix-missing-dependencies-for-selftests.patch
new file mode 100644
index 0000000000..c8960c6098
--- /dev/null
+++ 
b/meta/recipes-devtools/gcc/gcc-9.3/0040-fix-missing-dependencies-for-selftests.patch
@@ -0,0 +1,45 @@
+From b19d8aac15649f31a7588b2634411a1922906ea8 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.na...@gmail.com>
+Date: Wed, 3 Jun 2020 12:30:57 -0600
+Subject: [PATCH] Fix missing dependencies for selftests which occasionally
+ causes failed builds.
+
+gcc/
+
+       * Makefile.in (SELFTEST_DEPS): Move before including language makefile
+       fragments.
+       
+Upstream-Status: Backport 
[https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=b19d8aac15649f31a7588b2634411a1922906ea8]
+Signed-off-by:Steve Sakoman <st...@sakoman.com>
+
+---
+ gcc/Makefile.in | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index aab1dbba57b..be11311b60d 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -1735,6 +1735,10 @@ $(FULL_DRIVER_NAME): ./xgcc$(exeext)
+       $(LN_S) $< $@
+ 
+ #
++# SELFTEST_DEPS need to be set before including language makefile fragments.
++# Otherwise $(SELFTEST_DEPS) is empty when used from <LANG>/Make-lang.in.
++SELFTEST_DEPS = $(GCC_PASSES) stmp-int-hdrs $(srcdir)/testsuite/selftests
++
+ # Language makefile fragments.
+ 
+ # The following targets define the interface between us and the languages.
+@@ -2010,8 +2014,6 @@ DEVNULL=$(if $(findstring mingw,$(build)),nul,/dev/null)
+ SELFTEST_FLAGS = -nostdinc $(DEVNULL) -S -o $(DEVNULL) \
+       -fself-test=$(srcdir)/testsuite/selftests
+ 
+-SELFTEST_DEPS = $(GCC_PASSES) stmp-int-hdrs $(srcdir)/testsuite/selftests
+-
+ # Run the selftests during the build once we have a driver and the frontend,
+ # so that self-test failures are caught as early as possible.
+ # Use "s-selftest-FE" to ensure that we only run the selftests if the
+-- 
+2.27.0
+
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157222): 
https://lists.openembedded.org/g/openembedded-core/message/157222
Mute This Topic: https://lists.openembedded.org/mt/86449118/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to