Skip to content

Commit 0d415f6

Browse files
committed
pahole: Prep 1.20
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 7943374 commit 0d415f6

File tree

5 files changed

+122
-5
lines changed

5 files changed

+122
-5
lines changed

CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -ggdb -O0")
3333
set(CMAKE_C_FLAGS_RELEASE "-Wall -O2")
3434

3535
# Just for grepping, DWARVES_VERSION isn't used anywhere anymore
36-
# add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.19")
36+
# add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.20")
3737
add_definitions(-D_GNU_SOURCE -DDWARVES_MAJOR_VERSION=1)
38-
add_definitions(-D_GNU_SOURCE -DDWARVES_MINOR_VERSION=19)
38+
add_definitions(-D_GNU_SOURCE -DDWARVES_MINOR_VERSION=20)
3939
find_package(DWARF REQUIRED)
4040
find_package(ZLIB REQUIRED)
4141

MANIFEST

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ changes-v1.16
5050
changes-v1.17
5151
changes-v1.18
5252
changes-v1.19
53+
changes-v1.20
5354
COPYING
5455
NEWS
5556
README

NEWS

+30
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
v1.20:
2+
3+
Tue Feb 2 2021
4+
5+
8d6f06f053a06829 (HEAD -> master, seventh/master, quaco/master, origin/master, origin/HEAD) dwarf_loader: Add conditional DW_FORM_implicit_const definition for older systems
6+
66d12e4790b7c5e5 dtagnames: Stop using the deprecated mallinfo() function
7+
1279e439b622aeb5 cmake: Bump minimum required version to 2.8.12 as per upstream support warning
8+
b1eaf0da6d1f72b2 dwarves: Make enum prefix search more robust
9+
d783117162c0212d dwarf_loader: Handle DWARF5 DW_TAG_call_site like DW_TAG_GNU_call_site
10+
3ff98a6396e91d0a dwarf_loader: Support DW_FORM_implicit_const in __attr_offset()
11+
b91b19840b0062b8 dwarf_loader: Support DW_AT_data_bit_offset
12+
c692e8ac5ccbab99 dwarf_loader: Optimize a bit the reading of DW_AT_data_member_location
13+
65917b24942ce620 dwarf_loader: Fix typo
14+
77205a119c85e396 dwarf_loader: Introduce __attr_offset() to reuse call to dwarf_attr()
15+
8ec231f6b0c8aaef dwarf_loader: Support DW_FORM_implicit_const in attr_numeric()
16+
7453895e01edb535 btf_encoder: Improve ELF error reporting
17+
1bb49897dd2b65b0 bpf_encoder: Translate SHN_XINDEX in symbol's st_shndx values
18+
3f8aad340bf1a188 elf_symtab: Handle SHN_XINDEX index in elf_section_by_name()
19+
e32b9800e650a6eb btf_encoder: Add extra checks for symbol names
20+
82749180b23d3c9c libbpf: allow to use packaged version
21+
452dbcf35f1a7bf9 btf_encoder: Improve error-handling around objcopy
22+
cf381f9a3822d68b btf_encoder: Fix handling of restrict qualifier
23+
b688e35970600c15 btf_encoder: fix skipping per-CPU variables at offset 0
24+
8c009d6ce762dfc9 btf_encoder: fix BTF variable generation for kernel modules
25+
b94e97e015a94e6b dwarves: Fix compilation on 32-bit architectures
26+
17df51c700248f02 btf_encoder: Detect kernel module ftrace addresses
27+
06ca639505fc56c6 btf_encoder: Use address size based on ELF's class
28+
aff60970d16b909e btf_encoder: Factor filter_functions function
29+
1e6a3fed6e52d365 rpm: Fix changelog date
30+
131
v1.19:
232

333
Fri Nov 20 2020

