[openwrt/openwrt] build: add support for using prebuilt LLVM toolchain
LEDE Commits
lede-commits at lists.infradead.org
Thu Nov 4 12:06:25 PDT 2021
nbd pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/9f90a89655d41ba8afcd8018d7bc8b3753beb17e
commit 9f90a89655d41ba8afcd8018d7bc8b3753beb17e
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Nov 4 20:04:44 2021 +0100
build: add support for using prebuilt LLVM toolchain
When the prebuilt llvm toolchain is unpacked into the source dir,
it is automatically picked up and used by the build system, and eBPF
based packages can be selected
Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
include/bpf.mk | 10 +++++++---
toolchain/Config.in | 14 ++++++++++++++
2 files changed, 21 insertions(+), 3 deletions(-)
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
More information about the lede-commits
mailing list