pub/scm/devel/pahole/pahole.git  about / heads / tags
Pahole and other DWARF utils
$ git log --pretty=format:'%h %s (%cs)%d'
d1dda58f elfcreator: Fix NULL dereference in remove_dyn() (2026-01-12)
	(HEAD -> master, tmp.master, next)
4d197b2a scncopy: Fix error handling when opening file (2026-01-12)
4783a4dd dwarf_loader: Handle DW_AT_location attrs containing DW_OP_plus_uconst (2026-01-06)
8b536f4e btf_encoder: Factor out BPF kfunc emission (2025-11-13)
2385c55f btf_encoder: Refactor btf_encoder__add_func_proto (2025-11-13)
7a7ff77a btf_encoder: Remove encoder pointer from btf_encoder_func_state (2025-11-13)
1f2805b6 Prep 1.31 (2025-11-07)
	(tag: v1.31)
f33ac6dc btf_encoder: Move ambiguous_addr flag to elf_function (2025-10-09)
09c1e9c9 btf_encoder: Group all function ELF syms by function name (2025-08-22)
fe6738f4 btf_encoder: Fix elf_functions cleanup on error (2025-08-20)
...

$ git cat-file blob HEAD:README
Build instructions:

1. install cmake
2. mkdir build
3. cd build
4. cmake ..
5. make install

cmake Options:
  -DBUILD_SHARED_LIBS
    By default SHARED libraries are created and applications are linked to it.
    Use -DBUILD_SHARED_LIBS=OFF while invoking cmake to create STATIC libraries
    and link applications to it.

    Ex. cmake -DBUILD_SHARED_LIBS=OFF ..

  -DCMAKE_INSTALL_PREFIX
    Default is to install to /usr/local, use -DCMAKE_INSTALL_PREFIX=
    when invoking cmake to specify another install location.

  -DCMAKE_INSTALL_LIBDIR
    Default is to install to lib or lib64, use -DCMAKE_INSTALL_LIBDIR=
    when invoking cmake to specify another install location.

You may need to update the libbpf git submodule:

git submodule update --init --recursive

Testing:

Tests are available in the tests subdirectory and should be run prior to
submitting patches.  Patches that add functionality should add to tests
here also.  Tests can be run by

- running the scripts directly using a pre-existing vmlinux binary; i.e.
	cd tests ; vmlinux=/path/2/vmlinux ./tests
  (the vmlinux binary must contain DWARF to be converted to BTF)

- running the tests via local scripts in .github/scripts; i.e.
	bash .github/scripts/build-pahole.sh; \
	bash .github/scripts/build-kernel.sh; \
	bash .github/scripts/run-selftests.sh
- via GitHub actions: push a branch to a GitHub repo; actions will be
  triggered for build and test matching the above steps.  See the "Actions"
  tab in the github repo for info on job pass/fail and logs.

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master       elfcreator: Fix NULL dereference in remove_dyn() (2026-01-12)
  next         elfcreator: Fix NULL dereference in remove_dyn() (2026-01-12)
  tmp.master   elfcreator: Fix NULL dereference in remove_dyn() (2026-01-12)
  btf2btf      tests: Add test of pahole using BTF as input to BTF generation (2025-07-03)
  next.v1.30   Prep 1.30 (2025-04-09)
  tmp.next     Prep 1.30 (2025-04-09)
  next.attributes-v4 pahole: add a BTF feature check function (2025-03-23)
  next-alan    Fix spelling error. (2025-02-25)
  btf_global_vars btf_encoder: Add global_var feature to encode globals (2024-10-01)
  test         tests prettify_perf.data: Add regression test for 'pahole --prettify' (2024-08-28)
...

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
v1.31        BTF encoder: (2025-11-10) tar.gz
v1.30        CI testing: (2025-04-18) tar.gz
v1.29        DWARF loader: (2025-01-21) tar.gz
v1.28        pahole: (2024-12-07) tar.gz
v1.27        BTF encoder: (2024-06-11) tar.gz
v1.26        pahole: (2024-02-28) tar.gz
v1.25        DWARF loader: (2023-04-13) tar.gz
v1.24        BTF encoder: (2022-08-22) tar.gz
v1.23        DWARF loader: (2021-12-08) tar.gz
v1.22        pahole: (2021-08-23) tar.gz
...

