diff --git a/.dwarves.metadata b/.dwarves.metadata index 583d84c..7354c60 100644 --- a/.dwarves.metadata +++ b/.dwarves.metadata @@ -1 +1 @@ -90995f46f9fcec884748a1deeb2283a4ae202594 SOURCES/dwarves-1.15.tar.xz +66b7c00296027a8a5858ef32427919c3a84cf5ef SOURCES/dwarves-1.17.tar.xz diff --git a/.gitignore b/.gitignore index f9ce5da..42003a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dwarves-1.15.tar.xz +SOURCES/dwarves-1.17.tar.xz diff --git a/SOURCES/0001-fprintf-Fixup-handling-classes-with-no-members.patch b/SOURCES/0001-fprintf-Fixup-handling-classes-with-no-members.patch deleted file mode 100644 index d5f7618..0000000 --- a/SOURCES/0001-fprintf-Fixup-handling-classes-with-no-members.patch +++ /dev/null @@ -1,94 +0,0 @@ -From b1412a88bb616f449401be285d43b028962992b9 Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Mon, 1 Jul 2019 11:37:40 -0300 -Subject: [PATCH 1/1] fprintf: Fixup handling classes with no members - -Will Cohen reported this NULL pointer dereference while processing some -object linking with cuda: - - #0 0x00007ffff7f91453 in __class__fprintf (class=0x522560, cu=0x40ff80, conf=0x7fffffffa930, fp=0x7ffff7ece780 <_IO_2_1_stdout_>) - at /home/acme/git/pahole/dwarves_fprintf.c:1624 - #1 0x00007ffff7f92195 in tag__fprintf (tag=0x522560, cu=0x40ff80, conf=0x7fffffffa930, fp=0x7ffff7ece780 <_IO_2_1_stdout_>) - at /home/acme/git/pahole/dwarves_fprintf.c:1835 - #2 0x00007ffff7f90b57 in __class__fprintf (class=0x5224c0, cu=0x40ff80, conf=0x7fffffffaaa0, fp=0x7ffff7ece780 <_IO_2_1_stdout_>) - at /home/acme/git/pahole/dwarves_fprintf.c:1406 - #3 0x00007ffff7f92195 in tag__fprintf (tag=0x5224c0, cu=0x40ff80, conf=0x40a200 , fp=0x7ffff7ece780 <_IO_2_1_stdout_>) - at /home/acme/git/pahole/dwarves_fprintf.c:1835 - #4 0x0000000000402d03 in class_formatter (class=0x5224c0, cu=0x40ff80, id=1257) at /home/acme/git/pahole/pahole.c:224 - #5 0x0000000000403074 in print_classes (cu=0x40ff80) at /home/acme/git/pahole/pahole.c:319 - #6 0x0000000000404bb2 in pahole_stealer (cu=0x40ff80, conf_load=0x40a240 ) at /home/acme/git/pahole/pahole.c:1174 - #7 0x00007ffff7f9ff73 in finalize_cu (cus=0x40b2b0, cu=0x40ff80, dcu=0x7fffffffacf0, conf=0x40a240 ) - at /home/acme/git/pahole/dwarf_loader.c:2227 - #8 0x00007ffff7f9ffac in finalize_cu_immediately (cus=0x40b2b0, cu=0x40ff80, dcu=0x7fffffffacf0, conf=0x40a240 ) - at /home/acme/git/pahole/dwarf_loader.c:2236 - #9 0x00007ffff7fa064c in cus__load_module (cus=0x40b2b0, conf=0x40a240 , mod=0x40d760, dw=0x40e980, elf=0x40b360, - filename=0x7fffffffd5e3 "examples/wcohen/02_Exercise.cuda") at /home/acme/git/pahole/dwarf_loader.c:2389 - #10 0x00007ffff7fa0760 in cus__process_dwflmod (dwflmod=0x40d760, userdata=0x40d770, name=0x40d910 "examples/wcohen/02_Exercise.cuda", - base=4194304, arg=0x7fffffffcf10) at /home/acme/git/pahole/dwarf_loader.c:2434 - #11 0x00007ffff7f32be1 in dwfl_getmodules () from /lib64/libdw.so.1 - #12 0x00007ffff7fa0820 in cus__process_file (cus=0x40b2b0, conf=0x40a240 , fd=3, - filename=0x7fffffffd5e3 "examples/wcohen/02_Exercise.cuda") at /home/acme/git/pahole/dwarf_loader.c:2487 - #13 0x00007ffff7fa089c in dwarf__load_file (cus=0x40b2b0, conf=0x40a240 , filename=0x7fffffffd5e3 "examples/wcohen/02_Exercise.cuda") - at /home/acme/git/pahole/dwarf_loader.c:2504 - #14 0x00007ffff7f8b0dd in cus__load_file (cus=0x40b2b0, conf=0x40a240 , filename=0x7fffffffd5e3 "examples/wcohen/02_Exercise.cuda") - at /home/acme/git/pahole/dwarves.c:1745 - #15 0x00007ffff7f8bc2a in cus__load_files (cus=0x40b2b0, conf=0x40a240 , filenames=0x7fffffffd150) - at /home/acme/git/pahole/dwarves.c:2109 - #16 0x0000000000404ff0 in main (argc=2, argv=0x7fffffffd148) at /home/acme/git/pahole/pahole.c:1294 - (gdb) - - (gdb) p class__name(class, cu) - $6 = 0x5cbb85 "__nv_hdl_helper_trait<__nv_dl_tag, void (main(int, char**)::__lambda0::*)(int, double&)const>" - (gdb) p class->type.nr_members - $7 = 0 - (gdb) p last - $8 = (struct class_member *) 0x0 - (gdb) - -So, before checking for bitfield details, first check if there were -members. - -Now, if we show all structs/classes in that object file and look for the -above data structure, we find it inside another: - - $ pahole examples/wcohen/02_Exercise.cuda - - struct __nv_hdl_helper_trait_outer, Kokkos::View, Kokkos::View > { - struct __nv_hdl_helper_trait<__nv_dl_tag, void (main(int, char**)::__lambda0::*)(int, double&)const> { - class __nv_hdl_wrapper_t, void(int, double&), int, Kokkos::View(class __lambda0, int, class View, class View, class View); - - /* size: 1, cachelines: 0, members: 0 */ - /* padding: 1 */ - /* last cacheline: 1 bytes */ - }; - - /* size: 1, cachelines: 0, members: 0 */ - /* padding: 1 */ - /* last cacheline: 1 bytes */ - }; - - $ - -Reported-by: William Cohen -Fixes: 13e5b9fc00ee ("fprintf: Add unnamed bitfield padding at the end to rebuild original type") -Signed-off-by: Arnaldo Carvalho de Melo ---- - dwarves_fprintf.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dwarves_fprintf.c b/dwarves_fprintf.c -index 8ad1ced7840c..706f1b5033f5 100644 ---- a/dwarves_fprintf.c -+++ b/dwarves_fprintf.c -@@ -1620,7 +1620,7 @@ static size_t __class__fprintf(struct class *class, const struct cu *cu, - * to avoid adding the forced bitfield paddings and have btfdiff happy. - */ - if (class->padding != 0 && type->alignment == 0 && cconf.has_alignment_info && -- !cconf.suppress_force_paddings) { -+ !cconf.suppress_force_paddings && last != NULL) { - tag_pos = cu__type(cu, last->tag.type); - size = tag__size(tag_pos, cu); - --- -2.20.1 - diff --git a/SPECS/dwarves.spec b/SPECS/dwarves.spec index 76235cf..ca762c8 100644 --- a/SPECS/dwarves.spec +++ b/SPECS/dwarves.spec @@ -2,13 +2,12 @@ %define libver 1 Name: dwarves -Version: 1.15 -Release: 5%{?dist} +Version: 1.17 +Release: 1%{?dist} License: GPLv2 Summary: Debugging Information Manipulation Tools (pahole & friends) URL: http://acmel.wordpress.com Source: http://fedorapeople.org/~acme/dwarves/%{name}-%{version}.tar.xz -Patch: 0001-fprintf-Fixup-handling-classes-with-no-members.patch Requires: %{libname}%{libver} = %{version}-%{release} BuildRequires: gcc BuildRequires: cmake @@ -50,8 +49,7 @@ Requires: %{libname}%{libver} = %{version}-%{release} Debugging information processing library development files. %prep -%setup -q -c -n %{name}-%{version} -%patch -p1 +%setup -q -n %{name}-%{version} %build %cmake . @@ -120,6 +118,9 @@ make install DESTDIR=%{buildroot} %{_libdir}/%{libname}_reorganize.so %changelog +* Tue May 26 2020 Jiri Olsa - 1.17-1 +- moving to v1.17 version + * Wed Nov 06 2019 Jiri Olsa - 1.15-5 - Add libdwarves version dependency to dwarves package