Em Thu, Jun 14, 2018 at 09:56:43PM -0700, Yonghong Song escreveu: > I really want to get rid of this option as well. To make pahole work > with the default default format, I need to add bpf support to > libdwfl in elfutils repo. I will work on that.
Right, I haven't looked into detail, but perhaps we can do like we do in tools/perf/ where we add a feature test to check if some function is present in a library (elfutils even) and if so, use it, otherwise, use a copy that we carry in pahole.git. For instance: tools/perf/util/symbol-elf.c #ifndef HAVE_ELF_GETPHDRNUM_SUPPORT static int elf_getphdrnum(Elf *elf, size_t *dst) { GElf_Ehdr gehdr; GElf_Ehdr *ehdr; ehdr = gelf_getehdr(elf, &gehdr); if (!ehdr) return -1; *dst = ehdr->e_phnum; return 0; } #endif And we have a feature test to check if that is present, simple one, if that builds and links, we have it, then the tools build Makefile magic will end up defining HAVE_ELF_GETPHDRNUM_SUPPORT and our copy doesn't get included, using what is in elfutils: [acme@jouet perf]$ cat tools/build/feature/test-libelf-getphdrnum.c // SPDX-License-Identifier: GPL-2.0 #include <libelf.h> int main(void) { size_t dst; return elf_getphdrnum(0, &dst); } [acme@jouet perf]$ [acme@jouet perf]$ grep elf /tmp/build/perf/FEATURE-DUMP feature-libelf=1 feature-libelf-getphdrnum=1 feature-libelf-gelf_getnote=1 feature-libelf-getshdrstrndx=1 feature-libelf-mmap=1 [acme@jouet perf]$ This way a new pahole version won't get to wait till places where it gets built have these new functions and we stop using it as soon as the library get it. - Arnaldo