diff --git a/programs/Makefile b/programs/Makefile index 9e241357b..ac17caee8 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -134,8 +134,10 @@ else LZ4_MSG := $(NO_LZ4_MSG) endif -# enable backtrace symbol names for Linux & Darwin -BACKTRACE ?= 0 +# explicit backtrace enable/disable for Linux & Darwin +ifeq ($(BACKTRACE), 0) +DEBUGFLAGS += -DBACKTRACE_ENABLE=0 +endif ifeq (,$(filter Windows%, $(OS))) ifeq ($(BACKTRACE), 1) DEBUGFLAGS += -DBACKTRACE_ENABLE=1 diff --git a/programs/fileio.c b/programs/fileio.c index a2d5af2c4..1eb9a1e0a 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -20,21 +20,6 @@ # define _POSIX_SOURCE 1 /* disable %llu warnings with MinGW on Windows */ #endif -#if defined(__has_feature) && !defined(BACKTRACE_ENABLE) /* Clang compiler */ -# if (__has_feature(address_sanitizer)) -# define BACKTRACE_ENABLE 0 -# endif /* __has_feature(address_sanitizer) */ -#elif defined(__SANITIZE_ADDRESS__) && !defined(BACKTRACE_ENABLE) /* GCC compiler */ -# define BACKTRACE_ENABLE 0 -#endif - -#if !defined(BACKTRACE_ENABLE) \ - && ((defined(__linux__) && defined(__GLIBC__)) \ - || (defined(__APPLE__) && defined(__MACH__)) ) -# define BACKTRACE_ENABLE 1 -#endif - - /*-************************************* * Includes ***************************************/ @@ -46,9 +31,6 @@ #include #include /* errno */ #include -#if defined(BACKTRACE_ENABLE) && (BACKTRACE_ENABLE >= 1) -# include /* backtrace, backtrace_symbols */ -#endif #if defined (_MSC_VER) # include @@ -176,8 +158,25 @@ static void clearHandler(void) /*-********************************************************* * Termination signal trapping (Print debug stack trace) ***********************************************************/ +#if defined(__has_feature) && !defined(BACKTRACE_ENABLE) /* Clang compiler */ +# if (__has_feature(address_sanitizer)) +# define BACKTRACE_ENABLE 0 +# endif /* __has_feature(address_sanitizer) */ +#elif defined(__SANITIZE_ADDRESS__) && !defined(BACKTRACE_ENABLE) /* GCC compiler */ +# define BACKTRACE_ENABLE 0 +#endif + +#if !defined(BACKTRACE_ENABLE) \ + && ((defined(__linux__) && defined(__GLIBC__)) \ + || (defined(__APPLE__) && defined(__MACH__)) ) +# define BACKTRACE_ENABLE 1 +#endif + + #if defined(BACKTRACE_ENABLE) && (BACKTRACE_ENABLE>=1) +#include /* backtrace, backtrace_symbols */ + #define MAX_STACK_FRAMES 50 static void ABRThandler(int sig) {