Compare commits
15 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c147a763a2 | ||
|
|
51d4df2439 | ||
|
|
181f2d742f | ||
|
|
f263218747 | ||
|
|
c256956adc | ||
|
|
1860b7316d | ||
|
|
c84a61da8f | ||
|
|
3940f0f0ff | ||
|
|
510fcad8b0 | ||
|
|
aff444d022 | ||
|
|
9f5a314b50 | ||
|
|
199b97a9a9 | ||
|
|
a63a2aaaa2 | ||
|
|
969b34d0b4 | ||
|
|
4f00495eab |
4 changed files with 105 additions and 78 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -20,3 +20,7 @@
|
||||||
/elfutils-0.177.tar.bz2
|
/elfutils-0.177.tar.bz2
|
||||||
/elfutils-0.178.tar.bz2
|
/elfutils-0.178.tar.bz2
|
||||||
/elfutils-0.179.tar.bz2
|
/elfutils-0.179.tar.bz2
|
||||||
|
/elfutils-0.180.tar.bz2
|
||||||
|
/elfutils-0.181.tar.bz2
|
||||||
|
/elfutils-0.182.tar.bz2
|
||||||
|
/elfutils-0.183.tar.bz2
|
||||||
|
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
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
|
|
||||||
|
|
||||||
117
elfutils.spec
117
elfutils.spec
|
|
@ -1,6 +1,6 @@
|
||||||
Name: elfutils
|
Name: elfutils
|
||||||
Version: 0.179
|
Version: 0.183
|
||||||
%global baserelease 2
|
%global baserelease 1
|
||||||
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}/
|
||||||
|
|
@ -31,6 +31,7 @@ BuildRequires: flex
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
BuildRequires: bzip2-devel
|
BuildRequires: bzip2-devel
|
||||||
BuildRequires: xz-devel
|
BuildRequires: xz-devel
|
||||||
|
BuildRequires: libzstd-devel
|
||||||
|
|
||||||
# For debuginfod
|
# For debuginfod
|
||||||
BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33
|
BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33
|
||||||
|
|
@ -40,11 +41,16 @@ BuildRequires: pkgconfig(libarchive) >= 3.1.2
|
||||||
|
|
||||||
# For tests need to bunzip2 test files.
|
# For tests need to bunzip2 test files.
|
||||||
BuildRequires: bzip2
|
BuildRequires: bzip2
|
||||||
# For the run-debuginfod-find.sh test case in %check for /usr/sbin/ss
|
BuildRequires: zstd
|
||||||
|
# For the run-debuginfod-find.sh test case in %%check for /usr/sbin/ss
|
||||||
BuildRequires: iproute
|
BuildRequires: iproute
|
||||||
BuildRequires: bsdtar
|
BuildRequires: bsdtar
|
||||||
BuildRequires: curl
|
BuildRequires: curl
|
||||||
|
|
||||||
|
BuildRequires: automake
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: gettext-devel
|
||||||
|
|
||||||
%global _gnu %{nil}
|
%global _gnu %{nil}
|
||||||
%global _program_prefix eu-
|
%global _program_prefix eu-
|
||||||
|
|
||||||
|
|
@ -55,7 +61,6 @@ 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
|
||||||
|
|
@ -219,6 +224,7 @@ Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd
|
||||||
|
BuildRequires: make
|
||||||
Requires(post): systemd
|
Requires(post): systemd
|
||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
Requires(postun): systemd
|
Requires(postun): systemd
|
||||||
|
|
@ -247,13 +253,22 @@ such servers to download those files on demand.
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
# Apply patches
|
# Apply patches
|
||||||
%patch1 -p1 -b .debug-client-alt
|
|
||||||
|
autoreconf -f -v -i
|
||||||
|
|
||||||
# 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.
|
||||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# This package uses top level ASM constructs which are incompatible with LTO.
|
||||||
|
# Top level ASMs are often used to implement symbol versioning. gcc-10
|
||||||
|
# introduces a new mechanism for symbol versioning which works with LTO.
|
||||||
|
# Converting packages to use that mechanism instead of toplevel ASMs is
|
||||||
|
# recommended.
|
||||||
|
# Disable LTO
|
||||||
|
%define _lto_cflags %{nil}
|
||||||
|
|
||||||
# Remove -Wall from default flags. The makefiles enable enough warnings
|
# Remove -Wall from default flags. The makefiles enable enough warnings
|
||||||
# themselves, and they use -Werror. Appending -Wall defeats the cases where
|
# themselves, and they use -Werror. Appending -Wall defeats the cases where
|
||||||
# the makefiles disable some specific warnings for specific code.
|
# the makefiles disable some specific warnings for specific code.
|
||||||
|
|
@ -266,14 +281,17 @@ RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
|
||||||
trap 'cat config.log' EXIT
|
trap 'cat config.log' EXIT
|
||||||
%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
||||||
trap '' EXIT
|
trap '' EXIT
|
||||||
make -s %{?_smp_mflags}
|
%make_build -s
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf ${RPM_BUILD_ROOT}
|
%make_install -s
|
||||||
make -s install DESTDIR=${RPM_BUILD_ROOT}
|
|
||||||
|
|
||||||
chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
|
chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
|
||||||
|
|
||||||
|
# We don't have standard DEBUGINFOD_URLS yet.
|
||||||
|
rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.sh
|
||||||
|
rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.csh
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
%if %{provide_yama_scope}
|
%if %{provide_yama_scope}
|
||||||
|
|
@ -289,7 +307,7 @@ touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
||||||
# Record some build root versions in build.log
|
# Record some build root versions in build.log
|
||||||
uname -r; rpm -q binutils gcc glibc
|
uname -r; rpm -q binutils gcc glibc
|
||||||
|
|
||||||
make -s %{?_smp_mflags} check || (cat tests/test-suite.log; false)
|
%make_build -s check || (cat tests/test-suite.log; false)
|
||||||
|
|
||||||
# Only the latest Fedora and EPEL have these scriptlets,
|
# Only the latest Fedora and EPEL have these scriptlets,
|
||||||
# older Fedora and plain RHEL don't.
|
# older Fedora and plain RHEL don't.
|
||||||
|
|
@ -316,7 +334,6 @@ fi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
|
%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
|
||||||
%doc README TODO CONTRIBUTING
|
%doc README TODO CONTRIBUTING
|
||||||
%{_bindir}/eu-addr2line
|
%{_bindir}/eu-addr2line
|
||||||
|
|
@ -339,7 +356,6 @@ fi
|
||||||
%{_mandir}/man1/eu-*.1*
|
%{_mandir}/man1/eu-*.1*
|
||||||
|
|
||||||
%files libs
|
%files libs
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING-GPLV2 COPYING-LGPLV3
|
%license COPYING-GPLV2 COPYING-LGPLV3
|
||||||
%{_libdir}/libasm-%{version}.so
|
%{_libdir}/libasm-%{version}.so
|
||||||
%{_libdir}/libdw-%{version}.so
|
%{_libdir}/libdw-%{version}.so
|
||||||
|
|
@ -365,7 +381,6 @@ fi
|
||||||
%{_libdir}/libasm.a
|
%{_libdir}/libasm.a
|
||||||
|
|
||||||
%files -f %{name}.lang libelf
|
%files -f %{name}.lang libelf
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING-GPLV2 COPYING-LGPLV3
|
%license COPYING-GPLV2 COPYING-LGPLV3
|
||||||
%{_libdir}/libelf-%{version}.so
|
%{_libdir}/libelf-%{version}.so
|
||||||
%{_libdir}/libelf.so.*
|
%{_libdir}/libelf.so.*
|
||||||
|
|
@ -387,29 +402,26 @@ fi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files debuginfod-client
|
%files debuginfod-client
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libdebuginfod-%{version}.so
|
%{_libdir}/libdebuginfod-%{version}.so
|
||||||
%{_libdir}/libdebuginfod.so.*
|
%{_libdir}/libdebuginfod.so.*
|
||||||
%{_bindir}/debuginfod-find
|
%{_bindir}/debuginfod-find
|
||||||
%{_mandir}/man1/debuginfod-find.1*
|
%{_mandir}/man1/debuginfod-find.1*
|
||||||
|
|
||||||
%files debuginfod-client-devel
|
%files debuginfod-client-devel
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/pkgconfig/libdebuginfod.pc
|
%{_libdir}/pkgconfig/libdebuginfod.pc
|
||||||
%{_mandir}/man3/debuginfod_*.3*
|
%{_mandir}/man3/debuginfod_*.3*
|
||||||
%{_includedir}/elfutils/debuginfod.h
|
%{_includedir}/elfutils/debuginfod.h
|
||||||
%{_libdir}/libdebuginfod.so
|
%{_libdir}/libdebuginfod.so
|
||||||
|
|
||||||
%files debuginfod
|
%files debuginfod
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_bindir}/debuginfod
|
%{_bindir}/debuginfod
|
||||||
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/debuginfod
|
%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod
|
||||||
%{_unitdir}/debuginfod.service
|
%{_unitdir}/debuginfod.service
|
||||||
%{_sysconfdir}/sysconfig/debuginfod
|
%{_sysconfdir}/sysconfig/debuginfod
|
||||||
%{_mandir}/man8/debuginfod.8*
|
%{_mandir}/man8/debuginfod.8*
|
||||||
|
|
||||||
%dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
|
%dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
|
||||||
%verify(not md5 size mtime) %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
||||||
|
|
||||||
%pre debuginfod
|
%pre debuginfod
|
||||||
getent group debuginfod >/dev/null || groupadd -r debuginfod
|
getent group debuginfod >/dev/null || groupadd -r debuginfod
|
||||||
|
|
@ -425,6 +437,77 @@ exit 0
|
||||||
%systemd_postun_with_restart debuginfod.service
|
%systemd_postun_with_restart debuginfod.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 8 2021 Mark Wielaard <mjw@fedoraproject.org> - 0.183-1
|
||||||
|
- Upgrade to upstream 0.183
|
||||||
|
- debuginfod: New thread-busy metric and more detailed error metrics.
|
||||||
|
New --fdcache-mintmp and tracking of filesystem freespace.
|
||||||
|
- debuginfod-client: DEBUGINFOD_SONAME macro added to debuginfod.h can
|
||||||
|
be used to dlopen the libdebuginfod.so library.
|
||||||
|
New function debuginfod_set_verbose_fd and DEBUGINFOD_VERBOSE
|
||||||
|
environment variable.
|
||||||
|
- config: profile.sh and profile.csh won't export DEBUGINFOD_URLS
|
||||||
|
unless configured --enable-debuginfod-urls[=URLS]
|
||||||
|
- elflint, readelf: Recognize SHF_GNU_RETAIN.
|
||||||
|
Handle SHT_X86_64_UNWIND as valid relocation target type.
|
||||||
|
|
||||||
|
* Thu Dec 17 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.182-2
|
||||||
|
- Add elfutils-0.182-s390-pid_memory_read.patch
|
||||||
|
|
||||||
|
* Sat Oct 31 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.182-1
|
||||||
|
- Upgrade to upstream 0.182
|
||||||
|
- backends: Support for tilegx has been removed.
|
||||||
|
- config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS.
|
||||||
|
- debuginfod: More efficient package traversal, tolerate various
|
||||||
|
errors during scanning, grooming progress is more visible and
|
||||||
|
interruptible, more prometheus metrics.
|
||||||
|
- debuginfod-client: Now supports compressed (kernel) ELF images.
|
||||||
|
- libdwfl: Add ZSTD compression support.
|
||||||
|
|
||||||
|
* Mon Oct 19 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-3
|
||||||
|
- Add elfutils-0.181-array-param.patch.
|
||||||
|
|
||||||
|
* Fri Sep 18 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-2
|
||||||
|
- Add ZSTD support elfutils-0.181-zstd.patch.
|
||||||
|
|
||||||
|
* Tue Sep 8 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-1
|
||||||
|
- Upgrade to upstream 0.181
|
||||||
|
- libelf: elf_update now compensates (fixes up) a bad sh_addralign
|
||||||
|
for SHF_COMPRESSED sections.
|
||||||
|
- libdebuginfod: configure now takes --enable-libdebuginfod=dummy or
|
||||||
|
--disable-libdebuginfod for bootstrapping.
|
||||||
|
DEBUGINFOD_URLS now accepts "scheme-free" urls
|
||||||
|
(guessing at what the user meant, either http:// or file://)
|
||||||
|
- readelf, elflint: Handle aarch64 bti, pac bits in dynamic table and
|
||||||
|
gnu property notes.
|
||||||
|
- libdw, readelf: Recognize DW_CFA_AARCH64_negate_ra_state. Allows
|
||||||
|
unwinding on arm64 for code that is compiled for PAC
|
||||||
|
(Pointer Authentication Code) as long as it isn't enabled.
|
||||||
|
|
||||||
|
* Tue Aug 25 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-7
|
||||||
|
- Add elfutils-0.180-shf-compressed.patch
|
||||||
|
|
||||||
|
* Wed Jul 22 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-5
|
||||||
|
- Remove duplicate listing of sysconfig/debuginfod (config) file.
|
||||||
|
|
||||||
|
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 0.180-4
|
||||||
|
- Use make macros
|
||||||
|
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
||||||
|
|
||||||
|
* Fri Jul 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-3
|
||||||
|
- Add elfutils-0.180-mhd-result.patch
|
||||||
|
|
||||||
|
* Wed Jul 1 2020 Jeff Law <law@redhat.com> - 0.180-2
|
||||||
|
- Disable LTO
|
||||||
|
|
||||||
|
* Thu Jun 11 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-1
|
||||||
|
- New upstream release.
|
||||||
|
elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given.
|
||||||
|
libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix.
|
||||||
|
libdw: Use correct CU to resolve file names in dwarf_decl_file.
|
||||||
|
libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.
|
||||||
|
size: Also obey radix printing for bsd format.
|
||||||
|
nm: Explicitly print weak 'V' or 'T' and common 'C' symbols.
|
||||||
|
|
||||||
* Thu Apr 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-2
|
* Thu Apr 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-2
|
||||||
- Add elfutils-0.179-debug-client-alt-link.patch
|
- Add elfutils-0.179-debug-client-alt-link.patch
|
||||||
|
|
||||||
|
|
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (elfutils-0.179.tar.bz2) = ff2d96ad1db08e3a2ddaa60bd5a05e9b61ffa71d646f889cebb6bef51322e874930809c6dd0a257ced8c6e8de4b59ecf13ca6741dc68f9400293208278a0c052
|
SHA512 (elfutils-0.183.tar.bz2) = bdafdd738a33cebe4f87849e5e6f1133881e77ef71b27faa0f0234ff80e9674f506957898326c2a55fd8438cbd189f7930597d0b4b9ca6c77921cc0cbd83b6b7
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue