mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
tools build: Implement libzstd feature check, LIBZSTD_DIR and NO_LIBZSTD defines
Implement libzstd feature check, NO_LIBZSTD and LIBZSTD_DIR defines to override Zstd library sources or disable the feature from the command line: $ make -C tools/perf LIBZSTD_DIR=/path/to/zstd/sources/ clean all $ make -C tools/perf NO_LIBZSTD=1 clean all Auto detection feature status is reported just before compilation starts. If your system has some version of the zstd library preinstalled then the build system finds and uses it during the build. If you still prefer to compile with some other version of zstd library you have capability to refer the compilation to that version using LIBZSTD_DIR define. Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com> Reviewed-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/9b4cd8b0-10a3-1f1e-8d6b-5922a7ca216b@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c9bd779695
commit
3b1c5d9659
7 changed files with 49 additions and 1 deletions
|
@ -67,6 +67,7 @@ FEATURE_TESTS_BASIC := \
|
|||
sdt \
|
||||
setns \
|
||||
libaio \
|
||||
libzstd \
|
||||
disassembler-four-args
|
||||
|
||||
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
||||
|
@ -120,6 +121,7 @@ FEATURE_DISPLAY ?= \
|
|||
get_cpuid \
|
||||
bpf \
|
||||
libaio \
|
||||
libzstd \
|
||||
disassembler-four-args
|
||||
|
||||
# Set FEATURE_CHECK_(C|LD)FLAGS-all for all FEATURE_TESTS features.
|
||||
|
|
|
@ -62,7 +62,8 @@ FILES= \
|
|||
test-clang.bin \
|
||||
test-llvm.bin \
|
||||
test-llvm-version.bin \
|
||||
test-libaio.bin
|
||||
test-libaio.bin \
|
||||
test-libzstd.bin
|
||||
|
||||
FILES := $(addprefix $(OUTPUT),$(FILES))
|
||||
|
||||
|
@ -301,6 +302,9 @@ $(OUTPUT)test-clang.bin:
|
|||
$(OUTPUT)test-libaio.bin:
|
||||
$(BUILD) -lrt
|
||||
|
||||
$(OUTPUT)test-libzstd.bin:
|
||||
$(BUILD) -lzstd
|
||||
|
||||
###############################
|
||||
|
||||
clean:
|
||||
|
|
|
@ -182,6 +182,10 @@
|
|||
# include "test-disassembler-four-args.c"
|
||||
#undef main
|
||||
|
||||
#define main main_test_zstd
|
||||
# include "test-libzstd.c"
|
||||
#undef main
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
main_test_libpython();
|
||||
|
@ -224,6 +228,7 @@ int main(int argc, char *argv[])
|
|||
main_test_libaio();
|
||||
main_test_reallocarray();
|
||||
main_test_disassembler_four_args();
|
||||
main_test_libzstd();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
12
tools/build/feature/test-libzstd.c
Normal file
12
tools/build/feature/test-libzstd.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <zstd.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
ZSTD_CStream *cstream;
|
||||
|
||||
cstream = ZSTD_createCStream();
|
||||
ZSTD_freeCStream(cstream);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -152,6 +152,13 @@ endif
|
|||
FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS)
|
||||
FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf
|
||||
|
||||
ifdef LIBZSTD_DIR
|
||||
LIBZSTD_CFLAGS := -I$(LIBZSTD_DIR)/lib
|
||||
LIBZSTD_LDFLAGS := -L$(LIBZSTD_DIR)/lib
|
||||
endif
|
||||
FEATURE_CHECK_CFLAGS-libzstd := $(LIBZSTD_CFLAGS)
|
||||
FEATURE_CHECK_LDFLAGS-libzstd := $(LIBZSTD_LDFLAGS)
|
||||
|
||||
FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi -I$(srctree)/tools/include/uapi
|
||||
# include ARCH specific config
|
||||
-include $(src-perf)/arch/$(SRCARCH)/Makefile
|
||||
|
@ -787,6 +794,19 @@ ifndef NO_LZMA
|
|||
endif
|
||||
endif
|
||||
|
||||
ifndef NO_LIBZSTD
|
||||
ifeq ($(feature-libzstd), 1)
|
||||
CFLAGS += -DHAVE_ZSTD_SUPPORT
|
||||
CFLAGS += $(LIBZSTD_CFLAGS)
|
||||
LDFLAGS += $(LIBZSTD_LDFLAGS)
|
||||
EXTLIBS += -lzstd
|
||||
$(call detected,CONFIG_ZSTD)
|
||||
else
|
||||
msg := $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR);
|
||||
NO_LIBZSTD := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef NO_BACKTRACE
|
||||
ifeq ($(feature-backtrace), 1)
|
||||
CFLAGS += -DHAVE_BACKTRACE_SUPPORT
|
||||
|
|
|
@ -108,6 +108,9 @@ include ../scripts/utilities.mak
|
|||
# streaming for record mode. Currently Posix AIO trace streaming is
|
||||
# supported only when linking with glibc.
|
||||
#
|
||||
# Define NO_LIBZSTD if you do not want support of Zstandard based runtime
|
||||
# trace compression in record mode.
|
||||
#
|
||||
|
||||
# As per kernel Makefile, avoid funny character set dependencies
|
||||
unexport LC_ALL
|
||||
|
|
|
@ -78,6 +78,8 @@ static void library_status(void)
|
|||
STATUS(HAVE_LZMA_SUPPORT, lzma);
|
||||
STATUS(HAVE_AUXTRACE_SUPPORT, get_cpuid);
|
||||
STATUS(HAVE_LIBBPF_SUPPORT, bpf);
|
||||
STATUS(HAVE_AIO_SUPPORT, aio);
|
||||
STATUS(HAVE_ZSTD_SUPPORT, zstd);
|
||||
}
|
||||
|
||||
int cmd_version(int argc, const char **argv)
|
||||
|
|
Loading…
Reference in a new issue