From: Luca Ceresoli Date: Sat, 2 May 2020 18:15:04 +0000 (+0200) Subject: package/exim: fix parallel build X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8c75f95e0a3d2600015be5564ee9fe9393d95ebc;p=buildroot.git package/exim: fix parallel build exim does build in parallel correctly, but has a concurrency bug in generating version info files which happens either in the build step or in the install step. Add a patch to fix the bug. Fixes: http://autobuild.buildroot.net/results/ebf/ebfccad007e216564889645a07f5487747116331// http://autobuild.buildroot.net/results/56a/56a8457efcb32579ad6da99a769b6438dd0db267// http://autobuild.buildroot.net/results/6a1/6a1f8a352649baf767b094cb6bbe2a7397fa7fac// http://autobuild.buildroot.net/results/5ed/5ed1c42b3d33198f32d1267e5cc2b1fa1211495a// http://autobuild.buildroot.net/results/b30/b304569948fd481ce33ecd052a1036153c5d459e// http://autobuild.buildroot.net/results/d2c/d2c7abfe08672e53ff890127f787f8d2e84860f4// Signed-off-by: Luca Ceresoli Signed-off-by: Yann E. MORIN --- diff --git a/package/exim/0007-Makefile-Base-fix-version.-h-sh-generation-with-para.patch b/package/exim/0007-Makefile-Base-fix-version.-h-sh-generation-with-para.patch new file mode 100644 index 0000000000..e97bd78a6a --- /dev/null +++ b/package/exim/0007-Makefile-Base-fix-version.-h-sh-generation-with-para.patch @@ -0,0 +1,84 @@ +From 19f6e36d3473ddba1a211e7af9352a10febb7270 Mon Sep 17 00:00:00 2001 +From: Luca Ceresoli +Date: Fri, 1 May 2020 16:27:48 +0200 +Subject: [PATCH] Makefile-Base: fix version.{h,sh} generation with parallel + build + +When using parallel make (make -j) the build sometimes fails either +during 'make' or during 'make install'. + +Error messages look either like: + + make[1]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/exim-4.93.0.4' + /bin/sh scripts/source_checks + `Makefile' is up to date. + + make[2]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/exim-4.93.0.4/build-br' + /bin/sh ../scripts/Configure-os.c + ../scripts/reversion: Your copy of Exim lacks any version information. + Makefile:785: recipe for target 'version.sh' failed + +or like: + + DESTDIR=/home/buildroot/autobuild/instance-2/output-1/target INSTALL_ARG="-no_chown -no_symlink" build=br /usr/bin/make -j4 -C /home/buildroot/autobuild/instance-2/output-1/build/exim-4.93.0.4 CFLAGS="-std=c99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os " install + make[1]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/exim-4.93.0.4' + /bin/sh scripts/source_checks + `Makefile' is up to date. + + make[2]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/exim-4.93.0.4/build-br' + /home/buildroot/autobuild/instance-2/output-1/host/bin/i586-linux-gcc version.c + version.c: In function 'version_init': + version.c:32:1: error: expected expression before ';' token + ; + ^ + +This is due to the rule: + + version.h version.sh:: + @../scripts/reversion + +that executes reversion twice, once to satisfy the version.h target and +once for version.sh. This is unnecessary because reversion generates both +files anyway, but harmless without parallel build. When using parallel make +however reversion is sporadically run in a time sequence such that the +generated files are being used by other rules while they are being +rewritten by the second reversion instance. + +Fix by making only one of the two targets run reversion, and the other one +depend on it. + +Fixes builds found by the Buildroot autobuilders: + http://autobuild.buildroot.net/results/ebf/ebfccad007e216564889645a07f5487747116331// + http://autobuild.buildroot.net/results/56a/56a8457efcb32579ad6da99a769b6438dd0db267// + http://autobuild.buildroot.net/results/6a1/6a1f8a352649baf767b094cb6bbe2a7397fa7fac// + http://autobuild.buildroot.net/results/5ed/5ed1c42b3d33198f32d1267e5cc2b1fa1211495a// + http://autobuild.buildroot.net/results/b30/b304569948fd481ce33ecd052a1036153c5d459e// + http://autobuild.buildroot.net/results/d2c/d2c7abfe08672e53ff890127f787f8d2e84860f4// + +Signed-off-by: Luca Ceresoli +Upstream-status: patch submitted (https://bugs.exim.org/show_bug.cgi?id=2566) + +--- + OS/Makefile-Base | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/OS/Makefile-Base b/OS/Makefile-Base +index b66678bee4de..4966c25b5359 100644 +--- a/OS/Makefile-Base ++++ b/OS/Makefile-Base +@@ -664,9 +664,11 @@ PHDRS = ../config.h \ + + # Update Exim's version information and build the version object. + +-version.h version.sh:: ++version.sh:: + @../scripts/reversion + ++version.h: version.sh ++ + cnumber.h: version.h + + version.o: $(HDRS) cnumber.h version.h version.c +-- +2.26.2 +