build: conditionally build llvm bpf toolchain by default
authorFelix Fietkau <nbd@nbd.name>
Fri, 7 Feb 2025 10:11:42 +0000 (11:11 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 7 Feb 2025 10:16:08 +0000 (11:16 +0100)
Unless another toolchain is present (or selected), build the bpf toolchain
whenever a package is selected that needs it.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
include/bpf.mk
package/network/services/unetd/Makefile
toolchain/Config.in

index 2b7aa8512c2cb9a9c112fae889f4792830d1fd39..8a0121aabec0429793c2eec0e8281a74ca15e9ee 100644 (file)
@@ -1,4 +1,4 @@
-BPF_DEPENDS := @HAS_BPF_TOOLCHAIN
+BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +@NEED_BPF_TOOLCHAIN
 LLVM_VER:=
 
 CLANG_MIN_VER:=12
index cc59b9100b418e867e808ec2a220538862120b9e..6923c688738a25f45836e45fcf8c28d9a6a29f62 100644 (file)
@@ -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
index b4ba5b3b677cf979311c683d9e13b3daf4755e1d..71ebbeb47bf2a024ba070ac02bf0c07a10227c14 100644 (file)
@@ -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