0.179-2 - Add elfutils-0.179-debug-client-alt-link.patch
This commit is contained in:
parent
21eb5dd8d1
commit
a02de95640
60
elfutils-0.179-debug-client-alt-link.patch
Normal file
60
elfutils-0.179-debug-client-alt-link.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From b1d2404cc6ca0d9ce786e229a87c24db49163cfe Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Thu, 30 Apr 2020 23:57:26 +0200
|
||||||
|
Subject: [PATCH] libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.
|
||||||
|
|
||||||
|
When we fall back to the debuginfod client then we need to do the
|
||||||
|
same trick we do for local lookups in dwfl_build_id_find_debuginfo.
|
||||||
|
If the debug file (dw) is already set, then we must be looking for
|
||||||
|
the altfile. But we cannot use the actual file/path name given as
|
||||||
|
hint. We'll have to lookup the alt file "build-id". Because the
|
||||||
|
debuginfod client only handles build-ids.
|
||||||
|
|
||||||
|
Previously we would use the build-id of the main file which meant
|
||||||
|
the debuginfod client would give us another copy of the debug file,
|
||||||
|
which would then be set as its own altfile. This caused lots of
|
||||||
|
confusion...
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
---
|
||||||
|
libdwfl/ChangeLog | 5 +++++
|
||||||
|
libdwfl/find-debuginfo.c | 23 +++++++++++++++++++++--
|
||||||
|
2 files changed, 26 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c
|
||||||
|
index 2dd11c48..4cfd0b8b 100644
|
||||||
|
--- a/libdwfl/find-debuginfo.c
|
||||||
|
+++ b/libdwfl/find-debuginfo.c
|
||||||
|
@@ -398,8 +398,27 @@ dwfl_standard_find_debuginfo (Dwfl_Module *mod,
|
||||||
|
free (canon);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (fd < 0 && bits_len > 0)
|
||||||
|
- fd = __libdwfl_debuginfod_find_debuginfo (mod->dwfl, bits, bits_len);
|
||||||
|
+ /* Still nothing? Try if we can use the debuginfod client.
|
||||||
|
+ But note that we might be looking for the alt file.
|
||||||
|
+ We use the same trick as dwfl_build_id_find_debuginfo.
|
||||||
|
+ If the debug file (dw) is already set, then we must be
|
||||||
|
+ looking for the altfile. But we cannot use the actual
|
||||||
|
+ file/path name given as hint. We'll have to lookup the
|
||||||
|
+ alt file "build-id". Because the debuginfod client only
|
||||||
|
+ handles build-ids. */
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ {
|
||||||
|
+ if (mod->dw != NULL)
|
||||||
|
+ {
|
||||||
|
+ const char *altname;
|
||||||
|
+ bits_len = INTUSE(dwelf_dwarf_gnu_debugaltlink) (mod->dw, &altname,
|
||||||
|
+ (const void **)
|
||||||
|
+ &bits);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (bits_len > 0)
|
||||||
|
+ fd = __libdwfl_debuginfod_find_debuginfo (mod->dwfl, bits, bits_len);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.18.2
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
Version: 0.179
|
Version: 0.179
|
||||||
%global baserelease 1
|
%global baserelease 2
|
||||||
Release: %{baserelease}%{?dist}
|
Release: %{baserelease}%{?dist}
|
||||||
URL: http://elfutils.org/
|
URL: http://elfutils.org/
|
||||||
%global source_url ftp://sourceware.org/pub/elfutils/%{version}/
|
%global source_url ftp://sourceware.org/pub/elfutils/%{version}/
|
||||||
@ -55,6 +55,7 @@ BuildRequires: curl
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Patches
|
# Patches
|
||||||
|
Patch1: elfutils-0.179-debug-client-alt-link.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Elfutils is a collection of utilities, including stack (to show
|
Elfutils is a collection of utilities, including stack (to show
|
||||||
@ -246,6 +247,7 @@ such servers to download those files on demand.
|
|||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
# Apply patches
|
# Apply patches
|
||||||
|
%patch1 -p1 -b .debug-client-alt
|
||||||
|
|
||||||
# In case the above patches added any new test scripts, make sure they
|
# In case the above patches added any new test scripts, make sure they
|
||||||
# are executable.
|
# are executable.
|
||||||
@ -423,6 +425,9 @@ exit 0
|
|||||||
%systemd_postun_with_restart debuginfod.service
|
%systemd_postun_with_restart debuginfod.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Apr 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-2
|
||||||
|
- Add elfutils-0.179-debug-client-alt-link.patch
|
||||||
|
|
||||||
* Mon Mar 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-1
|
* Mon Mar 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-1
|
||||||
- New upstream release.
|
- New upstream release.
|
||||||
debuginfod-client:
|
debuginfod-client:
|
||||||
|
Loading…
Reference in New Issue
Block a user