From 6605e45676815156f0c47d4117ee401e6616fcac Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 7 Feb 2025 11:11:42 +0100 Subject: [PATCH] build: conditionally build llvm bpf toolchain by default Unless another toolchain is present (or selected), build the bpf toolchain whenever a package is selected that needs it. Signed-off-by: Felix Fietkau --- include/bpf.mk | 2 +- package/network/services/unetd/Makefile | 1 + toolchain/Config.in | 14 +++++++------- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/bpf.mk b/include/bpf.mk index 2b7aa8512c..8a0121aabe 100644 --- a/include/bpf.mk +++ b/include/bpf.mk @@ -1,4 +1,4 @@ -BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +@NEED_BPF_TOOLCHAIN LLVM_VER:= CLANG_MIN_VER:=12 diff --git a/package/network/services/unetd/Makefile b/package/network/services/unetd/Makefile index cc59b9100b..6923c68873 100644 --- a/package/network/services/unetd/Makefile +++ b/package/network/services/unetd/Makefile @@ -40,6 +40,7 @@ define Package/unetd/config bool "VXLAN support" depends on PACKAGE_unetd depends on HAS_BPF_TOOLCHAIN + select NEED_BPF_TOOLCHAIN default y endef diff --git a/toolchain/Config.in b/toolchain/Config.in index b4ba5b3b67..71ebbeb47b 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -40,9 +40,8 @@ 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 + default BPF_TOOLCHAIN_BUILD_LLVM config BPF_TOOLCHAIN_NONE bool "None" @@ -57,7 +56,7 @@ menuconfig TARGET_OPTIONS bool "Use host LLVM toolchain" config BPF_TOOLCHAIN_BUILD_LLVM - select USE_LLVM_BUILD + select USE_LLVM_BUILD if NEED_BPF_TOOLCHAIN bool "Build LLVM toolchain for eBPF" help If enabled, a LLVM toolchain for building eBPF binaries will be built. @@ -320,23 +319,24 @@ config GDB_PYTHON Enable the python bindings for GDB to allow using python in the gdb shell. config HAS_BPF_TOOLCHAIN + default y if !BPF_TOOLCHAIN_NONE + bool + +config NEED_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 + default y if !DEVEL && NEED_BPF_TOOLCHAIN && (BUILDBOT || !HAS_PREBUILT_LLVM_TOOLCHAIN) bool config USE_GLIBC -- 2.30.2