Skip to content

Commit 25ad41e

Browse files
committed
pahole: Prep 1.21
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent c3ee1fc commit 25ad41e

File tree

5 files changed

+116
-5
lines changed

5 files changed

+116
-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.20")
36+
# add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.21")
3737
add_definitions(-D_GNU_SOURCE -DDWARVES_MAJOR_VERSION=1)
38-
add_definitions(-D_GNU_SOURCE -DDWARVES_MINOR_VERSION=20)
38+
add_definitions(-D_GNU_SOURCE -DDWARVES_MINOR_VERSION=21)
3939
find_package(DWARF REQUIRED)
4040
find_package(ZLIB REQUIRED)
4141

MANIFEST

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ changes-v1.17
5151
changes-v1.18
5252
changes-v1.19
5353
changes-v1.20
54+
changes-v1.21
5455
COPYING
5556
NEWS
5657
README

NEWS

+20
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
v1.21:
2+
3+
Fri Apr 9 2021
4+
5+
ae0b7dde1fd50b12 dwarf_loader: Handle DWARF5 DW_OP_addrx properly
6+
9adb014930f31c66 dwarf_loader: Handle subprogram ret type with abstract_origin properly
7+
5752d1951d081a80 dwarf_loader: Check .notes section for LTO build info
8+
209e45424ff4a22d dwarf_loader: Check .debug_abbrev for cross-CU references
9+
39227909db3cc2c2 dwarf_loader: Permit merging all DWARF CU's for clang LTO built binary
10+
763475ca1101ccfe dwarf_loader: Factor out common code to initialize a cu
11+
d0d3fbd4744953e8 dwarf_loader: Permit a flexible HASHTAGS__BITS
12+
ffe0ef4d73906c18 btf: Add --btf_gen_all flag
13+
de708b33114d42c2 btf: Add support for the floating-point types
14+
4b7f8c04d009942b fprintf: Honour conf_fprintf.hex when printing enumerations
15+
f2889ff163726336 Avoid warning when building with NDEBUG
16+
8e1f8c904e303d5d btf_encoder: Match ftrace addresses within ELF functions
17+
9fecc77ed82d429f dwarf_loader: Use a better hashing function, from libbpf
18+
0125de3a4c055cdf btf_encoder: Funnel ELF error reporting through a macro
19+
7d8e829f636f47ab btf_encoder: Sanitize non-regular int base type
20+
121
v1.20:
222

323
Tue Feb 2 2021

changes-v1.21

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
DWARF loader:
2+
3+
- Handle DWARF5 DW_OP_addrx properly
4+
5+
Part of the effort to support the subset of DWARF5 that is generated when building the kernel.
6+
7+
- Handle subprogram ret type with abstract_origin properly
8+
9+
Adds a second pass to resolve abstract origin DWARF description of functions to aid
10+
the BTF encoder in getting the right return type.
11+
12+
- Check .notes section for LTO build info
13+
14+
When LTO is used, currently only with clang, we need to do extra steps to handle references
15+
from one object (compile unit, aka CU) to another, a way for DWARF to avoid duplicating
16+
information.
17+
18+
- Check .debug_abbrev for cross-CU references
19+
20+
When the kernel build process doesn't add an ELF note in vmlinux indicating that LTO was
21+
used and thus intra-CU references are present and thus we need to use a more expensive
22+
way to resolve types and (again) thus to encode BTF, we need to look at DWARF's .debug_abbrev
23+
ELF section to figure out if such intra-CU references are present.
24+
25+
- Permit merging all DWARF CU's for clang LTO built binary
26+
27+
Allow not trowing away previously supposedly self contained compile units
28+
(objects, aka CU, aka Compile Units) as they have type descriptions that will
29+
be used in later CUs.
30+
31+
- Permit a flexible HASHTAGS__BITS
32+
33+
So that we can use a more expensive algorithm when we need to keep previously processed
34+
compile units that will then be referenced by later ones to resolve types.
35+
36+
- Use a better hashing function, from libbpf
37+
38+
Enabling patch to combine compile units when using LTO.
39+
40+
BTF encoder:
41+
42+
- Add --btf_gen_all flag
43+
44+
A new command line to allow asking for the generation of all BTF encodings, so that we
45+
can stop adding new command line options to enable new encodings in the kernel Makefile.
46+
47+
- Match ftrace addresses within ELF functions
48+
49+
To cope with differences in how DWARF and ftrace describes function boundaries.
50+
51+
- Funnel ELF error reporting through a macro
52+
53+
To use libelf's elf_error() function, improving error messages.
54+
55+
- Sanitize non-regular int base type
56+
57+
Cope with clang with dwarf5 non-regular int base types, tricky stuff, see yhs
58+
full explanation in the relevant cset.
59+
60+
- Add support for the floating-point types
61+
62+
S/390 has floats'n'doubles in its arch specific linux headers, cope with that.
63+
64+
Pretty printer:
65+
66+
- Honour conf_fprintf.hex when printing enumerations
67+
68+
If the user specifies --hex in the command line, honour it when printing enumerations.
69+
70+
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

rpm/SPECS/dwarves.spec

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

44
Name: dwarves
5-
Version: 1.20
5+
Version: 1.21
66
Release: 1%{?dist}
77
License: GPLv2
88
Summary: Debugging Information Manipulation Tools (pahole & friends)
@@ -79,7 +79,7 @@ rm -Rf %{buildroot}
7979
%files
8080
%doc README.ctracer
8181
%doc README.btf
82-
%doc changes-v1.20
82+
%doc changes-v1.21
8383
%doc NEWS
8484
%{_bindir}/btfdiff
8585
%{_bindir}/codiff
@@ -134,7 +134,27 @@ 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
137+
* Fri Apr 9 2021 Arnaldo Carvalho de Melo <[email protected]> - 1.21-1
138+
- New release: v1.21
139+
- DWARF loader:
140+
- Handle DWARF5 DW_OP_addrx properly
141+
- Handle subprogram ret type with abstract_origin properly
142+
- Check .notes section for LTO build info
143+
- Check .debug_abbrev for cross-CU references
144+
- Permit merging all DWARF CU's for clang LTO built binary
145+
- Factor out common code to initialize a cu
146+
- Permit a flexible HASHTAGS__BITS
147+
- Use a better hashing function, from libbpf
148+
- btf_encoder:
149+
- Add --btf_gen_all flag
150+
- Match ftrace addresses within ELF functions
151+
- Funnel ELF error reporting through a macro
152+
- Sanitize non-regular int base type
153+
- Add support for the floating-point types
154+
- Pretty printer:
155+
- Honour conf_fprintf.hex when printing enumerations
156+
157+
* Tue Feb 2 2021 Arnaldo Carvalho de Melo <[email protected]> - 1.20-1
138158
- New release: v1.20
139159
- btf_encoder:
140160
- Improve ELF error reporting using elf_errmsg(elf_errno())

0 commit comments

Comments
 (0)