gnu: Add bpftrace.
* gnu/packages/linux.scm (bpftrace): New variable. * gnu/packages/patches/bpftrace-disable-bfd-disasm.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This commit is contained in:
		
							parent
							
								
									636d573b74
								
							
						
					
					
						commit
						c55acb0732
					
				
					 3 changed files with 61 additions and 0 deletions
				
			
		| 
						 | 
					@ -825,6 +825,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/bitcoin-core-python-compat.patch		\
 | 
					  %D%/packages/patches/bitcoin-core-python-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
 | 
					  %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
 | 
				
			||||||
  %D%/packages/patches/blender-2.79-python-3.7-fix.patch	\
 | 
					  %D%/packages/patches/blender-2.79-python-3.7-fix.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/bpftrace-disable-bfd-disasm.patch	\
 | 
				
			||||||
  %D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \
 | 
					  %D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \
 | 
				
			||||||
  %D%/packages/patches/byobu-writable-status.patch		\
 | 
					  %D%/packages/patches/byobu-writable-status.patch		\
 | 
				
			||||||
  %D%/packages/patches/calibre-no-updates-dialog.patch		\
 | 
					  %D%/packages/patches/calibre-no-updates-dialog.patch		\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7396,3 +7396,48 @@ extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature
 | 
				
			||||||
that was first added to Linux 3.15.  Much of what BCC uses requires Linux 4.1
 | 
					that was first added to Linux 3.15.  Much of what BCC uses requires Linux 4.1
 | 
				
			||||||
and above.")
 | 
					and above.")
 | 
				
			||||||
    (license license:asl2.0)))
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public bpftrace
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "bpftrace")
 | 
				
			||||||
 | 
					    (version "0.10.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/iovisor/bpftrace")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "023ardywbw5w8815j2ny9rrp2xlpxndqaa7v2njjm8109p7ilsdn"))
 | 
				
			||||||
 | 
					       (patches (search-patches "bpftrace-disable-bfd-disasm.patch"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("bison" ,bison)
 | 
				
			||||||
 | 
					       ("flex" ,flex)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("bcc" ,bcc)
 | 
				
			||||||
 | 
					       ("clang-toolchain" ,clang-toolchain)
 | 
				
			||||||
 | 
					       ("elfutils" ,elfutils)
 | 
				
			||||||
 | 
					       ("libbpf" ,libbpf)
 | 
				
			||||||
 | 
					       ("linux-libre-headers" ,linux-libre-headers)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f ;Tests require googletest sources.
 | 
				
			||||||
 | 
					       #:configure-flags
 | 
				
			||||||
 | 
					       '("-DBUILD_TESTING=OFF"
 | 
				
			||||||
 | 
					         ;; FIXME: libbfd misses some link dependencies, when fixed, remove
 | 
				
			||||||
 | 
					         ;; the associated patch.
 | 
				
			||||||
 | 
					         "-DHAVE_BFD_DISASM=OFF")))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/iovisor/bpftrace")
 | 
				
			||||||
 | 
					    (synopsis "High-level tracing language for Linux eBPF")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "bpftrace is a high-level tracing language for Linux enhanced Berkeley
 | 
				
			||||||
 | 
					Packet Filter (eBPF) available in recent Linux kernels (4.x).  bpftrace uses
 | 
				
			||||||
 | 
					LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for
 | 
				
			||||||
 | 
					interacting with the Linux BPF system, as well as existing Linux tracing
 | 
				
			||||||
 | 
					capabilities: kernel dynamic tracing (kprobes), user-level dynamic
 | 
				
			||||||
 | 
					tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk
 | 
				
			||||||
 | 
					and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was
 | 
				
			||||||
 | 
					created by Alastair Robertson.")
 | 
				
			||||||
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										15
									
								
								gnu/packages/patches/bpftrace-disable-bfd-disasm.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								gnu/packages/patches/bpftrace-disable-bfd-disasm.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					diff --git a/CMakeLists.txt b/CMakeLists.txt
 | 
				
			||||||
 | 
					index e89a6a9..a594786 100644
 | 
				
			||||||
 | 
					--- a/CMakeLists.txt
 | 
				
			||||||
 | 
					+++ b/CMakeLists.txt
 | 
				
			||||||
 | 
					@@ -126,10 +126,6 @@ find_package(LibBpf)
 | 
				
			||||||
 | 
					 find_package(LibBfd)
 | 
				
			||||||
 | 
					 find_package(LibOpcodes)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-if(${LIBBFD_FOUND} AND ${LIBOPCODES_FOUND})
 | 
				
			||||||
 | 
					-  set(HAVE_BFD_DISASM TRUE)
 | 
				
			||||||
 | 
					-endif()
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					 include(CheckIncludeFile)
 | 
				
			||||||
 | 
					 check_include_file("sys/sdt.h" HAVE_SYSTEMTAP_SYS_SDT_H)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
		Reference in a new issue