LZ4_MSG := $(NO_LZ4_MSG)
endif
-# enable backtrace symbol names for Linux/Darwin
-ALL_SYMBOLS := 0
+# enable backtrace symbol names for Linux & Darwin
+BACKTRACE ?= 0
+DEBUGFLAGS = -DBACKTRACE_ENABLE=$(BACKTRACE)
ifeq (,$(filter Windows%, $(OS)))
-ifeq ($(ALL_SYMBOLS), 1)
-DEBUGFLAGS_LD+=-rdynamic
+ifeq ($(BACKTRACE), 1)
+DEBUGFLAGS += -DBACKTRACE_ENABLE=1
+DEBUGFLAGS_LD += -rdynamic
endif
endif
$(CC) $(FLAGS) $^ $(RES_FILE) -o $@$(EXT) $(LDFLAGS)
.PHONY: zstd-release
-zstd-release: DEBUGFLAGS :=
+zstd-release: DEBUGFLAGS := -DBACKTRACE_ENABLE=0
zstd-release: DEBUGFLAGS_LD :=
zstd-release: zstd
zstd32 : CPPFLAGS += $(THREAD_CPP)
-zstd32 : LDFLAGS += $(THREAD_LD)
+zstd32 : LDFLAGS += $(THREAD_LD)
zstd32 : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
zstd32 : $(ZSTDLIB_FILES) zstdcli.c fileio.c bench.c datagen.c dibio.c
ifneq (,$(filter Windows%,$(OS)))
$(CC) $(FLAGS) $^ -o $@$(EXT) $(LDFLAGS)
zstd-nomt : THREAD_CPP :=
-zstd-nomt : THREAD_LD :=
+zstd-nomt : THREAD_LD :=
zstd-nomt : THREAD_MSG := - multi-threading disabled
zstd-nomt : zstd
zstd-nogz : ZLIBCPP :=
-zstd-nogz : ZLIBLD :=
+zstd-nogz : ZLIBLD :=
zstd-nogz : ZLIB_MSG := - gzip support is disabled
zstd-nogz : zstd
zstd-noxz : LZMACPP :=
-zstd-noxz : LZMALD :=
+zstd-noxz : LZMALD :=
zstd-noxz : LZMA_MSG := - xz/lzma support is disabled
zstd-noxz : zstd
In which case, linking stage will fail if `lz4` library cannot be found.
This is useful to prevent silent feature disabling.
-- __ALL_SYMBOLS__ : `zstd` can display a stack backtrace if the execution
+- __BACKTRACE__ : `zstd` can display a stack backtrace when execution
generates a runtime exception. By default, this feature may be
degraded/disabled on some platforms unless additional compiler directives are
- applied. When triaging a runtime issue, enabling this feature can provided
+ applied. When triaging a runtime issue, enabling this feature can provide
more context to determine the location of the fault.
- Example : `make zstd ALL_SYMBOLS=1`
+ Example : `make zstd BACKTRACE=1`
#### Aggregation of parameters
# define _POSIX_SOURCE 1 /* disable %llu warnings with MinGW on Windows */
#endif
-#if !defined(BACKTRACES_ENABLE) && \
- (defined(__GLIBC__) || (defined(__APPLE__) && defined(__MACH__)) )
-# define BACKTRACES_ENABLE 1
+#if !defined(BACKTRACE_ENABLE) \
+ && ((defined(__linux__) && defined(__GLIBC__)) \
+ || (defined(__APPLE__) && defined(__MACH__)) )
+# define BACKTRACE_ENABLE 1
#endif
#include <assert.h>
#include <errno.h> /* errno */
#include <signal.h>
-#ifdef BACKTRACES_ENABLE
+#ifdef BACKTRACE_ENABLE
# include <execinfo.h> /* backtrace, backtrace_symbols */
#endif
/*-*********************************************************
* Termination signal trapping (Print debug stack trace)
***********************************************************/
-#ifdef BACKTRACES_ENABLE
+#ifdef BACKTRACE_ENABLE
#define MAX_STACK_FRAMES 50
void FIO_addAbortHandler()
{
-#ifdef BACKTRACES_ENABLE
+#ifdef BACKTRACE_ENABLE
signal(SIGABRT, ABRThandler);
signal(SIGFPE, ABRThandler);
signal(SIGILL, ABRThandler);