dwarves: Prep v1.16

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2019-12-16 11:40:03 -03:00
parent 69df73444c
commit 1c1af2cd19
4 changed files with 183 additions and 3 deletions

View File

@ -30,7 +30,7 @@ endif (NOT CMAKE_BUILD_TYPE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -ggdb -O2")
set(CMAKE_C_FLAGS_RELEASE "-Wall -O2")
add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.15")
add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.16")
find_package(DWARF REQUIRED)
find_package(ZLIB REQUIRED)

53
NEWS
View File

@ -1,3 +1,56 @@
v1.16:
Mon Dec 16 2019
69df73444c69 (HEAD -> master, acme.korg/master) dwarves: Add -O2 to CFLAGS
6d11dd157f75 elfcreator: Address initialization warning emitted by 'gcc -O6'
1bc63a4cffa7 fprintf: Fixup truncation possibility pointed out by gcc -O2
5c590fc29d06 ptr_table: Zero out new id ranges
644466dce77f fprintf: Remove extraneous sizeof operator
a59459bb80e7 fprintf: Account inline type __aligned__ member types for spacing
56547f133a5b fprintf: Fix alignment of class members that are structs/enums/unions
be37b64aef38 dwarves: Ignore static members for alignment
cca018e495a8 SPEC: Add dwarves dependency on libdwarves1
ccf3eebfcd9c btf_loader: Add support for BTF_KIND_FUNC
f95fd85f7b53 pfunct: type->type == 0 is void, fix --compile for that
3e8f09e304ba (origin/master, origin/HEAD) pdwtags: Print DW_TAG_subroutine_type as well
3c5f2a224aa1 btf_encoder: Preserve and encode exported functions as BTF_KIND_FUNC
910e060b5c4b btf_loader: Skip BTF_KIND_DATASEC entries
96235a74a34d btf_loader: Replace if/else series with a proper switch {}
a4ba2234ff58 btf_loader: Support BTF_KIND_VAR
5965ce015eab dwarves: Fix ptr_table__add_with_id() handling of pt->nr_entries
173911ac38ea btf_loader: Show the unknown kind numbers
0d8e11e8568e pglobal: Allow passing the format path specifier, to use with BTF
ba27df9f2f94 CMakeLists: Use lib/bpf/include/uapi when building libdwarves
95517e1d995e libbpf: Get latest libbpf
ca294eebfc47 MANIFEST: Add missing files
d5e01d10e515 fprintf: Set tconf.type_spacing earlier
c6a9a0eb6ac7 fprintf: Fix up decrementing recursivity level in type__fprintf()
93c3cdf89715 cmake: Add -Wall to CFLAGS
7360f0528ff3 elfcreator: Remove unused 'machine' variable
0f52b11f911c prefcnt: Avoid ambiguous else with for_each macro
608813d0affa pglobal: Avoid ambiguous else
77d06c2d305d reorganize: Enclose bitfield routines under ifdef
2221ae30bce9 reorganize: Ditch unused variable
c419c513eae5 libbtf: Enlarge the 'cmd' buffer to not possibly truncate the pathname
092fffe56701 btf_loader: Enum values are s32, cast before calling btf_elf__get32()
7bfb1aa80f9a libctf: Enlarge the 'cmd' buffer to not possibly truncate the pathname
f67c281f9841 fprintf: Correct the type for the 'cacheline' variable, it should be uint32_t
7b36fab5a8df fprintf: Add guard against unlikely overlapping copy
e737976c09d9 fprintf: Do not scrub type when looking up its type
e95dacb704bf fprintf: Remove unused printf arg when printing enumerations
71c4f83f2828 emit: Remove unused 'is_pointer' variable
fe87354c31bb dwarves: Ditch unused asprintf() function
60c73a769882 dwarves: We need to consistently check if 'conf was specified
5fdfd09a6bbe dwarves: Fix check in type__find_first_biggest_size_base_type_member()
24ced5be8a75 dwarf_loader: Fix array overrun access
33e2d7aa35a7 ctf_loader: Plug leak when bailing out due to unknown tag
aefa9303818b codiff: Remove unused filenames variable
de5e72bc15fb btf_loader: Plug leak when bailing out due to unknown tag
511a79129494 dwarves: Remove unused variable
b1412a88bb61 fprintf: Fixup handling classes with no members
[acme@quaco pahole]$
v1.15
Thu Jun 27 2019

104
changes-v1.16 Normal file
View File

@ -0,0 +1,104 @@
v1.16 changes:
BTF encoder:
Andrii Nakryiko <andriin@fb.com>:
- Preserve and encode exported functions as BTF_KIND_FUNC.
Add encoding of DWARF's DW_TAG_subprogram_type into BTF's BTF_KIND_FUNC
(plus corresponding BTF_KIND_FUNC_PROTO). Only exported functions are converted
for now. This allows to capture all the exported kernel functions, same subset
that's exposed through /proc/kallsyms.
BTF loader:
Arnaldo Carvalho de Melo <acme@redhat.com>
- Add support for BTF_KIND_FUNC
Some changes to the fprintf routines were needed, as BTF has as the
function type just a BTF_KIND_FUNC_PROTO, while DWARF has as the type for a
function its return value type. With a function->btf flag this was overcome and
all the other goodies in pfunct are present.
Pretty printer:
Arnaldo Carvalho de Melo:
- Account inline type __aligned__ member types for spacing:
union {
refcount_t rcu_users; /* 2568 4 */
struct callback_head rcu __attribute__((__aligned__(8))); /* 2568 16 */
- } __attribute__((__aligned__(8))); /* 2568 16 */
+ } __attribute__((__aligned__(8))); /* 2568 16 */
struct pipe_inode_info * splice_pipe; /* 2584 8 */
- Fix alignment of class members that are structs/enums/unions
E.g. look at that 'completion' member in this struct:
struct cpu_stop_done {
atomic_t nr_todo; /* 0 4 */
int ret; /* 4 4 */
- struct completion completion; /* 8 32 */
+ struct completion completion; /* 8 32 */
/* size: 40, cachelines: 1, members: 3 */
/* last cacheline: 40 bytes */
- Fixup handling classes with no members, solving a NULL deref.
Gareth Lloyd <gareth.lloyd@uk.ibm.com>:
- Avoid infinite loop trying to determine type with static data member of its own type.
RPM spec file.
Jiri Olsa <jolsa@redhat.com>
Add dwarves dependency on libdwarves1.
pfunct:
Arnaldo Carvalho de Melo <acme@redhat.com>
- type->type == 0 is void, fix --compile for that
We were using the fall back for that, i.e. 'return 0;' was being emitted
for a function returning void, noticed with using BTF as the format.
pdwtags:
- Print DW_TAG_subroutine_type as well
So that we can see at least via pdwtags those tags, be it from DWARF of BTF.
core:
Arnaldo Carvalho de Melo <acme@redhat.com>
Fix ptr_table__add_with_id() handling of pt->nr_entries, covering how
BTF variables IDs are encoded.
pglobal:
Arnaldo Carvalho de Melo <acme@redhat.com>:
- Allow passing the format path specifier, to use with BTF
I.e. now we can, just like with pahole, use:
pglobal -F btf --variable foo.o
To get the global variables.
Tree wide:
Arnaldo Carvalho de Melo <acme@redhat.com>:
- Fixup issues pointed out by various coverity reports.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

View File

@ -2,8 +2,8 @@
%define libver 1
Name: dwarves
Version: 1.15
Release: 2%{?dist}
Version: 1.16
Release: 1%{?dist}
License: GPLv2
Summary: Debugging Information Manipulation Tools (pahole & friends)
URL: http://acmel.wordpress.com
@ -35,6 +35,15 @@ code generate on the resulting binaries.
Another tool is pfunct, that can be used to find all sorts of information about
functions, inlines, decisions made by the compiler about inlining, etc.
One example of pfunct usage is in the fullcircle tool, a shell that drivers
pfunct to generate compileable code out of a .o file and then build it using
gcc, with the same compiler flags, and then use codiff to make sure the
original .o file and the new one generated from debug info produces the same
debug info.
The btfdiff utility compares the output of pahole from BTF and DWARF to make
sure they produce the same results.
%package -n %{libname}%{libver}
Summary: Debugging information processing library
@ -118,6 +127,20 @@ make install DESTDIR=%{buildroot}
%{_libdir}/%{libname}_reorganize.so
%changelog
* Mon 16 Dec 2019 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.16-1
- New release: 1.16
- BTF encoder: Preserve and encode exported functions as BTF_KIND_FUNC.
- BTF loader: Add support for BTF_KIND_FUNC
- Pretty printer: Account inline type __aligned__ member types for spacing
- Pretty printer: Fix alignment of class members that are structs/enums/unions
- Pretty printer: Avoid infinite loop trying to determine type with static data member of its own type.
- RPM spec file: Add dwarves dependency on libdwarves1.
- pfunct: type->type == 0 is void, fix --compile for that
- pdwtags: Print DW_TAG_subroutine_type as well
- core: Fix ptr_table__add_with_id() handling of pt->nr_entries
- pglobal: Allow passing the format path specifier, to use with BTF
- Tree wide: Fixup issues pointed out by various coverity reports.
* Tue Nov 05 2019 Jiri Olsa <jolsa@redhat.com> - 1.15-2
- Add libdwarves version dependency to dwarves package