diff options
author | Ross Burton <ross.burton@arm.com> | 2025-03-26 12:11:50 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-03-27 11:19:04 +0000 |
commit | bf94ea1cc4e966fa2cf55206389f9c34fbd5419d (patch) | |
tree | bf85772f00d9414d31245d38efc2ede714a7b8ab | |
parent | 760a61a7071fb0765763041f2f6fa22cf7039f31 (diff) | |
download | poky-bf94ea1cc4e966fa2cf55206389f9c34fbd5419d.tar.gz |
flex: build occasional build failures in test suite compile
GNU Make 4.4 has added --shuffle, which randomly orders build jobs and
is great at exposing missing dependencies. Using this the known problem
with the flex test suite build was found and resolved, so remove the
workaround of doing a non-parallel build and apply a patch.
Also remove redundant Make variables that shouldn't be needed to build
the test suite.
(From OE-Core rev: 1bc37e10690dc906da41b9592bc8776bddf4b90b)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/flex/flex/0001-build-tests-add-missing-parser-scanner-dependencies.patch | 51 | ||||
-rw-r--r-- | meta/recipes-devtools/flex/flex_2.6.4.bb | 4 |
2 files changed, 53 insertions, 2 deletions
diff --git a/meta/recipes-devtools/flex/flex/0001-build-tests-add-missing-parser-scanner-dependencies.patch b/meta/recipes-devtools/flex/flex/0001-build-tests-add-missing-parser-scanner-dependencies.patch new file mode 100644 index 0000000000..130eccc9b4 --- /dev/null +++ b/meta/recipes-devtools/flex/flex/0001-build-tests-add-missing-parser-scanner-dependencies.patch | |||
@@ -0,0 +1,51 @@ | |||
1 | From 47e3916842ffefd7def84ae85758fdcceeb77839 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Thu, 20 Mar 2025 12:16:50 +0000 | ||
4 | Subject: [PATCH] build(tests): add missing parser->scanner dependencies | ||
5 | |||
6 | With sufficient parallelism and `make --shuffle` to reorder builds the | ||
7 | test suite occasionally fails to build with errors like this: | ||
8 | |||
9 | tests/bison_yylval_parser.y:36:10: fatal error: bison_yylval_scanner.h: No such file or directory | ||
10 | 36 | #include "bison_yylval_scanner.h" | ||
11 | |||
12 | Solve this by adding the missing dependencies to the *_parser.o targets | ||
13 | on the _scanner.h files. | ||
14 | |||
15 | Upstream-Status: Submitted [https://github.com/westes/flex/pull/702] | ||
16 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
17 | --- | ||
18 | tests/Makefile.am | 3 +++ | ||
19 | 1 file changed, 3 insertions(+) | ||
20 | |||
21 | diff --git a/tests/Makefile.am b/tests/Makefile.am | ||
22 | index 2cb51df..d0c199d 100644 | ||
23 | --- a/tests/Makefile.am | ||
24 | +++ b/tests/Makefile.am | ||
25 | @@ -343,6 +343,7 @@ FLEX = $(top_builddir)/src/flex | ||
26 | |||
27 | bison_nr_main.$(OBJEXT): bison_nr_parser.h bison_nr_scanner.h | ||
28 | bison_nr_scanner.$(OBJEXT): bison_nr_parser.h | ||
29 | +bison_nr_parser.$(OBJEXT): bison_nr_scanner.h | ||
30 | |||
31 | bison_nr_scanner.h: bison_nr_scanner.c | ||
32 | @if test ! -f $@; then rm -f $<; else :; fi | ||
33 | @@ -350,6 +351,7 @@ bison_nr_scanner.h: bison_nr_scanner.c | ||
34 | |||
35 | bison_yylloc_main.$(OBJEXT): bison_yylloc_parser.h bison_yylloc_scanner.h | ||
36 | bison_yylloc_scanner.$(OBJEXT): bison_yylloc_parser.h | ||
37 | +bison_yylloc_parser.$(OBJEXT): bison_yylloc_scanner.h | ||
38 | |||
39 | bison_yylloc_scanner.h: bison_yylloc_scanner.c | ||
40 | @if test ! -f $@; then rm -f $<; else :; fi | ||
41 | @@ -357,6 +359,7 @@ bison_yylloc_scanner.h: bison_yylloc_scanner.c | ||
42 | |||
43 | bison_yylval_main.$(OBJEXT): bison_yylval_parser.h bison_yylval_scanner.h | ||
44 | bison_yylval_scanner.$(OBJEXT): bison_yylval_parser.h | ||
45 | +bison_yylval_parser.$(OBJEXT): bison_yylval_scanner.h | ||
46 | |||
47 | bison_yylval_scanner.h: bison_yylval_scanner.c | ||
48 | @if test ! -f $@; then rm -f $<; else :; fi | ||
49 | -- | ||
50 | 2.43.0 | ||
51 | |||
diff --git a/meta/recipes-devtools/flex/flex_2.6.4.bb b/meta/recipes-devtools/flex/flex_2.6.4.bb index 434ce47c03..793a935962 100644 --- a/meta/recipes-devtools/flex/flex_2.6.4.bb +++ b/meta/recipes-devtools/flex/flex_2.6.4.bb | |||
@@ -18,6 +18,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/flex-${PV}.tar.gz \ | |||
18 | file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \ | 18 | file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \ |
19 | file://check-funcs.patch \ | 19 | file://check-funcs.patch \ |
20 | file://0001-Emit-no-line-directives-if-gen_line_dirs-is-false.patch \ | 20 | file://0001-Emit-no-line-directives-if-gen_line_dirs-is-false.patch \ |
21 | file://0001-build-tests-add-missing-parser-scanner-dependencies.patch \ | ||
21 | " | 22 | " |
22 | 23 | ||
23 | SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d" | 24 | SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d" |
@@ -55,9 +56,8 @@ RDEPENDS:${PN} += "m4" | |||
55 | RDEPENDS:${PN}-ptest += "bash gawk make" | 56 | RDEPENDS:${PN}-ptest += "bash gawk make" |
56 | 57 | ||
57 | do_compile_ptest() { | 58 | do_compile_ptest() { |
58 | oe_runmake -C ${B}/tests -f ${B}/tests/Makefile top_builddir=${B} INCLUDES=-I${S}/src buildtests | 59 | oe_runmake -C ${B}/tests buildtests |
59 | } | 60 | } |
60 | PTEST_PARALLEL_MAKE = "" | ||
61 | 61 | ||
62 | do_install_ptest() { | 62 | do_install_ptest() { |
63 | mkdir -p ${D}${PTEST_PATH}/build-aux/ | 63 | mkdir -p ${D}${PTEST_PATH}/build-aux/ |