From 9730f1f50cf0c81df63297b103c846d35d62e352092a8eb25f620af83c7ddf08 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 2 Oct 2020 22:07:55 +0000 Subject: [PATCH 1/2] - Update to release 1.18 OBS-URL: https://build.opensuse.org/package/show/devel:tools/dwarves?expand=0&rev=46 --- dwarves-1.17.tar.sign | 7 --- dwarves-1.17.tar.xz | 3 -- dwarves-1.18.tar.sign | 7 +++ dwarves-1.18.tar.xz | 3 ++ ...ail-out-at-DW_TAG_imported_unit-tags.patch | 37 ---------------- ...ies-in-a-DW_TAG_partial_unit-for-now.patch | 44 ------------------- dwarves.changes | 13 ++++++ dwarves.spec | 8 ++-- 8 files changed, 26 insertions(+), 96 deletions(-) delete mode 100644 dwarves-1.17.tar.sign delete mode 100644 dwarves-1.17.tar.xz create mode 100644 dwarves-1.18.tar.sign create mode 100644 dwarves-1.18.tar.xz delete mode 100644 dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch delete mode 100644 dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch diff --git a/dwarves-1.17.tar.sign b/dwarves-1.17.tar.sign deleted file mode 100644 index 629a688..0000000 --- a/dwarves-1.17.tar.sign +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iHUEABYIAB0WIQR2GiIUctdOfX2qHhGyPKLppCJ+JwUCXmvkiQAKCRCyPKLppCJ+ -J4lxAP4zV61YzVLpPVa3ruEfIVs9QlMzk83H9ng3mJ9l8SVb9AD/SzUtGLRwUuRR -6es+6YoDwkQCcilMN5K2xeRrctBeHws= -=X4s4 ------END PGP SIGNATURE----- diff --git a/dwarves-1.17.tar.xz b/dwarves-1.17.tar.xz deleted file mode 100644 index 56f066e..0000000 --- a/dwarves-1.17.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f196b0604c16a3812031ed2cd4c14d27fef889186b514a16db2d2f52717aef70 -size 309028 diff --git a/dwarves-1.18.tar.sign b/dwarves-1.18.tar.sign new file mode 100644 index 0000000..2ae8dd0 --- /dev/null +++ b/dwarves-1.18.tar.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- + +iHUEABYIAB0WIQR2GiIUctdOfX2qHhGyPKLppCJ+JwUCX3eWuAAKCRCyPKLppCJ+ +J55QAQDLwpxXtKxPlDDj3rYt80cZUZpC61b++LYBLmf3n/jFIwD/ec6iNeLGJkAR +QvmKuS7pvduzR8epg0ORx/Ahoze+qg4= +=CWxS +-----END PGP SIGNATURE----- diff --git a/dwarves-1.18.tar.xz b/dwarves-1.18.tar.xz new file mode 100644 index 0000000..2320eb5 --- /dev/null +++ b/dwarves-1.18.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95aaec4c1d51816f6b2ce17fb80ddc95d48578e6bbdeafead3ecaf33a323d2c9 +size 324912 diff --git a/dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch b/dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch deleted file mode 100644 index c820094..0000000 --- a/dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2ecc308518edfe059f34fd1ad69ef39ad011cab9 Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Fri, 18 Sep 2020 16:56:13 -0300 -Subject: [PATCH] dwarf_loader: Bail out at DW_TAG_imported_unit tags - -We need to support these in a future version, for now, just bail out to -avoid segfaults afterwards. - - $ pahole examples/sles/vmlinux-5.3.18-109.g8ff6392-default.debug - WARNING: DW_TAG_partial_unit used, some types will not be considered! - Probably this was optimized using a tool like 'dwz' - A future version of pahole will take support this. - $ - -Reported-by: Tom de Vries -Bugtracker: https://github.com/acmel/dwarves/issues/10 -Signed-off-by: Arnaldo Carvalho de Melo ---- - dwarf_loader.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/dwarf_loader.c b/dwarf_loader.c -index 74e0227..fd058aa 100644 ---- a/dwarf_loader.c -+++ b/dwarf_loader.c -@@ -1615,6 +1615,8 @@ static struct tag *__die__process_tag(Dwarf_Die *die, struct cu *cu, - struct tag *tag; - - switch (dwarf_tag(die)) { -+ case DW_TAG_imported_unit: -+ return NULL; // We don't support imported units yet, so to avoid segfaults - case DW_TAG_array_type: - tag = die__create_new_array(die, cu); break; - case DW_TAG_base_type: --- -2.28.0 - diff --git a/dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch b/dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch deleted file mode 100644 index 39c571d..0000000 --- a/dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 8c92fd298101171dc8479acf4af2fdd2fad88c28 Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Fri, 18 Sep 2020 13:53:01 -0300 -Subject: [PATCH] dwarf_loader: Ignore entries in a DW_TAG_partial_unit, for - now - -We will have to keep all CUs in memory and do lookups in imported units, -for now, just don't segfault. - -Reported-by: Tom de Vries -Bugtracker: https://github.com/acmel/dwarves/issues/10 -Signed-off-by: Arnaldo Carvalho de Melo ---- - dwarf_loader.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/dwarf_loader.c b/dwarf_loader.c -index b8d7b35..74e0227 100644 ---- a/dwarf_loader.c -+++ b/dwarf_loader.c -@@ -2085,7 +2085,19 @@ static int die__process(Dwarf_Die *die, struct cu *cu) - Dwarf_Die child; - const uint16_t tag = dwarf_tag(die); - -- if (tag != DW_TAG_compile_unit && tag != DW_TAG_type_unit && tag != DW_TAG_partial_unit) { -+ if (tag == DW_TAG_partial_unit) { -+ static bool warned; -+ -+ if (!warned) { -+ fprintf(stderr, "WARNING: DW_TAG_partial_unit used, some types will not be considered!\n" -+ " Probably this was optimized using a tool like 'dwz'\n" -+ " A future version of pahole will take support this.\n"); -+ warned = true; -+ } -+ return 0; // so that other units can be processed -+ } -+ -+ if (tag != DW_TAG_compile_unit && tag != DW_TAG_type_unit) { - fprintf(stderr, "%s: DW_TAG_compile_unit, DW_TAG_type_unit or DW_TAG_partial_unit expected got %s!\n", - __FUNCTION__, dwarf_tag_name(tag)); - return -EINVAL; --- -2.28.0 - diff --git a/dwarves.changes b/dwarves.changes index 2d88ff1..ee326ae 100644 --- a/dwarves.changes +++ b/dwarves.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri Oct 2 22:00:47 UTC 2020 - Jan Engelhardt + +- Update to release 1.18 + * pahole now should be segfault free when handling gdb test + suit DWARF files, including ADA, FORTRAN, rust and dwp + compressed files (the latter is refused). + * Bail out on partial units for now, avoiding segfaults. +- Drop + dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch, + dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch + (merged) + ------------------------------------------------------------------- Mon Sep 21 18:48:25 UTC 2020 - Tom de Vries diff --git a/dwarves.spec b/dwarves.spec index 5b30e72..78ceb0f 100644 --- a/dwarves.spec +++ b/dwarves.spec @@ -17,7 +17,7 @@ Name: dwarves -Version: 1.17 +Version: 1.18 Release: 0 Summary: DWARF utilities License: GPL-2.0-only @@ -28,9 +28,7 @@ URL: http://acmel.wordpress.com/ Source: https://fedorapeople.org/~acme/dwarves/dwarves-%version.tar.xz Source2: https://fedorapeople.org/~acme/dwarves/dwarves-%version.tar.sign Source9: baselibs.conf -Patch0: libbpf-Fix-libbpf-hashmap-on-I-LP32-architectures.patch -Patch1: dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch -Patch2: dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch +Patch1: libbpf-Fix-libbpf-hashmap-on-I-LP32-architectures.patch BuildRequires: cmake BuildRequires: libdw-devel >= 0.170 %if 0%{?suse_version} < 1550 @@ -90,7 +88,7 @@ for processing DWARF, a debugging data format for ELF files. %build %cmake -make %{?_smp_mflags} +%cmake_build %install %cmake_install From bb7c74430e1a1728d223668acd2a29d96987d417e5bba273892fb163bd3b0121 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 2 Oct 2020 22:23:54 +0000 Subject: [PATCH 2/2] - Add forced ELF symvers because of ABI breaks OBS-URL: https://build.opensuse.org/package/show/devel:tools/dwarves?expand=0&rev=47 --- dwarves.changes | 1 + dwarves.spec | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dwarves.changes b/dwarves.changes index ee326ae..c7a25ba 100644 --- a/dwarves.changes +++ b/dwarves.changes @@ -10,6 +10,7 @@ Fri Oct 2 22:00:47 UTC 2020 - Jan Engelhardt dwarves-dwarf_loader-Ignore-entries-in-a-DW_TAG_partial_unit-for-now.patch, dwarves-dwarf_loader-Bail-out-at-DW_TAG_imported_unit-tags.patch (merged) +- Add forced ELF symvers because of ABI breaks ------------------------------------------------------------------- Mon Sep 21 18:48:25 UTC 2020 - Tom de Vries diff --git a/dwarves.spec b/dwarves.spec index 78ceb0f..8c98b67 100644 --- a/dwarves.spec +++ b/dwarves.spec @@ -87,7 +87,9 @@ for processing DWARF, a debugging data format for ELF files. %autosetup -p1 %build -%cmake +sv="$PWD/lib.v" +echo "DWARVES_%version { global: *; };" >"$sv" +%cmake -DCMAKE_SHARED_LINKER_FLAGS:STRING="-Wl,--version-script=$sv" %cmake_build %install