diff --git a/include/bpf.mk b/include/bpf.mk index 28cdf6cb32..c68ad74554 100644 --- a/include/bpf.mk +++ b/include/bpf.mk @@ -1,6 +1,7 @@ BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +LLVM_VER:= -ifneq ($(CONFIG_BPF_TOOLCHAIN_HOST),) +ifneq ($(CONFIG_USE_LLVM_HOST),) BPF_TOOLCHAIN_HOST_PATH:=$(call qstrip,$(CONFIG_BPF_TOOLCHAIN_HOST_PATH)) ifneq ($(BPF_TOOLCHAIN_HOST_PATH),) BPF_PATH:=$(BPF_TOOLCHAIN_HOST_PATH)/bin:$(PATH) @@ -9,9 +10,12 @@ ifneq ($(CONFIG_BPF_TOOLCHAIN_HOST),) endif CLANG:=$(firstword $(shell PATH='$(BPF_PATH)' which clang clang-13 clang-12 clang-11)) LLVM_VER:=$(subst clang,,$(notdir $(CLANG))) -else +endif +ifneq ($(CONFIG_USE_LLVM_PREBUILT),) + CLANG:=$(TOPDIR)/llvm-bpf/bin/clang +endif +ifneq ($(CONFIG_USE_LLVM_BUILD),) CLANG:=$(STAGING_DIR_HOST)/llvm-bpf/bin/clang - LLVM_VER:= endif LLVM_PATH:=$(dir $(CLANG)) diff --git a/toolchain/Config.in b/toolchain/Config.in index a7da2a1f73..366f5c8b48 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -41,11 +41,17 @@ menuconfig TARGET_OPTIONS choice BPF_TOOLCHAIN prompt "BPF toolchain" if DEVEL default BPF_TOOLCHAIN_BUILD_LLVM if BUILDBOT + default BPF_TOOLCHAIN_PREBUILT if HAS_PREBUILT_LLVM_TOOLCHAIN default BPF_TOOLCHAIN_NONE config BPF_TOOLCHAIN_NONE bool "None" + config BPF_TOOLCHAIN_PREBUILT + bool "Use prebuilt LLVM toolchain" + depends on HAS_PREBUILT_LLVM_TOOLCHAIN + select USE_LLVM_PREBUILT + config BPF_TOOLCHAIN_HOST select USE_LLVM_HOST bool "Use host LLVM toolchain" @@ -298,10 +304,18 @@ config GDB_PYTHON config HAS_BPF_TOOLCHAIN bool +config HAS_PREBUILT_LLVM_TOOLCHAIN + def_bool $(shell, [ -f llvm-bpf/.llvm-version ] && echo y || echo n) + config USE_LLVM_HOST select HAS_BPF_TOOLCHAIN bool +config USE_LLVM_PREBUILT + select HAS_BPF_TOOLCHAIN + default y if !DEVEL && !BUILDBOT && HAS_PREBUILT_LLVM_TOOLCHAIN + bool + config USE_LLVM_BUILD default y if !DEVEL && BUILDBOT select HAS_BPF_TOOLCHAIN