From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Mon, 15 Jun 2015 15:04:32 +0200 Subject: [U-Boot] [PATCH] build: create time and date independent binary In-Reply-To: <1434140503.2415.10.camel@collins> References: <1434123073-22459-1-git-send-email-hs@denx.de> <1434140503.2415.10.camel@collins> Message-ID: <557ECD60.6060206@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Paul, Am 12.06.2015 22:21, schrieb Paul Kocialkowski: > Le vendredi 12 juin 2015 ? 17:31 +0200, Heiko Schocher a ?crit : >> With this option enabled each compilation creates the exact >> same binary. There are no timestamps, with which a U-Boot >> binary can be identified. >> >> This option is disabled by default. > > I think a bit more is needed to get truly reproducible builds in U-Boot, > but this is a first good step! > > I have been thinking about bringing reproducible builds to U-Boot for a > little while, but never got around actually doing it. Are you interested > in helping me on that? I have some free time these days, so I could do > some work on this. Hmm.. define what is a "reproducible build" ... my patch produces always the same u-boot binary if you not change the toolchain ... > It would certainly be relevant to get in touch with the people working > on reproducing builds for Debian (I know Lunar is involved with this), > since Debian packages U-Boot for many devices and they're apparently > willing to help upstream with automated tests, as they're doing with > coreboot and OpenWRT! Yep, that would be helpful ... bye, Heiko > >> Signed-off-by: Heiko Schocher >> --- >> >> Kconfig | 9 +++++++++ >> Makefile | 8 ++++++++ >> 2 files changed, 17 insertions(+) >> >> diff --git a/Kconfig b/Kconfig >> index 15e15af..c0c7eb8 100644 >> --- a/Kconfig >> +++ b/Kconfig >> @@ -81,6 +81,15 @@ menuconfig EXPERT >> Only use this if you really know what you are doing. >> >> if EXPERT >> + config SYS_EXACT_BINARY >> + bool "Create time and date independent binary" >> + default n >> + help >> + With this option enabled each compilation creates the exact >> + same binary. There are no timestamps, with which a U-Boot >> + binary can be identified. >> + This option is disabled by default. >> + >> config SYS_MALLOC_CLEAR_ON_INIT >> bool "Init with zeros the memory reserved for malloc (slow)" >> default y >> diff --git a/Makefile b/Makefile >> index 0a674bf..4ae2701 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -1230,11 +1230,19 @@ define filechk_version.h >> echo \#define LD_VERSION_STRING \"$$($(LD) --version | head -n 1)\"; ) >> endef >> >> +ifeq ($(CONFIG_SYS_EXACT_BINARY),y) >> +define filechk_timestamp.h >> + (LC_ALL=C date +'#define U_BOOT_DATE "NODATE"'; \ >> + LC_ALL=C date +'#define U_BOOT_TIME "NOTIME"'; \ >> + LC_ALL=C date +'#define U_BOOT_TZ "NOTZ"') >> +endef >> +else >> define filechk_timestamp.h >> (LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \ >> LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \ >> LC_ALL=C date +'#define U_BOOT_TZ "%z"') >> endef >> +endif >> >> $(version_h): include/config/uboot.release FORCE >> $(call filechk,version.h) > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany