configure: --enable-debugbuild flag for debug builds.

This controls debug flags for the build, rather than --developer,
which is going away.

I thought about making this flag control the RUST_PROFILE too, but
it seems that we want that set to "release" for CI, whereas for the
C code we want --enable-debugbuild.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2023-07-06 17:06:50 +09:30
parent 0c4426a349
commit fa596a9446
3 changed files with 27 additions and 18 deletions

View File

@@ -56,7 +56,7 @@ jobs:
# We're going to check BOLT quotes, so get the latest version # We're going to check BOLT quotes, so get the latest version
git clone https://github.com/lightning/bolts.git ../${BOLTDIR} git clone https://github.com/lightning/bolts.git ../${BOLTDIR}
- name: Configure - name: Configure
run: ./configure run: ./configure --enable-debugbuild
- name: Check source - name: Check source
run: make -j 4 check-source BASE_REF="origin/${{ github.base_ref }}" run: make -j 4 check-source BASE_REF="origin/${{ github.base_ref }}"
- name: Check Generated Files have been updated - name: Check Generated Files have been updated
@@ -98,7 +98,7 @@ jobs:
- name: Build - name: Build
run: | run: |
./configure ./configure --enable-debugbuild
make -j $(nproc) check-units installcheck make -j $(nproc) check-units installcheck
check-units-sanitizers: check-units-sanitizers:
@@ -132,7 +132,7 @@ jobs:
- name: Build - name: Build
run: | run: |
./configure CC=clang ./configure --enable-debugbuild CC=clang
make -j $(nproc) check-units installcheck make -j $(nproc) check-units installcheck
check-fuzz: check-fuzz:
@@ -165,7 +165,7 @@ jobs:
- name: Build - name: Build
run: | run: |
./configure --enable-fuzzing CC=clang ./configure --enable-debugbuild --enable-fuzzing CC=clang
make -j $(nproc) check-fuzz make -j $(nproc) check-fuzz
compile: compile:
@@ -215,7 +215,7 @@ jobs:
pip3 install --user pip wheel poetry pip3 install --user pip wheel poetry
poetry export -o requirements.txt --with dev --without-hashes poetry export -o requirements.txt --with dev --without-hashes
python3 -m pip install -r requirements.txt python3 -m pip install -r requirements.txt
./configure CC="$COMPILER" ./configure --enable-debugbuild CC="$COMPILER"
make -j $(nproc) testpack.tar.bz2 make -j $(nproc) testpack.tar.bz2
@@ -462,7 +462,7 @@ jobs:
- name: Build - name: Build
run: | run: |
./configure CC=clang --enable-address-sanitizer --enable-ub-sanitizer --disable-valgrind --enable-developer ./configure CC=clang --enable-address-sanitizer --enable-ub-sanitizer --disable-valgrind --enable-developer --enable-debugbuild
make -j $(nproc) make -j $(nproc)
- name: Test - name: Test

View File

@@ -43,7 +43,7 @@ VG=VALGRIND=1 valgrind -q --error-exitcode=7
VG_TEST_ARGS = --track-origins=yes --leak-check=full --show-reachable=yes --errors-for-leak-kinds=all VG_TEST_ARGS = --track-origins=yes --leak-check=full --show-reachable=yes --errors-for-leak-kinds=all
endif endif
ifeq ($(DEVELOPER),1) ifeq ($(DEBUGBUILD),1)
DEV_CFLAGS=-DCCAN_TAKE_DEBUG=1 -DCCAN_TAL_DEBUG=1 -DCCAN_JSON_OUT_DEBUG=1 DEV_CFLAGS=-DCCAN_TAKE_DEBUG=1 -DCCAN_TAL_DEBUG=1 -DCCAN_JSON_OUT_DEBUG=1
else else
DEV_CFLAGS= DEV_CFLAGS=

31
configure vendored
View File

