Update Buildroot 2020.02.2 (#682)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
From 19f6e36d3473ddba1a211e7af9352a10febb7270 Mon Sep 17 00:00:00 2001
|
||||
From: Luca Ceresoli <luca@lucaceresoli.net>
|
||||
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<N>) 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 <luca@lucaceresoli.net>
|
||||
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
|
||||
|
||||
@@ -3,11 +3,19 @@
|
||||
# Start/stop exim
|
||||
#
|
||||
|
||||
PIDFILE=/var/lock/exim/exim-daemon.pid
|
||||
PIDFILE=/var/run/exim/exim.pid
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting exim..."
|
||||
if [ ! -d /var/log/exim ]; then
|
||||
mkdir -p /var/log/exim
|
||||
chown exim:mail /var/log/exim
|
||||
fi
|
||||
if [ ! -d /var/run/exim ]; then
|
||||
mkdir -p /var/run/exim
|
||||
chown root:mail /var/run/exim
|
||||
fi
|
||||
start-stop-daemon -S -x exim -- -bd
|
||||
;;
|
||||
stop)
|
||||
|
||||
@@ -39,6 +39,8 @@ define EXIM_USE_DEFAULT_CONFIG_FILE
|
||||
$(INSTALL) -m 0644 $(@D)/src/EDITME $(@D)/Local/Makefile
|
||||
$(call exim-config-change,BIN_DIRECTORY,/usr/sbin)
|
||||
$(call exim-config-change,CONFIGURE_FILE,/etc/exim/configure)
|
||||
$(call exim-config-change,LOG_FILE_PATH,/var/log/exim/exim_%slog)
|
||||
$(call exim-config-change,PID_FILE_PATH,/var/run/exim/exim.pid)
|
||||
$(call exim-config-change,EXIM_USER,ref:exim)
|
||||
$(call exim-config-change,EXIM_GROUP,mail)
|
||||
$(call exim-config-change,TRANSPORT_LMTP,yes)
|
||||
@@ -118,16 +120,14 @@ endif
|
||||
|
||||
# We need the host version of macro_predef during the build, before
|
||||
# building it we need to prepare the makefile.
|
||||
# "The -j (parallel) flag must not be used with make"
|
||||
# (http://www.exim.org/exim-html-current/doc/html/spec_html/ch04.html)
|
||||
define EXIM_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) build=br $(MAKE1) -C $(@D) makefile
|
||||
$(HOST_MAKE_ENV) $(MAKE1) -C $(@D)/build-br macro_predef \
|
||||
$(TARGET_MAKE_ENV) build=br $(MAKE) -C $(@D) makefile
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/build-br macro_predef \
|
||||
CC=$(HOSTCC) \
|
||||
LNCC=$(HOSTCC) \
|
||||
CFLAGS="-std=c99 $(HOST_CFLAGS)" \
|
||||
LFLAGS="-fPIC $(HOST_LDFLAGS)"
|
||||
$(TARGET_MAKE_ENV) build=br $(MAKE1) -C $(@D) $(EXIM_STATIC_FLAGS) \
|
||||
$(TARGET_MAKE_ENV) build=br $(MAKE) -C $(@D) $(EXIM_STATIC_FLAGS) \
|
||||
CFLAGS="-std=c99 $(TARGET_CFLAGS)"
|
||||
endef
|
||||
|
||||
@@ -135,7 +135,7 @@ endef
|
||||
# something when installing...
|
||||
define EXIM_INSTALL_TARGET_CMDS
|
||||
DESTDIR=$(TARGET_DIR) INSTALL_ARG="-no_chown -no_symlink" build=br \
|
||||
$(MAKE1) -C $(@D) $(EXIM_STATIC_FLAGS) \
|
||||
$(MAKE) -C $(@D) $(EXIM_STATIC_FLAGS) \
|
||||
CFLAGS="-std=c99 $(TARGET_CFLAGS)" \
|
||||
install
|
||||
chmod u+s $(TARGET_DIR)/usr/sbin/exim
|
||||
|
||||
@@ -3,6 +3,10 @@ Description=Exim MTA
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
User=exim
|
||||
Group=mail
|
||||
LogsDirectory=exim
|
||||
RuntimeDirectory=exim
|
||||
ExecStart=/usr/sbin/exim -bdf
|
||||
Restart=always
|
||||
|
||||
|
||||
Reference in New Issue
Block a user