Previously, XDL_FAST_HASH was defined when ‘uname -m’ returns x86_64, even if we are cross-compiling for a different architecture. Check the __x86_64__ compiler macro instead. In addition to fixing the cross compilation bug, this is needed to pass the Debian build reproducibility test (https://tests.reproducible-builds.org/debian/index_variations.html). Signed-off-by: Anders Kaseorg <andersk@xxxxxxx> --- config.mak.uname | 5 ----- xdiff/xutils.c | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/config.mak.uname b/config.mak.uname index b232908f8..2831a68c3 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -1,10 +1,8 @@ # Platform specific Makefile tweaks based on uname detection uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') -uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not') uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not') uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') -uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not') uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not') ifdef MSVC @@ -17,9 +15,6 @@ endif # because maintaining the nesting to match is a pain. If # we had "elif" things would have been much nicer... -ifeq ($(uname_M),x86_64) - XDL_FAST_HASH = YesPlease -endif ifeq ($(uname_S),OSF1) # Need this for u_short definitions et al BASIC_CFLAGS += -D_OSF_SOURCE diff --git a/xdiff/xutils.c b/xdiff/xutils.c index 027192a1c..f46351fe4 100644 --- a/xdiff/xutils.c +++ b/xdiff/xutils.c @@ -264,6 +264,10 @@ static unsigned long xdl_hash_record_with_whitespace(char const **data, return ha; } +#ifdef __x86_64__ +#define XDL_FAST_HASH +#endif + #ifdef XDL_FAST_HASH #define REPEAT_BYTE(x) ((~0ul / 0xff) * (x)) -- 2.11.0