All of lore.kernel.org
 help / color / mirror / Atom feed
* pahole generates invalid BTF for code compiled with recent clang
@ 2020-06-24 11:05 ` Lorenz Bauer
  0 siblings, 0 replies; 30+ messages in thread
From: Lorenz Bauer @ 2020-06-24 11:05 UTC (permalink / raw)
  To: bpf, dwarves; +Cc: kernel-team

Hi,

If pahole -J is used on an ELF that has BTF info from clang, it
produces an invalid
output. This is because pahole rewrites the .BTF section (which
includes a new string
table) but it doesn't touch .BTF.ext at all.

To demonstrate, on a recent check out of bpf-next:
    $ cp connect4_prog.o connect4_pahole.o
    $ pahole -J connect4_pahole.o
    $ llvm-objcopy-10 --dump-section .BTF=pahole-btf.bin
--dump-section .BTF.ext=pahole-btf-ext.bin connect4_pahole.o
    $ llvm-objcopy-10 --dump-section .BTF=btf.bin --dump-section
.BTF.ext=btf-ext.bin connect4_prog.o
    $ sha1sum *.bin
    1b5c7407dd9fd13f969931d32f6b864849e66a68  btf.bin
    4c43efcc86d3cd908ddc77c15fc4a35af38d842b  btf-ext.bin
    2a60767a3a037de66a8d963110601769fa0f198e  pahole-btf.bin
    4c43efcc86d3cd908ddc77c15fc4a35af38d842b  pahole-btf-ext.bin

This problem crops up when compiling old kernels like 4.19 which have
an extra pahole
build step with clang-10.

I think a possible fix is to strip .BTF.ext if .BTF is rewritten.

Best
Lorenz

-- 
Lorenz Bauer  |  Systems Engineer
6th Floor, County Hall/The Riverside Building, SE1 7PB, UK

www.cloudflare.com

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

end of thread, other threads:[~2020-06-30 15:52 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-24 11:05 pahole generates invalid BTF for code compiled with recent clang Lorenz Bauer
2020-06-24 11:05 ` Lorenz Bauer
2020-06-24 16:06 ` Arnaldo Carvalho de Melo
2020-06-24 16:06   ` Arnaldo Carvalho de Melo
2020-06-24 16:22   ` Lorenz Bauer
2020-06-24 16:22     ` Lorenz Bauer
2020-06-24 17:23     ` Arnaldo Carvalho de Melo
2020-06-24 17:23       ` Arnaldo Carvalho de Melo
2020-06-24 17:05   ` Yonghong Song
2020-06-24 17:05     ` Yonghong Song
2020-06-24 17:41 ` Andrii Nakryiko
2020-06-24 17:41   ` Andrii Nakryiko
2020-06-24 17:57   ` Arnaldo Carvalho de Melo
2020-06-24 17:57     ` Arnaldo Carvalho de Melo
2020-06-24 18:40     ` Andrii Nakryiko
2020-06-24 18:40       ` Andrii Nakryiko
2020-06-24 18:57       ` Arnaldo Carvalho de Melo
2020-06-24 18:57         ` Arnaldo Carvalho de Melo
2020-06-24 19:06         ` Andrii Nakryiko
2020-06-24 19:06           ` Andrii Nakryiko
2020-06-24 19:11           ` Arnaldo Carvalho de Melo
2020-06-24 19:11             ` Arnaldo Carvalho de Melo
2020-06-24 19:25             ` Andrii Nakryiko
2020-06-24 19:25               ` Andrii Nakryiko
2020-06-25  9:25   ` Lorenz Bauer
2020-06-25  9:25     ` Lorenz Bauer
2020-06-25 16:56     ` Andrii Nakryiko
2020-06-25 16:56       ` Andrii Nakryiko
2020-06-30 15:52       ` Lorenz Bauer
2020-06-30 15:52         ` Lorenz Bauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.