Update Buildroot 2020.02.2 (#682)

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
This commit is contained in:
Pascal Vizeli
2020-05-20 17:32:11 +02:00
committed by GitHub
parent ce3c80641b
commit 035e3884d8
264 changed files with 4460 additions and 1085 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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