From ac6b471a49ec18ef4b089552186579eb4a75e0e4 Mon Sep 17 00:00:00 2001 From: Alan Swanson Date: Tue, 25 Jan 2022 19:47:19 +0000 Subject: [PATCH] build: disable debug and sanitizers by default (#251) Debug builds should never be the default. Change debug option to default to off and link it to sanitizer usage (rather than whether being built from git tree). Address sanitizers can cause a program to run twice as slow on top of the debug "-O0" non-optimisation. Also remove some unused macro variables. --- build.sh | 4 ++-- configure.ac | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build.sh b/build.sh index cf577ea..6f252b3 100755 --- a/build.sh +++ b/build.sh @@ -1,12 +1,12 @@ #!/bin/sh -x -configureOpts="--disable-sanitizers --disable-debug" +configureOpts="" while getopts ":hd" opt; do case ${opt} in h ) echo "Use -d to turn on sanitizers (for debugging only)" exit;; - d ) configureOpts="" + d ) configureOpts="--enable-debug" ;; \? ) echo "Usage: $0 [-h] [-d]" exit;; diff --git a/configure.ac b/configure.ac index c74cc32..d38324d 100644 --- a/configure.ac +++ b/configure.ac @@ -48,7 +48,7 @@ AX_CODE_COVERAGE dnl is_release must be lowercase because AX_CHECK_ENABLE_DEBUG calls m4_tolower dnl on its fourth argument. -AX_CHECK_ENABLE_DEBUG([yes], , [UNUSED_NDEBUG], [$is_release]) +AX_CHECK_ENABLE_DEBUG([no], , , [$is_release]) AC_PROG_CC @@ -132,14 +132,14 @@ AC_CHECK_HEADERS([fcntl.h float.h inttypes.h limits.h locale.h netinet/in.h path AC_CONFIG_FILES([Makefile]) -# Enable address sanitizer for non-release builds. The performance hit is a +# Enable address sanitizer for debug builds. The performance hit is a # 50% increase of wallclock time for the testsuite on my machine. -if test x$is_release = xyes; then - default_sanitizers= -else +if test "x$ax_enable_debug" = "xyes"; then default_sanitizers=address +else + default_sanitizers= fi -AX_SANITIZERS(, [$default_sanitizers], [AC_DEFINE([I3LOCK_ASAN_ENABLED], [], [Enable ASAN])]) +AX_SANITIZERS(, [$default_sanitizers]) AC_OUTPUT