From 10fc02b984f6f8c06291f94e6dbef0b289fd3880 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Trédez Date: Wed, 7 Dec 2016 16:20:42 +0100 Subject: linux: generate KBUILD_BUILD_TIMESTAMP date whith LC_ALL=C MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix kernel reproducible build if a non-C locale is used on the host system. When building the Linux kernel, scripts/gen_initramfs_list.sh does 'date -d"$KBUILD_BUILD_TIMESTAMP" +%s'. In linux.mk, Buildroot sets KBUILD_BUILD_TIMESTAMP to "$(shell date -d @$(SOURCE_DATE_EPOCH))". For example, if LANG=fr_FR.UTF-8 is defined in the host system, it does not work: - LC_ALL=C date -d"$(LC_ALL=C date)" : ok - LC_ALL=C date -d"$(LC_ALL=fr_FR.UTF-8 date)" : error LANG/LC_ALL variables exported in the main Makefiles are not passed in the $(shell ...) sub-shells. Signed-off-by: Jean-Baptiste Trédez Signed-off-by: Thomas Petazzoni --- linux/linux.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux') diff --git a/linux/linux.mk b/linux/linux.mk index 7e826ccdf..e75dcaa60 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -99,7 +99,7 @@ LINUX_MAKE_ENV += \ KBUILD_BUILD_VERSION=1 \ KBUILD_BUILD_USER=buildroot \ KBUILD_BUILD_HOST=buildroot \ - KBUILD_BUILD_TIMESTAMP="$(shell date -d @$(SOURCE_DATE_EPOCH))" + KBUILD_BUILD_TIMESTAMP="$(shell LC_ALL=C date -d @$(SOURCE_DATE_EPOCH))" endif # Get the real Linux version, which tells us where kernel modules are -- cgit v1.2.3