diff --git a/ChangeLog b/ChangeLog index 5cc379018947ea013feba536d1282f7a0fd7ce5a..996619300a412f06170697d83dde49450afae03f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2023-10-06 Niels Möller <nisse@lysator.liu.se> + * aclocal.m4 (NETTLE_PROG_VALGRIND): New macro. + * configure.ac: Use it. + * testsuite/Makefile.in (TS_SH): Include side-channel tests only + if we have a working valgrind. + * misc/c89: New wrapper script to force compiling in c89 mode. 2023-10-04 Niels Möller <nisse@lysator.liu.se> diff --git a/aclocal.m4 b/aclocal.m4 index 0d27e18305c3c55b45bbe7c592adad1708575d52..629db8a7d20b9ea91b2fd333f4ab8d31da0dd46f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -546,3 +546,21 @@ AC_DEFUN([GMP_ASM_POWERPC_R_REGISTERS], [AC_MSG_ERROR([neither "mtctr 6" nor "mtctr r6" works])])])]) ASM_PPC_WANT_R_REGISTERS="$gmp_cv_asm_powerpc_r_registers" ]) + +# Check if valgrind supports the platform we are compiling for. +AC_DEFUN([NETTLE_PROG_VALGRIND], +[AC_CACHE_CHECK([if valgrind is working], + nettle_cv_prog_valgrind, + [AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [ + if valgrind -q ./conftest$EXEEXT 2>&AS_MESSAGE_LOG_FD; then + nettle_cv_prog_valgrind=yes + else + nettle_cv_prog_valgrind=no + fi], [nettle_cv_prog_valgrind=no])]) + if test "$nettle_cv_prog_valgrind" = yes ; then + IF_VALGRIND='' + else + IF_VALGRIND='#' + fi + AC_SUBST(IF_VALGRIND) +]) diff --git a/configure.ac b/configure.ac index 177b40f32745e4342278454d2cd97469a4511457..867767a6a16d6e67fa1d5c070cb048e67c0bae00 100644 --- a/configure.ac +++ b/configure.ac @@ -171,6 +171,9 @@ AC_PROG_LN_S GMP_PROG_CC_FOR_BUILD GMP_PROG_EXEEXT_FOR_BUILD +# Check if valgrind is working; expected to fail in cross builds. +NETTLE_PROG_VALGRIND + LSH_DEPENDENCY_TRACKING if test "x$enable_gcov" = "xyes"; then diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index 475ec97dc5784aa2a7df169a9a481d2586310e54..0cb896ff7bf626e6b50454a655013472014a95a3 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -68,7 +68,7 @@ TS_CXX = @IF_CXX@ $(CXX_SOURCES:.cxx=$(EXEEXT)) TARGETS = $(TS_C) $(TS_CXX) TS_SC = sc-cnd-memcpy-test sc-gcm-test sc-memeql-test \ @IF_HOGWEED@ sc-pkcs1-sec-decrypt-test sc-rsa-sec-decrypt-test -TS_SH = $(TS_SC) symbols-test +TS_SH = symbols-test @IF_VALGRIND@ $(TS_SC) TS_ALL = $(TARGETS) $(TS_SH) @IF_DLOPEN_TEST@ dlopen-test$(EXEEXT) TS_FAT = $(patsubst %, %$(EXEEXT), aes-test cbc-test \