Use C locale when setting CC_VERSION_STRING and LD_VERSION_STRING.
The output reported may be locale-dependent, which results in
unreproducible builds.
$ LANG=C ld --version | head -n 1
GNU ld (GNU Binutils for Debian) 2.26
$ LANG=it_CH.UTF-8 ld --version | head -n 1
ld di GNU (GNU Binutils for Debian) 2.26
Forcing LC_ALL=C ensures the output is consistant regardless of the
build environment.
Thanks to HW42 for debugging the issue:
https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20160606/005722.html
For more information about reproducible builds:
https://reproducible-builds.org/
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
diff --git a/Makefile b/Makefile
index d0e7a8a..256d4ff 100644
--- a/Makefile
+++ b/Makefile
@@ -1269,8 +1269,8 @@
define filechk_version.h
(echo \#define PLAIN_VERSION \"$(UBOOTRELEASE)\"; \
echo \#define U_BOOT_VERSION \"U-Boot \" PLAIN_VERSION; \
- echo \#define CC_VERSION_STRING \"$$($(CC) --version | head -n 1)\"; \
- echo \#define LD_VERSION_STRING \"$$($(LD) --version | head -n 1)\"; )
+ echo \#define CC_VERSION_STRING \"$$(LC_ALL=C $(CC) --version | head -n 1)\"; \
+ echo \#define LD_VERSION_STRING \"$$(LC_ALL=C $(LD) --version | head -n 1)\"; )
endef
# The SOURCE_DATE_EPOCH mechanism requires a date that behaves like GNU date.