tools/dwarves: add host package
dwarves is a set of tools that use the debugging information inserted in ELF binaries by compilers such as GCC. Utilities in the dwarves suite include pahole, which can be used to find alignment holes in structs and classes, and also extracts other information such as CPU cacheline alignment, helping pack those structures to achieve more cache hits. These tools are also used to encode and read the BTF type information format used with the bpf syscall, making this a Linux build dependency when using kernel BTF information. Signed-off-by: Tony Ambardar <itugrok@yahoo.com> Signed-off-by: Felix Fietkau <nbd@nbd.name> [bump to 1.23, add elfutils dep, drop host lib usage, drop cmake release target, use RM macro] Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
		 Tony Ambardar
					Tony Ambardar
				
			
				
					committed by
					
						 Stijn Tintel
						Stijn Tintel
					
				
			
			
				
	
			
			
			 Stijn Tintel
						Stijn Tintel
					
				
			
						parent
						
							6300313dee
						
					
				
				
					commit
					02850d7c9c
				
			| @@ -247,6 +247,14 @@ comment "Binary tools" | |||||||
|  |  | ||||||
| source "toolchain/binutils/Config.in" | source "toolchain/binutils/Config.in" | ||||||
|  |  | ||||||
|  | config DWARVES | ||||||
|  | 	bool | ||||||
|  | 	prompt "Build pahole" if TOOLCHAINOPTS | ||||||
|  | 	depends on !HOST_OS_MACOS | ||||||
|  | 	default n | ||||||
|  | 	help | ||||||
|  | 	  Enable if you want to build pahole and the dwarves tools. | ||||||
|  |  | ||||||
| comment "Compiler" | comment "Compiler" | ||||||
| 	depends on TOOLCHAINOPTS | 	depends on TOOLCHAINOPTS | ||||||
|  |  | ||||||
|   | |||||||
| @@ -84,7 +84,9 @@ endif | |||||||
| ifeq ($(HOST_OS),Darwin) | ifeq ($(HOST_OS),Darwin) | ||||||
|   tools-y += bash |   tools-y += bash | ||||||
| else | else | ||||||
|  |   $(curdir)/dwarves/compile += $(curdir)/elfutils/compile | ||||||
|   $(curdir)/elfutils/compile := $(curdir)/zlib/compile |   $(curdir)/elfutils/compile := $(curdir)/zlib/compile | ||||||
|  |   tools-$(CONFIG_DWARVES) += dwarves | ||||||
|   tools-y += elfutils |   tools-y += elfutils | ||||||
| endif | endif | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								tools/dwarves/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tools/dwarves/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | # SPDX-License-Identifier: GPL-2.0-only | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=dwarves | ||||||
|  |  | ||||||
|  | PKG_SOURCE_VERSION:=v1.23 | ||||||
|  | PKG_SOURCE_PROTO:=git | ||||||
|  | PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/devel/pahole/pahole.git | ||||||
|  | PKG_MIRROR_HASH:=6ab1bb1dbdf6c73ffcf485d909229dc1da1a3d24efd213e92c56489b58d6a4bd | ||||||
|  | PKG_LICENSE:=GPL-2.0-only | ||||||
|  | PKG_LICENSE_FILES:=COPYING | ||||||
|  |  | ||||||
|  | HOST_BUILD_PARALLEL:=1 | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  | include $(INCLUDE_DIR)/cmake.mk | ||||||
|  |  | ||||||
|  | CMAKE_HOST_OPTIONS += \ | ||||||
|  | 	-D__LIB=lib \ | ||||||
|  | 	-DCMAKE_INSTALL_RPATH="$(STAGING_DIR_HOST)/lib" \ | ||||||
|  | 	-DCMAKE_SKIP_RPATH=FALSE | ||||||
|  |  | ||||||
|  | define Host/Clean | ||||||
|  | 	$(RM) $(STAGING_DIR_HOST)/bin/{codiff,ctracer,dtagnames,pahole,pdwtags} | ||||||
|  | 	$(RM) $(STAGING_DIR_HOST)/bin/{pfunct,pglobal,prefcnt,scncopy,syscse} | ||||||
|  | 	$(RM) $(STAGING_DIR_HOST)/bin/{ostra-cg,btfdiff,fullcircle} | ||||||
|  | 	$(RM) $(STAGING_DIR_HOST)/lib/libdwarves*.so* | ||||||
|  | 	$(RM) $(STAGING_DIR_HOST)/share/man/man1/pahole.1 | ||||||
|  | 	rm -rf $(STAGING_DIR_HOST)/include/dwarves | ||||||
|  | 	rm -rf $(STAGING_DIR_HOST)/share/dwarves | ||||||
|  | 	$(call Host/Clean/Default) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call HostBuild)) | ||||||
		Reference in New Issue
	
	Block a user