BPF List
 help / color / mirror / Atom feed
* pahole v1.30 and libbpf: Introduce kflag for type_tags and decl_tags in BTF
@ 2025-04-18 18:57 Sedat Dilek
  2025-04-23 17:50 ` Andrii Nakryiko
  0 siblings, 1 reply; 3+ messages in thread
From: Sedat Dilek @ 2025-04-18 18:57 UTC (permalink / raw)
  To: Ihor Solodrai, Alan Maguire, Jiri Olsa, Eduard Zingerman
  Cc: Arnaldo Carvalho de Melo, Alexei Starovoitov, Andrii Nakryiko,
	Mykola Lysenko, bpf, sudipm.mukherjee, cavok

[ QUESTION ]

How to check if libbpf API functions
 * btf__add_decl_attr()
 * btf__add_type_attr()
work as expected with pahole v1.30?

Looks like I need Linux version >= v6.15-rc1?

dileks@iniza:~/src/linux/git$ git log --oneline -1
51d1b1d42841c557dabde5b140ae20774591e6dc
51d1b1d42841 libbpf: Introduce kflag for type_tags and decl_tags in BTF

Add the following functions to libbpf API:
 * btf__add_type_attr()
 * btf__add_decl_attr()

dileks@iniza:~/src/linux/git$ git describe --contains
51d1b1d42841c557dabde5b140ae20774591e6dc
v6.15-rc1~98^2~87^2~5

Currently, I use Debian-kernel v6.12.22 and want to build a selfmade
v6.12.24 (when it is released).

If you need further information, please let me know.

Best Thanks,
-Sedat-

P.S.: My investigations

[ DEBIAN PAHOLE ]

Debian/unstable AMD64 ships on my request pahole version 1.30-1.
This version was built against libbpf-dev version (1:1.5.0-2)

Link: https://packages.debian.org/sid/pahole
Link: https://packages.debian.org/sid/libbpf-dev
Link: https://bugs.debian.org/1103000


[ SELFMADE PAHOLE ]

Prereq: libbpf API version >= 1.6.0

dileks@iniza:~/src/pahole/git$ git describe
v1.29-16-gb45268b74da1

dileks@iniza:~/src/pahole/git$ git log --oneline -1
b45268b74da1 (HEAD -> pahole-v1.30, tag: v1.30, origin/next,
origin/master, origin/HEAD, master) Prep 1.30

root# /opt/pahole/bin/pahole --version
v1.30

INFO: git describe should report v1.30


[ BUILD INSTRUCTIONS ]

VER="1.30"
PREFIX="/opt/pahole-$VER"
PREFIX_CMAKE_OPTS="-DCMAKE_INSTALL_PREFIX=$PREFIX"

echo $PREFIX_CMAKE_OPTS

cd ..
mkdir build
cd build

# NOTE: See upstream commit "CMakeList.txt: Respect CMAKE_INSTALL_LIBDIR"
##cmake $PREFIX_CMAKE_OPTS -D__LIB=lib ../git
LC_ALL=C.UTF-8 cmake $PREFIX_CMAKE_OPTS ../git
make
sudo make install

NOTE: Do NOT forget to run `ldconfig` as root (see below).


[ LDCONFIG ]

File: /etc/ld.so.conf.d/a-local-pahole.conf

# pahole lib configuration
/opt/pahole/lib

root# cd /opt
root# ln -sf pahole-$VER pahole
root# ldconfig
root# ldconfig --print-cache | grep pahole


[ PAHOLE - CMAKE LOG (LIBBPF) ]

[...]
-- Submodule update
Submodule 'lib/bpf' (https://github.com/libbpf/libbpf) registered for
path 'lib/bpf'
Cloning into '/home/dileks/src/pahole/git/lib/bpf'...
Submodule path 'lib/bpf': checked out '42a6ef63161a8dc4288172b27f3870e50b3606f7'
-- Submodule update - done

Link: https://web.git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?h=v1.30&id=fe2dcd28ba9d348744ee93fed43cbed5dc0d6a43


[ BTF FEATURES ]

root# /opt/pahole/bin/pahole --usage | grep feature
           [--btf_encode_force] [--btf_features=FEATURE_LIST]
           [--btf_features_strict=FEATURE_LIST_STRICT] [--btf_gen_all]
           [--skip_missing] [--sort] [--structs] [--supported_btf_features]

NOTE: --btf_feature*s* (all options plural) VS. commit 40e82f5be9a7
("pahole: Introduce --btf_feature=attributes")

root# /opt/pahole/bin/pahole --supported_btf_features
encode_force,var,float,decl_tag,type_tag,enum64,optimized_func,consistent_func,decl_tag_kfuncs,reproducible_build,distilled_base,global_var,attributes

NOTE: Supported = attributes


[ LIBBPF API VERSION >= 1.6.0 ]

Link: https://web.git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?h=v1.30&id=fe2dcd28ba9d348744ee93fed43cbed5dc0d6a43

commit fe2dcd28ba9d348744ee93fed43cbed5dc0d6a43 ("pahole: Sync with
libbpf mainline")

Pull recently added libbpf API functions:
 * btf__add_decl_attr()
 * btf__add_type_attr()

root# llvm-dwarfdump-19 /opt/pahole/bin/pahole | grep btf | grep add
               DW_AT_name      ("btf__add_type_attr")
               DW_AT_name      ("btf__add_enum64")


[ pahole.git - lib/bpf/src/libbpf.map ]

LIBBPF_1.6.0 {
       global:
               bpf_linker__add_buf;
               bpf_linker__add_fd;
               bpf_linker__new_fd;
               btf__add_decl_attr;
               btf__add_type_attr;
} LIBBPF_1.5.0;

-EOT-

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-04-24  7:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-18 18:57 pahole v1.30 and libbpf: Introduce kflag for type_tags and decl_tags in BTF Sedat Dilek
2025-04-23 17:50 ` Andrii Nakryiko
2025-04-24  7:48   ` Alan Maguire

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox