mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 10:28:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			100 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 1eb36bc2be4b54e4e4e4ceffc01be78d996205f0 Mon Sep 17 00:00:00 2001
 | |
| From: Felix Fietkau <nbd@nbd.name>
 | |
| Date: Sun, 17 Oct 2021 17:50:53 +0200
 | |
| Subject: [PATCH 052/102] 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>
 | |
| ---
 | |
|  toolchain/Config.in     |  7 +++++++
 | |
|  tools/Makefile          |  2 ++
 | |
|  tools/llvm-bpf/Makefile | 36 ++++++++++++++++++++++++++++++++++++
 | |
|  3 files changed, 45 insertions(+)
 | |
|  create mode 100644 tools/llvm-bpf/Makefile
 | |
| 
 | |
| diff --git a/toolchain/Config.in b/toolchain/Config.in
 | |
| index 6dda9af92d..9062d6f65e 100644
 | |
| --- a/toolchain/Config.in
 | |
| +++ b/toolchain/Config.in
 | |
| @@ -37,6 +37,13 @@ menuconfig TARGET_OPTIONS
 | |
|  
 | |
|  		  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
 | |
|  	bool
 | |
| diff --git a/tools/Makefile b/tools/Makefile
 | |
| index a2665dbc9a..83147014c6 100644
 | |
| --- a/tools/Makefile
 | |
| +++ b/tools/Makefile
 | |
| @@ -35,6 +35,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_BUILD_LLVM_BPF) += llvm-bpf
 | |
|  
 | |
|  # builddir dependencies
 | |
|  $(curdir)/autoconf/compile := $(curdir)/m4/compile
 | |
| @@ -57,6 +58,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
 | |
| new file mode 100644
 | |
| index 0000000000..a5ba2a4cb7
 | |
| --- /dev/null
 | |
| +++ b/tools/llvm-bpf/Makefile
 | |
| @@ -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))
 | |
| -- 
 | |
| 2.25.1
 | |
| 
 | 
