Commit 6a32fa5c authored by Dmitrii Dolgov's avatar Dmitrii Dolgov Committed by Arnaldo Carvalho de Melo
Browse files

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: default avatarDmitrii Dolgov <9erthalion6@gmail.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent ff9aeb6b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -100,7 +100,8 @@ FEATURE_TESTS_BASIC := \
        disassembler-four-args		\
        disassembler-init-styled	\
        file-handle			\
        libopenssl
        libopenssl			\
        rust

# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
# of all feature tests
@@ -149,7 +150,8 @@ FEATURE_DISPLAY ?= \
         bpf			\
         libaio			\
         libzstd		\
         libopenssl
         libopenssl		\
         rust

#
# Declare group members of a feature to display the logical OR of the detection
+7 −0
Original line number Diff line number Diff line
@@ -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 = $(__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:
@@ -388,6 +391,10 @@ $(OUTPUT)test-libopenssl.bin:
$(OUTPUT)test-bpftool-skeletons.bin:
	$(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
		> $(@:.bin=.make.output) 2>&1

$(OUTPUT)test-rust.bin:
	$(BUILDRS) > $(@:.bin=.make.output) 2>&1

###############################

clean:
+4 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
fn main() {
    println!("hi")
}
+11 −0
Original line number Diff line number Diff line
@@ -1153,6 +1153,17 @@ ifneq ($(NO_LIBTRACEEVENT),1)
  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:
#   perfexecdir
#   libbpf_include_dir
+1 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ struct feature_status supported_features[] = {
	FEATURE_STATUS("numa_num_possible_cpus", HAVE_LIBNUMA_SUPPORT),
	FEATURE_STATUS("zlib", HAVE_ZLIB_SUPPORT),
	FEATURE_STATUS("zstd", HAVE_ZSTD_SUPPORT),
	FEATURE_STATUS("rust", HAVE_RUST_SUPPORT),

	/* this should remain at end, to know the array end */
	FEATURE_STATUS(NULL, _)