mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
tools build: Add a feature test for rust compiler
Add a feature test to identify if the rust compiler is available, so that perf could build rust based worloads based on that. Signed-off-by: Dmitrii Dolgov <9erthalion6@gmail.com> Cc: Ian Rogers <irogers@google.com> Cc: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
ff9aeb6bd1
commit
6a32fa5ccd
|
|
@ -100,7 +100,8 @@ FEATURE_TESTS_BASIC := \
|
||||||
disassembler-four-args \
|
disassembler-four-args \
|
||||||
disassembler-init-styled \
|
disassembler-init-styled \
|
||||||
file-handle \
|
file-handle \
|
||||||
libopenssl
|
libopenssl \
|
||||||
|
rust
|
||||||
|
|
||||||
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
||||||
# of all feature tests
|
# of all feature tests
|
||||||
|
|
@ -149,7 +150,8 @@ FEATURE_DISPLAY ?= \
|
||||||
bpf \
|
bpf \
|
||||||
libaio \
|
libaio \
|
||||||
libzstd \
|
libzstd \
|
||||||
libopenssl
|
libopenssl \
|
||||||
|
rust
|
||||||
|
|
||||||
#
|
#
|
||||||
# Declare group members of a feature to display the logical OR of the detection
|
# Declare group members of a feature to display the logical OR of the detection
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,9 @@ __BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(
|
||||||
__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)
|
__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)
|
||||||
BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1
|
BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1
|
||||||
|
|
||||||
|
__BUILDRS = $(RUSTC) $(RUSTC_FLAGS) -o $@ $(patsubst %.bin,%.rs,$(@F))
|
||||||
|
BUILDRS = $(__BUILDRS) > $(@:.bin=.make.output) 2>&1
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
|
|
||||||
$(OUTPUT)test-all.bin:
|
$(OUTPUT)test-all.bin:
|
||||||
|
|
@ -388,6 +391,10 @@ $(OUTPUT)test-libopenssl.bin:
|
||||||
$(OUTPUT)test-bpftool-skeletons.bin:
|
$(OUTPUT)test-bpftool-skeletons.bin:
|
||||||
$(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
|
$(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
|
||||||
> $(@:.bin=.make.output) 2>&1
|
> $(@:.bin=.make.output) 2>&1
|
||||||
|
|
||||||
|
$(OUTPUT)test-rust.bin:
|
||||||
|
$(BUILDRS) > $(@:.bin=.make.output) 2>&1
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
|
||||||
4
tools/build/feature/test-rust.rs
Normal file
4
tools/build/feature/test-rust.rs
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
fn main() {
|
||||||
|
println!("hi")
|
||||||
|
}
|
||||||
|
|
@ -1153,6 +1153,17 @@ ifneq ($(NO_LIBTRACEEVENT),1)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifndef NO_RUST
|
||||||
|
ifneq ($(feature-rust), 1)
|
||||||
|
$(warning Rust is not found. Test workloads with rust are disabled.)
|
||||||
|
NO_RUST := 1
|
||||||
|
else
|
||||||
|
NO_RUST := 0
|
||||||
|
CFLAGS += -DHAVE_RUST_SUPPORT
|
||||||
|
$(call detected,CONFIG_RUST_SUPPORT)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Among the variables below, these:
|
# Among the variables below, these:
|
||||||
# perfexecdir
|
# perfexecdir
|
||||||
# libbpf_include_dir
|
# libbpf_include_dir
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ struct feature_status supported_features[] = {
|
||||||
FEATURE_STATUS("numa_num_possible_cpus", HAVE_LIBNUMA_SUPPORT),
|
FEATURE_STATUS("numa_num_possible_cpus", HAVE_LIBNUMA_SUPPORT),
|
||||||
FEATURE_STATUS("zlib", HAVE_ZLIB_SUPPORT),
|
FEATURE_STATUS("zlib", HAVE_ZLIB_SUPPORT),
|
||||||
FEATURE_STATUS("zstd", HAVE_ZSTD_SUPPORT),
|
FEATURE_STATUS("zstd", HAVE_ZSTD_SUPPORT),
|
||||||
|
FEATURE_STATUS("rust", HAVE_RUST_SUPPORT),
|
||||||
|
|
||||||
/* this should remain at end, to know the array end */
|
/* this should remain at end, to know the array end */
|
||||||
FEATURE_STATUS(NULL, _)
|
FEATURE_STATUS(NULL, _)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user