diff mbox

[v2] Makefile: generate KBUILD_BUILD_TIMESTAMP date whith LC_ALL=C

Message ID 1481124042-25089-1-git-send-email-jean-baptiste.tredez@basystemes.fr
State Accepted
Headers show

Commit Message

Jean-Baptiste Trédez Dec. 7, 2016, 3:20 p.m. UTC
Fix kernel reproducible build if LANG=fr_FR.UTF-8 or LC_ALL=fr_FR.UTF-8 in host system.

when building linux kernel, scripts/gen_initramfs_list.sh do 'date -d"$KBUILD_BUILD_TIMESTAMP" +%s'
In buildroot makefile, KBUILD_BUILD_TIMESTAMP="$(shell date -d @$(SOURCE_DATE_EPOCH))"
if LANG=fr_FR.UTF-8 in 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 used in the $(shell ...) sub-shells.

Signed-off-by: Jean-Baptiste Trédez <jean-baptiste.tredez@basystemes.fr>
---
Changes in v2:
	- use LC_ALL=C instead of LANG=C

 linux/linux.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni Dec. 7, 2016, 10:37 p.m. UTC | #1
Hello,

On Wed,  7 Dec 2016 16:20:42 +0100, Jean-Baptiste Trédez wrote:
> Fix kernel reproducible build if LANG=fr_FR.UTF-8 or LC_ALL=fr_FR.UTF-8 in host system.
> 
> when building linux kernel, scripts/gen_initramfs_list.sh do 'date -d"$KBUILD_BUILD_TIMESTAMP" +%s'
> In buildroot makefile, KBUILD_BUILD_TIMESTAMP="$(shell date -d @$(SOURCE_DATE_EPOCH))"
> if LANG=fr_FR.UTF-8 in 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 used in the $(shell ...) sub-shells.
> 
> Signed-off-by: Jean-Baptiste Trédez <jean-baptiste.tredez@basystemes.fr>
> ---
> Changes in v2:
> 	- use LC_ALL=C instead of LANG=C

Applied to master, after tweaking the commit title and commit log a bit.

Thanks!

Thomas
diff mbox

Patch

diff --git a/linux/linux.mk b/linux/linux.mk
index a63d1f3..2b776a9 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