# associated public inboxes:
# (number on the left is used for dev purposes)
        302 dwarves
        249 bpf
         42 lkml
         29 linux-dwarves
         17 netdev
         10 linux-arm-kernel
          8 xen-devel
          7 u-boot
          6 linux-wireless
          6 qemu-devel
          6 linux-devicetree
          6 rust-for-linux
          5 linux-mm
          5 stable
          5 linux-omap
          5 buildroot
          5 openembedded-core
          5 linux-debuggers
          4 linux-mips
          4 alsa-devel
          4 dpdk-dev
          4 linux-pci
          4 linuxppc-dev
          4 kvm
          4 linux-ide
          4 linux-arch
          3 linux-mtd
          3 linux-xfs
          3 linux-acpi
          3 linux-fsdevel
          3 linux-iommu
          3 linux-snps-arc
          3 git
          3 dri-devel
          3 intel-gfx
          3 linux-unionfs
          2 linux-samsung-soc
          2 linux-block
          2 linux-riscv
          2 linux-mediatek
          2 linux-edac
          2 linux-arm-msm
          2 linux-amlogic
          2 linux-nvdimm
          2 linux-usb
          2 linux-kselftest
          2 linux-gpio
          2 linux-parisc
          2 linux-security-module
          2 linux-bluetooth
          2 linux-watchdog
          2 rcu
          2 linux-doc
          2 linux-i2c
          2 virtualization
          2 platform-driver-x86
          2 linux-fbdev
          2 linux-sh
          2 linux-s390
          2 sparclinux
          2 mptcp
          2 nvdimm
          2 llvm
          2 openembedded-devel
          2 linux-patches
          2 openrisc
          2 intel-xe
          2 linux-um
          2 ecryptfs
          2 poky
          2 qemu-riscv
          2 linux-ia64
          2 linux-hexagon
          2 igt-dev
          1 linux-fscrypt
          1 cocci
          1 linux-nvme
          1 live-patching
          1 linux-nfs
          1 linux-crypto
          1 linux-efi
          1 netfilter-devel
          1 linux-integrity
          1 linux-cifs
          1 linux-erofs
          1 linux-media
          1 fstests
          1 linux-pm
          1 linux-hwmon
          1 linux-rtc
          1 linux-input
          1 linux-scsi
          1 linux-btrfs
          1 kvmarm
          1 driverdev-devel
          1 linux-renesas-soc
          1 selinux
          1 kernel-hardening
          1 linux-clk
          1 linux-iio
          1 dmaengine
          1 linux-rdma
          1 linux-next
          1 linux-ext4
          1 linux-leds
          1 linux-f2fs-devel
          1 linux-modules
          1 kernelnewbies
          1 linux-rt-users
          1 linux-sgx
          1 linux-serial
          1 linux-trace-devel
          1 linux-hyperv
          1 workflows
          1 linux-m68k
          1 linux-i3c
          1 util-linux
          1 linux-spdx
          1 linux-wpan
          1 ksummit-discuss
          1 wireguard
          1 backports
          1 io-uring
          1 linux-kernel-mentees
          1 linux-csky
          1 linux-man
          1 linux-mmc
          1 amd-gfx
          1 tpmdd-devel
          1 linux-firmware
          1 linux-api
          1 cip-dev
          1 linux-audit
          1 linux-spi
          1 linux-remoteproc
          1 linux-dash
          1 linux-bcache
          1 linux-sparse
          1 mm-commits
          1 linux-pwm
          1 linux-tegra
          1 lttng-dev
          1 linux-kbuild
          1 linux-fpga
          1 ceph-devel
          1 linux-can
          1 containers
          1 linux-rockchip
          1 linux-raid
          1 xdp-newbies
          1 phone-devel
          1 openbmc
          1 linux-hardening
          1 dash
          1 dm-devel
          1 keyrings
          1 linux-sctp
          1 linux-cxl
          1 linux-perf-users
          1 target-devel
          1 lustre-devel
          1 soc
          1 ocfs2-devel
          1 ath10k
          1 ath11k
          1 nouveau
          1 linux-phy
          1 kernel-janitors
          1 linux-staging
          1 linux-sunxi
          1 linux-coco
          1 regressions
          1 ksummit
          1 b43-dev
          1 linux-nfc
          1 linux-bcachefs
          1 ath9k-devel
          1 ntfs3
          1 fio
          1 iwd
          1 ell
          1 ofono
          1 ltp
          1 yocto
          1 yocto-meta-freescale
          1 yocto-toaster
          1 yocto-meta-arm
          1 yocto-docs
          1 bitbake-devel
          1 yocto-meta-virtualization
          1 chrome-platform
          1 ntb
          1 yocto-meta-ti
          1 yocto-meta-arago
          1 outreachy
          1 xenomai
          1 damon
          1 asahi
          1 intel-wired-lan
          1 kexec
          1 loongarch
          1 imx
          1 ath12k
          1 b4-sent
          1 linux-trace-kernel
          1 oe-linux-nfc
          1 oe-kbuild-all
          1 oe-chipsec
          1 batman
          1 virtio-dev
          1 virtio-comment
          1 v9fs
          1 cluster-devel
          1 grub-devel
          1 kbd
          1 autofs
          1 cpufreq
          1 dccp
          1 cgroups
          1 devicetree-spec
          1 devicetree-compiler
          1 initramfs
          1 kvm-ppc
          1 hail-devel
          1 kvm-ia64
          1 linux-8086
          1 kernel-testers
          1 linux-alpha
          1 linux-btrace
          1 linux-embedded
          1 linux-hams
          1 linux-hotplug
          1 linux-laptop
          1 linux-sound
          1 trinity
          1 reiserfs-devel
          1 linux-metag
          1 linux-x25
          1 linux-nilfs
          1 lvs-devel
          1 netfilter
          1 linux-oxnas
          1 u-boot-amlogic
          1 lm-sensors
          1 lvm-devel
          1 acpica-devel
          1 perfbook
          1 virtio-fs
          1 smatch
          1 fuego
          1 wireless-regdb
          1 powertop

git clone https://yhbt.net/lore/pub/scm/devel/pahole/pahole.git