On Thu, Feb 4, 2021 at 11:07 PM Arnaldo Carvalho de Melo <arnaldo.melo@xxxxxxxxx> wrote: > > Hi, > > The v1.20 release of pahole and its friends is out, mostly > addressing problems related to gcc 11 defaulting to DWARF5 for -g, > available at the usual places: > Congrats and thanks for v1.20 and to all involved folks. - Sedat - > Main git repo: > > git://git.kernel.org/pub/scm/devel/pahole/pahole.git > > Mirror git repo: > > https://github.com/acmel/dwarves.git > > tarball + gpg signature: > > https://fedorapeople.org/~acme/dwarves/dwarves-1.20.tar.xz > https://fedorapeople.org/~acme/dwarves/dwarves-1.20.tar.bz2 > https://fedorapeople.org/~acme/dwarves/dwarves-1.20.tar.sign > > Best Regards, > > - Arnaldo > > v1.20: > > BTF encoder: > > - Improve ELF error reporting using elf_errmsg(elf_errno()). > > - Improve objcopy error handling. > > - Fix handling of 'restrict' qualifier, that was being treated as a 'const'. > > - Support SHN_XINDEX in st_shndx symbol indexes, to handle ELF objects with > more than 65534 sections, for instance, which happens with kernels built > with 'KCFLAGS="-ffunction-sections -fdata-sections", Other cases may > include when using FG-ASLR, LTO. > > - Cope with functions without a name, as seen sometimes when building kernel > images with some versions of clang, when a SEGFAULT was taking place. > > - Fix BTF variable generation for kernel modules, not skipping variables at > offset zero. > > - Fix address size to match what is in the ELF file being processed, to fix using > a 64-bit pahole binary to generate BTF for a 32-bit vmlinux image. > > - Use kernel module ftrace addresses when finding which functions to encode, > which increases the number of functions encoded. > > libbpf: > > - Allow use of packaged version, for distros wanting to dynamically link with > the system's libbpf package instead of using the libbpf git submodule shipped > in pahole's source code. > > DWARF loader: > > - Support DW_AT_data_bit_offset > > This appeared in DWARF4 but is supported only in gcc's -gdwarf-5, > support it in a way that makes the output be the same for both cases. > > $ gcc -gdwarf-5 -c examples/dwarf5/bf.c > $ pahole bf.o > struct pea { > long int a:1; /* 0: 0 8 */ > long int b:1; /* 0: 1 8 */ > long int c:1; /* 0: 2 8 */ > > /* XXX 29 bits hole, try to pack */ > /* Bitfield combined with next fields */ > > int after_bitfield; /* 4 4 */ > > /* size: 8, cachelines: 1, members: 4 */ > /* sum members: 4 */ > /* sum bitfield members: 3 bits, bit holes: 1, sum bit holes: 29 bits */ > /* last cacheline: 8 bytes */ > }; > > - DW_FORM_implicit_const in attr_numeric() and attr_offset() > > - Support DW_TAG_GNU_call_site, its the standardized rename of the previously supported > DW_TAG_GNU_call_site. > > build: > > - Fix compilation on 32-bit architectures. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>