tools/llvm-bpf: add llvm+clang build suitable for compiling code to eBPF
Preparation for building packages that ship eBPF code Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -37,6 +37,13 @@ menuconfig TARGET_OPTIONS | |||||||
|  |  | ||||||
| 		  Most people will answer N. | 		  Most people will answer N. | ||||||
|  |  | ||||||
|  | config BUILD_LLVM_BPF | ||||||
|  | 	bool "Build LLVM toolchain for eBPF" if DEVEL | ||||||
|  | 	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 | ||||||
|  |  | ||||||
|  |  | ||||||
| menuconfig EXTERNAL_TOOLCHAIN | menuconfig EXTERNAL_TOOLCHAIN | ||||||
| 	bool | 	bool | ||||||
|   | |||||||
| @@ -35,6 +35,7 @@ tools-$(CONFIG_TARGET_mxs) += elftosb sdimage | |||||||
| tools-$(CONFIG_TARGET_tegra) += cbootimage cbootimage-configs | tools-$(CONFIG_TARGET_tegra) += cbootimage cbootimage-configs | ||||||
| tools-$(CONFIG_USES_MINOR) += kernel2minor | tools-$(CONFIG_USES_MINOR) += kernel2minor | ||||||
| tools-$(CONFIG_USE_SPARSE) += sparse | tools-$(CONFIG_USE_SPARSE) += sparse | ||||||
|  | tools-$(CONFIG_BUILD_LLVM_BPF) += llvm-bpf | ||||||
|  |  | ||||||
| # builddir dependencies | # builddir dependencies | ||||||
| $(curdir)/autoconf/compile := $(curdir)/m4/compile | $(curdir)/autoconf/compile := $(curdir)/m4/compile | ||||||
| @@ -56,6 +57,7 @@ $(curdir)/isl/compile := $(curdir)/gmp/compile | |||||||
| $(curdir)/libressl/compile := $(curdir)/pkgconf/compile | $(curdir)/libressl/compile := $(curdir)/pkgconf/compile | ||||||
| $(curdir)/libtool/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/automake/compile $(curdir)/missing-macros/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)/lzma-old/compile := $(curdir)/zlib/compile | ||||||
|  | $(curdir)/llvm-bpf/compile := $(curdir)/cmake/compile | ||||||
| $(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile | $(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile | ||||||
| $(curdir)/meson/compile := $(curdir)/ninja/compile | $(curdir)/meson/compile := $(curdir)/ninja/compile | ||||||
| $(curdir)/missing-macros/compile := $(curdir)/autoconf/compile | $(curdir)/missing-macros/compile := $(curdir)/autoconf/compile | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								tools/llvm-bpf/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								tools/llvm-bpf/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | # | ||||||
|  | # Copyright (C) 2006-2016 OpenWrt.org | ||||||
|  | # | ||||||
|  | # This is free software, licensed under the GNU General Public License v2. | ||||||
|  | # See /LICENSE for more information. | ||||||
|  | # | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=llvm-project | ||||||
|  | PKG_VERSION:=13.0.0 | ||||||
|  | PKG_RELEASE:=1 | ||||||
|  |  | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).src.tar.xz | ||||||
|  | PKG_SOURCE_URL:=https://github.com/llvm/llvm-project/releases/download/llvmorg-$(PKG_VERSION) | ||||||
|  | PKG_HASH:=6075ad30f1ac0e15f07c1bf062c1e1268c241d674f11bd32cdf0e040c71f2bf3 | ||||||
|  |  | ||||||
|  | HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION).src | ||||||
|  |  | ||||||
|  | HOST_BUILD_PARALLEL:=1 | ||||||
|  |  | ||||||
|  | CMAKE_BINARY_SUBDIR := build | ||||||
|  | CMAKE_SOURCE_SUBDIR := llvm | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  | include $(INCLUDE_DIR)/cmake.mk | ||||||
|  |  | ||||||
|  | CMAKE_HOST_OPTIONS += \ | ||||||
|  | 	-DLLVM_ENABLE_BINDINGS=OFF \ | ||||||
|  | 	-DLLVM_INCLUDE_DOCS=OFF \ | ||||||
|  | 	-DLLVM_INCLUDE_EXAMPLES=OFF \ | ||||||
|  | 	-DLLVM_INCLUDE_TESTS=OFF \ | ||||||
|  | 	-DLLVM_ENABLE_PROJECTS="clang;lld" \ | ||||||
|  | 	-DLLVM_TARGETS_TO_BUILD=BPF \ | ||||||
|  | 	-DCLANG_BUILD_EXAMPLES=OFF | ||||||
|  |  | ||||||
|  | $(eval $(call HostBuild)) | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau