mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	llvm-bpf: support creating a tarball in bin
This can be used for adding the toolchain to an existing tree without having to build it from scratch. Enable building the toolchain + tarball by default on buildbot Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		
							parent
							
								
									a7c0d7c06c
								
							
						
					
					
						commit
						2a832b3df5
					
				| @ -7,4 +7,11 @@ config SDK | ||||
| 	  with a precompiled toolchain. It can be used to develop and | ||||
| 	  test packages for OpenWrt before including them in the buildroot | ||||
| 
 | ||||
| 
 | ||||
| config SDK_LLVM_BPF | ||||
| 	bool "Build the LLVM-BPF toolchain tarball" | ||||
| 	depends on BPF_TOOLCHAIN_BUILD_LLVM | ||||
| 	default BUILDBOT | ||||
| 	help | ||||
| 	  This is a tarball of the precompiled LLVM toolchain suitable | ||||
| 	  for unpacking into the buildroot/SDK. It is used to build packages | ||||
| 	  that ship with eBPF kernel modules | ||||
|  | ||||
| @ -34,7 +34,8 @@ EXCLUDE_DIRS:= \ | ||||
| 	*.install.flags \
 | ||||
| 	*.install \
 | ||||
| 	*/doc \
 | ||||
| 	*/share/locale | ||||
| 	*/share/locale \
 | ||||
| 	*/llvm-bpf* | ||||
| 
 | ||||
| SDK_DIRS = \
 | ||||
| 		$(STAGING_SUBDIR_HOST) \
 | ||||
|  | ||||
| @ -40,6 +40,7 @@ menuconfig TARGET_OPTIONS | ||||
| 
 | ||||
| 	choice BPF_TOOLCHAIN | ||||
| 		prompt "BPF toolchain" if DEVEL | ||||
| 		default BPF_TOOLCHAIN_BUILD_LLVM if BUILDBOT | ||||
| 		default BPF_TOOLCHAIN_NONE | ||||
| 
 | ||||
| 		config BPF_TOOLCHAIN_NONE | ||||
| @ -302,6 +303,7 @@ config USE_LLVM_HOST | ||||
| 	bool | ||||
| 
 | ||||
| config USE_LLVM_BUILD | ||||
| 	default y if !DEVEL && BUILDBOT | ||||
| 	select HAS_BPF_TOOLCHAIN | ||||
| 	bool | ||||
| 
 | ||||
|  | ||||
| @ -24,7 +24,9 @@ CMAKE_SOURCE_SUBDIR := llvm | ||||
| include $(INCLUDE_DIR)/host-build.mk | ||||
| include $(INCLUDE_DIR)/cmake.mk | ||||
| 
 | ||||
| CMAKE_HOST_INSTALL_PREFIX = $(STAGING_DIR_HOST)/llvm-bpf | ||||
| LLVM_BPF_PREFIX = llvm-bpf-$(PKG_VERSION).$(HOST_OS)-$(HOST_ARCH) | ||||
| 
 | ||||
| CMAKE_HOST_INSTALL_PREFIX = $(STAGING_DIR_HOST)/$(LLVM_BPF_PREFIX) | ||||
| 
 | ||||
| CMAKE_HOST_OPTIONS += \
 | ||||
| 	-DLLVM_ENABLE_BINDINGS=OFF \
 | ||||
| @ -39,4 +41,25 @@ CMAKE_HOST_OPTIONS += \ | ||||
| 	-DLLVM_TOOLCHAIN_TOOLS="llvm-objcopy;llvm-objdump;llvm-readelf;llvm-strip;llvm-ar;llvm-as;llvm-dis;llvm-link;llvm-nm;llvm-ranlib;llc;opt" \
 | ||||
| 	-DCMAKE_SKIP_RPATH=OFF | ||||
| 
 | ||||
| ifneq ($(CONFIG_SDK_LLVM_BPF),) | ||||
|   define Host/Install/Bin | ||||
| 	echo "$(PKG_VERSION)" > $(CMAKE_HOST_INSTALL_PREFIX)/.llvm-version | ||||
| 	STRIP_KMOD= PATCHELF= STRIP=strip $(SCRIPT_DIR)/rstrip.sh $(STAGING_DIR_HOST)/llvm-bpf | ||||
| 	tar -C $(STAGING_DIR_HOST) \
 | ||||
| 		-I '$(STAGING_DIR_HOST)/bin/xz -7e -T$(if $(filter 1,$(NPROC)),2,0)' \
 | ||||
| 		-cf $(BIN_DIR)/llvm-bpf-$(PKG_VERSION).tar.xz llvm-bpf $(LLVM_BPF_PREFIX) | ||||
|   endef | ||||
| endif | ||||
| 
 | ||||
| define Host/Install | ||||
| 	rm -rf $(STAGING_DIR_HOST)/llvm-bpf* | ||||
| 	$(Host/Install/Default) | ||||
| 	ln -s $(LLVM_BPF_PREFIX) $(STAGING_DIR_HOST)/llvm-bpf | ||||
| 	$(Host/Install/Bin) | ||||
| endef | ||||
| 
 | ||||
| define Host/Uninstall | ||||
| 	rm -rf $(STAGING_DIR_HOST)/llvm-bpf* | ||||
| endef | ||||
| 
 | ||||
| $(eval $(call HostBuild)) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user