mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 17:42:41 +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
|
|
|