From 3d9b41ecc02a69daa19df2bc850d60bf9917b724 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 13 Feb 2020 14:21:32 +0800 Subject: [PATCH] build: add --enable-determinism configure flag If used, this will enable additional compile / link time flags that will make subsequent builds of bitcoind determinisitic. --- configure.ac | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/configure.ac b/configure.ac index d0fcf48713a..35e5dc1fe77 100644 --- a/configure.ac +++ b/configure.ac @@ -262,6 +262,13 @@ AC_ARG_ENABLE([gprof], [enable_gprof=$enableval], [enable_gprof=no]) +dnl Pass compiler & liner flags that make builds deterministic +AC_ARG_ENABLE([determinism], + [AS_HELP_STRING([--enable-determinism], + [Enable compilation flags that make builds deterministic (default is no)])], + [enable_determinism=$enableval], + [enable_determinism=no]) + dnl Turn warnings into errors AC_ARG_ENABLE([werror], [AS_HELP_STRING([--enable-werror], @@ -764,6 +771,12 @@ if test x$TARGET_OS = xdarwin; then AX_CHECK_LINK_FLAG([[-Wl,-bind_at_load]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-bind_at_load"]) fi +if test x$enable_determinism = xyes; then + if test x$TARGET_OS = xwindows; then + AX_CHECK_LINK_FLAG([[-Wl,--no-insert-timestamp]], [LDFLAGS="$LDFLAGS -Wl,--no-insert-timestamp"]) + fi +fi + AC_CHECK_HEADERS([endian.h sys/endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h sys/sysctl.h vm/vm_param.h sys/vmmeter.h sys/resources.h]) dnl FD_ZERO may be dependent on a declaration of memcpy, e.g. in SmartOS