[][MAC80211][Add Bridger related patches]
[Description]
Add Bridger related patches.
[Release-log]
N/A
Change-Id: I62a66ef99dc14ef2a86598a5bb251c0168e4cdd7
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6295961
diff --git a/autobuild_mac80211_release/0010-add-llvm_bpf-toolchain.patch b/autobuild_mac80211_release/0010-add-llvm_bpf-toolchain.patch
new file mode 100644
index 0000000..143c03e
--- /dev/null
+++ b/autobuild_mac80211_release/0010-add-llvm_bpf-toolchain.patch
@@ -0,0 +1,134 @@
+diff --git a/target/Makefile b/target/Makefile
+index 7ad26c71..83f9c4b0 100644
+--- a/target/Makefile
++++ b/target/Makefile
+@@ -7,9 +7,14 @@
+ curdir:=target
+
+ $(curdir)/subtargets:=install
+-$(curdir)/builddirs:=linux sdk imagebuilder toolchain
++$(curdir)/builddirs:=linux sdk imagebuilder toolchain llvm-bpf
+ $(curdir)/builddirs-default:=linux
+-$(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder) $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain)
++$(curdir)/builddirs-install:=\
++ linux \
++ $(if $(CONFIG_SDK),sdk) \
++ $(if $(CONFIG_IB),imagebuilder) \
++ $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain) \
++ $(if $(CONFIG_SDK_LLVM_BPF),llvm-bpf)
+
+ $(curdir)/sdk/install:=$(curdir)/linux/install
+ $(curdir)/imagebuilder/install:=$(curdir)/linux/install
+diff --git a/toolchain/Config.in b/toolchain/Config.in
+index 6dda9af9..221e25f2 100644
+--- a/toolchain/Config.in
++++ b/toolchain/Config.in
+@@ -37,6 +37,39 @@ menuconfig TARGET_OPTIONS
+
+ Most people will answer N.
+
++ 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"
++
++ config BPF_TOOLCHAIN_BUILD_LLVM
++ select USE_LLVM_BUILD
++ bool "Build LLVM toolchain for eBPF"
++ help
++ If enabled, a LLVM toolchain for building eBPF binaries will be built.
++ If this is not enabled, eBPF packages can only be built if the host
++ has a suitable toolchain
++ endchoice
++
++ config BPF_TOOLCHAIN_HOST_PATH
++ string
++ depends on BPF_TOOLCHAIN_HOST
++ prompt "Host LLVM toolchain path (prefix)" if DEVEL
++ default "/usr/local/opt/llvm" if HOST_OS_MACOS
++ default ""
+
+ menuconfig EXTERNAL_TOOLCHAIN
+ bool
+@@ -259,6 +292,26 @@ config GDB
+ help
+ Enable if you want to build the gdb.
+
++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
++ bool
++
+ config USE_GLIBC
+ default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && (arc)
+ bool
+diff --git a/tools/Makefile b/tools/Makefile
+index 29309ec4..84f984dd 100644
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -37,6 +37,7 @@ tools-$(CONFIG_TARGET_mxs) += elftosb sdimage
+ tools-$(CONFIG_TARGET_tegra) += cbootimage cbootimage-configs
+ tools-$(CONFIG_USES_MINOR) += kernel2minor
+ tools-$(CONFIG_USE_SPARSE) += sparse
++tools-$(CONFIG_USE_LLVM_BUILD) += llvm-bpf
+
+ # builddir dependencies
+ $(curdir)/autoconf/compile := $(curdir)/m4/compile
+@@ -59,6 +60,7 @@ $(curdir)/libelf/compile := $(curdir)/libtool/compile
+ $(curdir)/libressl/compile := $(curdir)/pkgconf/compile
+ $(curdir)/libtool/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/automake/compile $(curdir)/missing-macros/compile
+ $(curdir)/lzma-old/compile := $(curdir)/zlib/compile
++$(curdir)/llvm-bpf/compile := $(curdir)/cmake/compile
+ $(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile
+ $(curdir)/missing-macros/compile := $(curdir)/autoconf/compile
+ $(curdir)/mkimage/compile += $(curdir)/libressl/compile
+diff --git a/tools/llvm-bpf/Makefile b/tools/llvm-bpf/Makefile
+index 527b3578..53b7347a 100644
+--- a/tools/llvm-bpf/Makefile
++++ b/tools/llvm-bpf/Makefile
+@@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/cmake.mk
+
+ LLVM_BPF_PREFIX = llvm-bpf-$(PKG_VERSION).$(HOST_OS)-$(HOST_ARCH)
+
+-CMAKE_HOST_INSTALL_PREFIX = $(STAGING_DIR_HOST)/$(LLVM_BPF_PREFIX)
++HOST_BUILD_PREFIX = $(STAGING_DIR_HOST)/$(LLVM_BPF_PREFIX)
+
+ CMAKE_HOST_OPTIONS += \
+ -DLLVM_ENABLE_BINDINGS=OFF \
+@@ -46,7 +46,7 @@ define Host/Install
+ $(Host/Install/Default)
+ ln -s $(LLVM_BPF_PREFIX) $(STAGING_DIR_HOST)/llvm-bpf
+ STRIP_KMOD= PATCHELF= STRIP=strip $(SCRIPT_DIR)/rstrip.sh $(STAGING_DIR_HOST)/llvm-bpf
+- echo "$(PKG_VERSION)" > $(CMAKE_HOST_INSTALL_PREFIX)/.llvm-version
++ echo "$(PKG_VERSION)" > $(HOST_BUILD_PREFIX)/.llvm-version
+ endef
+
+ define Host/Uninstall