From ba20ba42731b8b03a5db2f81f876fccd56257b0f Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sun, 31 Jan 2021 00:41:34 +0000 Subject: [build] Avoid using awk to format build ID as hexadecimal The version of awk used in FreeBSD seems to be incapable of formatting unsigned 32-bit integers above 0x80000000 and will silently render any such value as 0x80000000. For example: echo 3735928559 | awk '{printf "0x%08x", $1}' will produce 0x80000000 instead of the correct 0xdeadbeef. This results in an approximately 50% chance of a build ID collision when building on FreeBSD. Work around this problem by passing the decimal value directly in the ld --defsym argument value. Signed-off-by: Michael Brown --- src/Makefile.housekeeping | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Makefile.housekeeping') diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index e91307023..91be542ab 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -1176,7 +1176,7 @@ blib : $(BLIB) # different builds (such as builds for multiple ROMs all built from # the same blib.a). # -BUILD_ID_CMD = cat $^ | cksum | awk '{printf "0x%08x", $$1}' +BUILD_ID_CMD = cat $^ | cksum | awk '{print $$1}' # Build timestamp # -- cgit