@@ -43,7 +43,7 @@ usage_with_default()
echo " $1 (default $DEF)" echo " $1 (default $DEF)"
} }
# Given DEVELOPER, what COPTFLAGS do we default to. # Given DEBUGBUILD, what COPTFLAGS do we default to.
default_coptflags() default_coptflags()
{ {
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
@@ -142,6 +142,9 @@ set_defaults()
CC=${CC:-cc} CC=${CC:-cc}
CDEBUGFLAGS=${CDEBUGFLAGS--std=gnu11 -g -fstack-protector-strong} CDEBUGFLAGS=${CDEBUGFLAGS--std=gnu11 -g -fstack-protector-strong}
DEVELOPER=${DEVELOPER:-0} DEVELOPER=${DEVELOPER:-0}
DEBUGBUILD=${DEBUGBUILD:-0}
# --enable-developer forces debug build
[ "$DEVELOPER" = 0 ] || DEBUGBUILD=1
COMPAT=${COMPAT:-1} COMPAT=${COMPAT:-1}
STATIC=${STATIC:-0} STATIC=${STATIC:-0}
CLANG_COVERAGE=${CLANG_COVERAGE:-0} CLANG_COVERAGE=${CLANG_COVERAGE:-0}
@@ -152,13 +155,13 @@ set_defaults()
CSANFLAGS="" CSANFLAGS=""
if [ "$ASAN" != 0 ]; then if [ "$ASAN" != 0 ]; then
CSANFLAGS="$CSANFLAGS -fsanitize=address" CSANFLAGS="$CSANFLAGS -fsanitize=address"
if [ "$DEVELOPER" != 0 ]; then if [ "$DEBUGBUILD" != 0 ]; then
CSANFLAGS="$CSANFLAGS -fno-sanitize-recover=address" CSANFLAGS="$CSANFLAGS -fno-sanitize-recover=address"
fi fi
fi fi
if [ "$UBSAN" != 0 ]; then if [ "$UBSAN" != 0 ]; then
CSANFLAGS="$CSANFLAGS -fsanitize=undefined" CSANFLAGS="$CSANFLAGS -fsanitize=undefined"
if [ "$DEVELOPER" != 0 ]; then if [ "$DEBUGBUILD" != 0 ]; then
CSANFLAGS="$CSANFLAGS -fno-sanitize-recover=undefined" CSANFLAGS="$CSANFLAGS -fno-sanitize-recover=undefined"
fi fi
fi fi
@@ -168,7 +171,7 @@ set_defaults()
fi fi
echo CSANFLAGS = $CSANFLAGS echo CSANFLAGS = $CSANFLAGS
PYTEST=${PYTEST-$(default_pytest)} PYTEST=${PYTEST-$(default_pytest)}
COPTFLAGS=${COPTFLAGS-$(default_coptflags "$DEVELOPER")} COPTFLAGS=${COPTFLAGS-$(default_coptflags "$DEBUGBUILD")}
CONFIGURATOR_CC=${CONFIGURATOR_CC-$CC} CONFIGURATOR_CC=${CONFIGURATOR_CC-$CC}
VALGRIND=${VALGRIND:-$(default_valgrind_setting)} VALGRIND=${VALGRIND:-$(default_valgrind_setting)}
TEST_NETWORK=${TEST_NETWORK:-regtest} TEST_NETWORK=${TEST_NETWORK:-regtest}
@@ -181,7 +184,7 @@ usage()
echo "If --reconfigure is specified, $CONFIG_VAR_FILE will set defaults." echo "If --reconfigure is specified, $CONFIG_VAR_FILE will set defaults."
echo "Default settings:" echo "Default settings:"
set_defaults set_defaults
DEFAULT_COPTFLAGS="$(default_coptflags $DEVELOPER)" DEFAULT_COPTFLAGS="$(default_coptflags $DEBUGBUILD)"
# We assume we have a modern gcc. # We assume we have a modern gcc.
DEFAULT_CWARNFLAGS="$(default_cwarnflags ""$DEFAULT_COPTFLAGS"" 1 1)" DEFAULT_CWARNFLAGS="$(default_cwarnflags ""$DEFAULT_COPTFLAGS"" 1 1)"
usage_with_default "CC" "$CC" usage_with_default "CC" "$CC"
@@ -198,6 +201,8 @@ usage()
echo " Prefix for make install" echo " Prefix for make install"
usage_with_default "--enable/disable-developer" "$DEVELOPER" "enable" "disable" usage_with_default "--enable/disable-developer" "$DEVELOPER" "enable" "disable"
echo " Developer mode, good for testing" echo " Developer mode, good for testing"
usage_with_default "--enable/disable-debug" "$DEBUGBUILD" "enable" "disable"
echo " Extra debug checks in the build, good for testing"
usage_with_default "--enable/disable-compat" "$COMPAT" "enable" "disable" usage_with_default "--enable/disable-compat" "$COMPAT" "enable" "disable"
echo " Compatibility mode, good to disable to see if your software breaks" echo " Compatibility mode, good to disable to see if your software breaks"
usage_with_default "--enable/disable-valgrind" "(autodetect)" usage_with_default "--enable/disable-valgrind" "(autodetect)"
@@ -236,20 +241,21 @@ for opt in "$@"; do
# Set from values if not already set. # Set from values if not already set.
while IFS='=' read VAR VAL; do while IFS='=' read VAR VAL; do
if eval [ -z \${$VAR+x} ]; then eval $VAR=\"$VAL\"; fi if eval [ -z \${$VAR+x} ]; then eval $VAR=\"$VAL\"; fi
# If they had an old config, it might set DEVELOPER.
if [ "$VAR" = DEVELOPER ]; then if [ "$VAR" = DEVELOPER ]; then
DEFAULT_COPTFLAGS=$(default_coptflags "$VAL")
DEBUGBUILD="$VAL"
VAR=DEBUGBUILD
fi
if [ "$VAR" = DEBUGBUILD ]; then
DEFAULT_COPTFLAGS=$(default_coptflags "$VAL") DEFAULT_COPTFLAGS=$(default_coptflags "$VAL")
fi fi
done < $CONFIG_VAR_FILE done < $CONFIG_VAR_FILE
# If we were those defaults, unset so we get new defaults in # If we were those defaults, unset so we get new defaults in
# case DEVELOPER has changed. # case DEBUGBUILD has changed.
if [ x"$COPTFLAGS" = x"$DEFAULT_COPTFLAGS" ]; then if [ x"$COPTFLAGS" = x"$DEFAULT_COPTFLAGS" ]; then
unset COPTFLAGS unset COPTFLAGS
fi fi
# If they didn't have -Wshadow=local, add it on --reconfigure
# (we only added it later)
if [ x"${CWARNFLAGS%*-Wshadow=local}" = x"$CWARNFLAGS" ]; then
unset CWARNFLAGS
fi
;; ;;
CC=*) CC="${opt#CC=}";; CC=*) CC="${opt#CC=}";;
CONFIGURATOR_CC=*) CONFIGURATOR_CC="${opt#CONFIGURATOR_CC=}";; CONFIGURATOR_CC=*) CONFIGURATOR_CC="${opt#CONFIGURATOR_CC=}";;
@@ -260,6 +266,8 @@ for opt in "$@"; do
--prefix=*) PREFIX="${opt#--prefix=}";; --prefix=*) PREFIX="${opt#--prefix=}";;
--enable-developer) DEVELOPER=1;; --enable-developer) DEVELOPER=1;;
--disable-developer) DEVELOPER=0;; --disable-developer) DEVELOPER=0;;
--enable-debugbuild) DEBUGBUILD=1;;
--disable-debugbuild) DEBUGBUILD=0;;
--enable-compat) COMPAT=1;; --enable-compat) COMPAT=1;;
--disable-compat) COMPAT=0;; --disable-compat) COMPAT=0;;
--enable-valgrind) VALGRIND=1;; --enable-valgrind) VALGRIND=1;;
@@ -493,6 +501,7 @@ add_var POSTGRES_INCLUDE "$POSTGRES_INCLUDE"
add_var POSTGRES_LDLIBS "$POSTGRES_LDLIBS" add_var POSTGRES_LDLIBS "$POSTGRES_LDLIBS"
add_var VALGRIND "$VALGRIND" add_var VALGRIND "$VALGRIND"
add_var DEVELOPER "$DEVELOPER" $CONFIG_HEADER.$$ add_var DEVELOPER "$DEVELOPER" $CONFIG_HEADER.$$
add_var DEBUGBUILD "$DEBUGBUILD"
add_var COMPAT "$COMPAT" $CONFIG_HEADER.$$ add_var COMPAT "$COMPAT" $CONFIG_HEADER.$$
add_var PYTEST "$PYTEST" add_var PYTEST "$PYTEST"
add_var STATIC "$STATIC" add_var STATIC "$STATIC"