diff --git a/.gitignore b/.gitignore index 578a2e9..959d6ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dwarves-1.8.tar.bz2 /dwarves-1.9.tar.bz2 /dwarves-1.10.tar.bz2 +/dwarves-1.12.tar.bz2 diff --git a/0001-dwarf_loader-Don-t-stop-processing-after-finding-uns.patch b/0001-dwarf_loader-Don-t-stop-processing-after-finding-uns.patch deleted file mode 100644 index 4505e05..0000000 --- a/0001-dwarf_loader-Don-t-stop-processing-after-finding-uns.patch +++ /dev/null @@ -1,56 +0,0 @@ -From be7b691756ff334705eb6faf51a196540e02e96c Mon Sep 17 00:00:00 2001 -Message-Id: -From: Arnaldo Carvalho de Melo -Date: Thu, 16 Aug 2012 14:55:14 -0300 -Subject: [PATCH] dwarf_loader: Don't stop processing after finding unsupported - tag - -After emitting a warning that a tag is not supported __die__process_tag -was returning NULL, making die__process_unit think that the problem -was insufficient memory. - -Introduce a global variable 'unsupported_tag' and return it instead, -that way die__process_unit can distinguish ENOMEM from unsupported tags. - -Reported-by: Thiago Macieira -Tested-by: Thiago Macieira -Signed-off-by: Arnaldo Carvalho de Melo ---- - dwarf_loader.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/dwarf_loader.c b/dwarf_loader.c -index e034237..e9e1671 100644 ---- a/dwarf_loader.c -+++ b/dwarf_loader.c -@@ -1539,6 +1539,8 @@ static struct tag *die__create_new_function(Dwarf_Die *die, struct cu *cu) - return function ? &function->proto.tag : NULL; - } - -+static struct tag unsupported_tag; -+ - static struct tag *__die__process_tag(Dwarf_Die *die, struct cu *cu, - int top_level, const char *fn) - { -@@ -1578,7 +1580,7 @@ static struct tag *__die__process_tag(Dwarf_Die *die, struct cu *cu, - tag = die__create_new_variable(die, cu); break; - default: - __cu__tag_not_handled(die, fn); -- tag = NULL; -+ tag = &unsupported_tag; - break; - } - -@@ -1595,6 +1597,9 @@ static int die__process_unit(Dwarf_Die *die, struct cu *cu) - if (tag == NULL) - return -ENOMEM; - -+ if (tag == &unsupported_tag) -+ continue; -+ - long id = -1; - cu__add_tag(cu, tag, &id); - cu__hash(cu, tag); --- -2.7.4 - diff --git a/dwarves-remove-dw_tag_mutable_type.patch b/dwarves-remove-dw_tag_mutable_type.patch deleted file mode 100644 index bdc7eb8..0000000 --- a/dwarves-remove-dw_tag_mutable_type.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://git.kernel.org/cgit/devel/pahole/pahole.git/commit/?id=943a0de0679a34b5e630f85cd01cca35c0d0e544 - - -From 943a0de0679a34b5e630f85cd01cca35c0d0e544 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Wed, 18 Jun 2014 11:14:07 +0200 -Subject: dwarves_fprintf: DW_TAG_mutable_type doesn't exist. - -DW_TAG_mutable_type was a mistake in an early DWARFv3 draft and was -removed in the final version. - -http://dwarfstd.org/ShowIssue.php?issue=050223.1 - -Signed-off-by: Mark Wielaard -Signed-off-by: Arnaldo Carvalho de Melo - -diff --git a/dwarves_fprintf.c b/dwarves_fprintf.c -index 4d8e0f4..b746864 100644 ---- a/dwarves_fprintf.c -+++ b/dwarves_fprintf.c -@@ -75,7 +75,6 @@ static const char *dwarf_tag_names[] = { - [DW_TAG_unspecified_type] = "unspecified_type", - [DW_TAG_partial_unit] = "partial_unit", - [DW_TAG_imported_unit] = "imported_unit", -- [DW_TAG_mutable_type] = "mutable_type", - [DW_TAG_condition] = "condition", - [DW_TAG_shared_type] = "shared_type", - #ifdef STB_GNU_UNIQUE --- -cgit v0.10.1 - - diff --git a/dwarves.spec b/dwarves.spec index 3ffadfd..e11ab4c 100644 --- a/dwarves.spec +++ b/dwarves.spec @@ -2,17 +2,14 @@ %define libver 1 Name: dwarves -Version: 1.10 -Release: 15%{?dist} +Version: 1.12 +Release: 1%{?dist} License: GPLv2 -Summary: Debugging Information Manipulation Tools +Summary: Debugging Information Manipulation Tools (pahole & friends) Group: Development/Tools URL: http://acmel.wordpress.com Source: http://fedorapeople.org/~acme/dwarves/%{name}-%{version}.tar.bz2 -Patch0: dwarves-remove-dw_tag_mutable_type.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1348200 -Patch1: 0001-dwarf_loader-Don-t-stop-processing-after-finding-uns.patch -BuildRequires: gcc +BuildRequires: gcc BuildRequires: cmake BuildRequires: zlib-devel BuildRequires: elfutils-devel >= 0.130 @@ -29,6 +26,9 @@ limited to these. It also extracts other information such as CPU cacheline alignment, helping pack those structures to achieve more cache hits. +These tools can also be used to encode the BTF type information format used with +the Linux kernel bpf syscall, using 'pahole -J'. + A diff like tool, codiff can be used to compare the effects changes in source code generate on the resulting binaries. @@ -52,8 +52,6 @@ Debugging information processing library development files. %prep %setup -q -c -n %{name}-%{version} -%patch0 -p1 -%patch1 -p1 %build %cmake . @@ -69,6 +67,7 @@ make install DESTDIR=%{buildroot} %files %doc README.ctracer +%doc README.btf %doc NEWS %defattr(0755,root,root,0755) %{_bindir}/codiff @@ -113,6 +112,13 @@ make install DESTDIR=%{buildroot} %{_libdir}/%{libname}_reorganize.so %changelog +* Fri Aug 31 2018 Arnaldo Carvalho de Melo - 1.12-1 +- New release: 1.12 +- union member cacheline boundaries for all inner structs +- print union member offsets +- Document 'pahole --hex' +- Encode BTF type format for use with eBPF + * Thu Jul 12 2018 Fedora Release Engineering - 1.10-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/sources b/sources index 98e15d8..b16f692 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4a9c508f9343d057d00599e05fdb4ee5 dwarves-1.10.tar.bz2 +SHA512 (dwarves-1.12.tar.bz2) = 20644344e694253b79ede65e489696a319f10eaf424af81882414ae6efeaf34a82132321430d647916b78f97ef504907b3bd32919420f2cd14384910e283ff27