From: Dmitry Volyntsev Date: Wed, 13 Nov 2019 15:27:06 +0000 (+0300) Subject: Added extra configure options for debug builds. X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=37a0b22f41980942fb23ba5003a27fd240771044;p=njs.git Added extra configure options for debug builds. --- diff --git a/auto/cc b/auto/cc index 1ae7d54f..295a1de9 100644 --- a/auto/cc +++ b/auto/cc @@ -99,6 +99,11 @@ case $NJS_CC_NAME in # Debug. NJS_CFLAGS="$NJS_CFLAGS -g" + + if [ "$NJS_ADDRESS_SANITIZER" = "YES" ]; then + NJS_CFLAGS="$NJS_CFLAGS -fsanitize=address" + NJS_CFLAGS="$NJS_CFLAGS -fno-omit-frame-pointer" + fi ;; clang) @@ -135,6 +140,12 @@ case $NJS_CC_NAME in # error on PowerPC Clang. NJS_CFLAGS="$NJS_CFLAGS -g" fi + + if [ "$NJS_ADDRESS_SANITIZER" = "YES" ]; then + NJS_CFLAGS="$NJS_CFLAGS -fsanitize=address" + NJS_CFLAGS="$NJS_CFLAGS -fno-omit-frame-pointer" + NJS_CFLAGS="$NJS_CFLAGS -fsanitize-address-use-after-scope" + fi ;; SunC) @@ -147,6 +158,10 @@ case $NJS_CC_NAME in NJS_CFLAGS="$NJS_CFLAGS -errwarn=%all" # Debug. NJS_CFLAGS="$NJS_CFLAGS -g" + + if [ "$NJS_ADDRESS_SANITIZER" = "YES" ]; then + echo " - Address sanitizer is not supported by $NJS_CC_NAME" + fi ;; *) @@ -154,5 +169,10 @@ case $NJS_CC_NAME in esac +if [ "$NJS_DEBUG" = "YES" ]; then + njs_define=NJS_DEBUG . auto/define + njs_define=NJS_DEBUG_MEMORY . auto/define +fi + # Stop on error exit status again. set -e diff --git a/auto/help b/auto/help index 56de8653..c9c307c1 100644 --- a/auto/help +++ b/auto/help @@ -7,9 +7,15 @@ cat << END ./configure options: - --cc=FILE set C compiler filename, default: "$CC" - --cc-opt=OPTIONS set additional C compiler options - --ld-opt=OPTIONS set additional linker options - --ar=FILE set static linking program, default: "$AR" + --cc=FILE set C compiler filename, default: "$CC" + --cc-opt=OPTIONS set additional C compiler options, \ +default: "$NJS_CC_OPT" + --ld-opt=OPTIONS set additional linker options, \ +default: "$NJS_LD_OPT" + --ar=FILE set static linking program, default: "$AR" + --debug=YES enables additional runtime checks, \ +default: "$NJS_DEBUG" + --address-sanitizer=YES enables build with address sanitizer, \ +default: "$NJS_ADDRESS_SANITIZER" END diff --git a/auto/options b/auto/options index 48aec163..a7495b82 100644 --- a/auto/options +++ b/auto/options @@ -3,10 +3,14 @@ # Copyright (C) NGINX, Inc. -NJS_CONFIGURE_OPTIONS= NJS_CC_OPT=${NJS_CC_OPT:--O} NJS_LD_OPT=${NJS_CC_OPT:--O} +NJS_DEBUG=NO +NJS_ADDRESS_SANITIZER=NO + +NJS_CONFIGURE_OPTIONS= + for njs_option do case "$njs_option" in @@ -20,6 +24,9 @@ do --ld-opt=*) NJS_LD_OPT="$value" ;; --ar=*) AR="$value" ;; + --debug=*) NJS_DEBUG="$value" ;; + --address-sanitizer=*) NJS_ADDRESS_SANITIZER="$value" ;; + --help) . auto/help exit 0