changes-v1.20

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
BTF encoder:
2+
3+
- Improve ELF error reporting using elf_errmsg(elf_errno()).
4+
5+
- Improve objcopy error handling.
6+
7+
- Fix handling of 'restrict' qualifier, that was being treated as a 'const'.
8+
9+
- Support SHN_XINDEX in st_shndx symbol indexes, to handle ELF objects with
10+
more than 65534 sections, for instance, which happens with kernels built
11+
with 'KCFLAGS="-ffunction-sections -fdata-sections", Other cases may
12+
include when using FG-ASLR, LTO.
13+
14+
- Cope with functions without a name, as seen sometimes when building kernel
15+
images with some versions of clang, when a SEGFAULT was taking place.
16+
17+
- Fix BTF variable generation for kernel modules, not skipping variables at
18+
offset zero.
19+
20+
- Fix address size to match what is in the ELF file being processed, to fix using
21+
a 64-bit pahole binary to generate BTF for a 32-bit vmlinux image.
22+
23+
- Use kernel module ftrace addresses when finding which functions to encode,
24+
which increases the number of functions encoded.
25+
26+
libbpf:
27+
28+
- Allow use of packaged version, for distros wanting to dynamically link with
29+
the system's libbpf package instead of using the libbpf git submodule shipped
30+
in pahole's source code.
31+
32+
DWARF loader:
33+
34+
- Support DW_AT_data_bit_offset
35+
36+
This appeared in DWARF4 but is supported only in gcc's -gdwarf-5,
37+
support it in a way that makes the output be the same for both cases.
38+
39+
$ gcc -gdwarf-5 -c examples/dwarf5/bf.c
40+
$ pahole bf.o
41+
struct pea {
42+
long int a:1; /* 0: 0 8 */
43+
long int b:1; /* 0: 1 8 */
44+
long int c:1; /* 0: 2 8 */
45+
46+
/* XXX 29 bits hole, try to pack */
47+
/* Bitfield combined with next fields */
48+
49+
int after_bitfield; /* 4 4 */
50+
51+
/* size: 8, cachelines: 1, members: 4 */
52+
/* sum members: 4 */
53+
/* sum bitfield members: 3 bits, bit holes: 1, sum bit holes: 29 bits */
54+
/* last cacheline: 8 bytes */
55+
};
56+
57+
- DW_FORM_implicit_const in attr_numeric() and attr_offset()
58+
59+
- Support DW_TAG_GNU_call_site, its the standardized rename of the previously supported
60+
DW_TAG_GNU_call_site.
61+
62+
build:
63+
64+
- Fix compilation on 32-bit architectures.
65+
66+
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

rpm/SPECS/dwarves.spec

+23-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
%define libver 1
33

44
Name: dwarves
5-
Version: 1.19
5+
Version: 1.20
66
Release: 1%{?dist}
77
License: GPLv2
88
Summary: Debugging Information Manipulation Tools (pahole & friends)
99
URL: http://acmel.wordpress.com
1010
Source: http://fedorapeople.org/~acme/dwarves/%{name}-%{version}.tar.xz
1111
Requires: %{libname}%{libver} = %{version}-%{release}
1212
BuildRequires: gcc
13-
BuildRequires: cmake
13+
BuildRequires: cmake >= 2.8.12
1414
BuildRequires: zlib-devel
1515
BuildRequires: elfutils-devel >= 0.130
1616

@@ -79,7 +79,7 @@ rm -Rf %{buildroot}
7979
%files
8080
%doc README.ctracer
8181
%doc README.btf
82-
%doc changes-v1.19
82+
%doc changes-v1.20
8383
%doc NEWS
8484
%{_bindir}/btfdiff
8585
%{_bindir}/codiff
@@ -134,6 +134,26 @@ rm -Rf %{buildroot}
134134
%{_libdir}/%{libname}_reorganize.so
135135

136136
%changelog
137+
* Tue Feb 2 2021 Arnaldo Carvalho de Melo <[email protected]> - 1.20-1
138+
- New release: v1.20
139+
- btf_encoder:
140+
- Improve ELF error reporting using elf_errmsg(elf_errno())
141+
- Improve objcopy error handling.
142+
- Fix handling of 'restrict' qualifier, that was being treated as a 'const'.
143+
- Support SHN_XINDEX in st_shndx symbol indexes
144+
- Cope with functions without a name
145+
- Fix BTF variable generation for kernel modules
146+
- Fix address size to match what is in the ELF file being processed.
147+
- Use kernel module ftrace addresses when finding which functions to encode.
148+
- libbpf:
149+
- Allow use of packaged version.
150+
- dwarf_loader:
151+
- Support DW_AT_data_bit_offset
152+
- DW_FORM_implicit_const in attr_numeric() and attr_offset()
153+
- Support DW_TAG_GNU_call_site, standardized rename of DW_TAG_GNU_call_site.
154+
- build:
155+
- Fix compilation on 32-bit architectures.
156+
137157
* Fri Nov 20 2020 Arnaldo Carvalho de Melo <[email protected]> - 1.19-1
138158
- New release: 1.19
139159
- Split BTF

0 commit comments

Comments
 (0)