# 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)
# 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)
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
;;
*)
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
./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
# 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
--ld-opt=*) NJS_LD_OPT="$value" ;;
--ar=*) AR="$value" ;;
+ --debug=*) NJS_DEBUG="$value" ;;
+ --address-sanitizer=*) NJS_ADDRESS_SANITIZER="$value" ;;
+
--help)
. auto/help
exit 0