diff --git a/.gitignore b/.gitignore index 9f77f37..710bb51 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,7 @@ /elfutils-0.177.tar.bz2 /elfutils-0.178.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 diff --git a/elfutils-0.179-debug-client-alt-link.patch b/elfutils-0.179-debug-client-alt-link.patch deleted file mode 100644 index bb84954..0000000 --- a/elfutils-0.179-debug-client-alt-link.patch +++ /dev/null @@ -1,60 +0,0 @@ -From b1d2404cc6ca0d9ce786e229a87c24db49163cfe Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -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 ---- - 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 - diff --git a/elfutils.spec b/elfutils.spec index aed7cf2..e3acdf7 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,6 +1,6 @@ Name: elfutils -Version: 0.179 -%global baserelease 2 +Version: 0.183 +%global baserelease 1 Release: %{baserelease}%{?dist} URL: http://elfutils.org/ %global source_url ftp://sourceware.org/pub/elfutils/%{version}/ @@ -31,6 +31,7 @@ BuildRequires: flex BuildRequires: zlib-devel BuildRequires: bzip2-devel BuildRequires: xz-devel +BuildRequires: libzstd-devel # For debuginfod BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33 @@ -40,11 +41,16 @@ BuildRequires: pkgconfig(libarchive) >= 3.1.2 # For tests need to bunzip2 test files. 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: bsdtar BuildRequires: curl +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: gettext-devel + %global _gnu %{nil} %global _program_prefix eu- @@ -55,7 +61,6 @@ BuildRequires: curl %endif # Patches -Patch1: elfutils-0.179-debug-client-alt-link.patch %description 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-debuginfod-client%{depsuffix} = %{version}-%{release} BuildRequires: systemd +BuildRequires: make Requires(post): systemd Requires(preun): systemd Requires(postun): systemd @@ -247,13 +253,22 @@ such servers to download those files on demand. %setup -q # 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 # are executable. find . -name \*.sh ! -perm -0100 -print | xargs chmod +x %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 # themselves, and they use -Werror. Appending -Wall defeats the cases where # 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 %configure CFLAGS="$RPM_OPT_FLAGS -fexceptions" trap '' EXIT -make -s %{?_smp_mflags} +%make_build -s %install -rm -rf ${RPM_BUILD_ROOT} -make -s install DESTDIR=${RPM_BUILD_ROOT} +%make_install -s 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} %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 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, # older Fedora and plain RHEL don't. @@ -316,7 +334,6 @@ fi %endif %files -%{!?_licensedir:%global license %%doc} %license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL %doc README TODO CONTRIBUTING %{_bindir}/eu-addr2line @@ -339,7 +356,6 @@ fi %{_mandir}/man1/eu-*.1* %files libs -%{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 %{_libdir}/libasm-%{version}.so %{_libdir}/libdw-%{version}.so @@ -365,7 +381,6 @@ fi %{_libdir}/libasm.a %files -f %{name}.lang libelf -%{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 %{_libdir}/libelf-%{version}.so %{_libdir}/libelf.so.* @@ -387,29 +402,26 @@ fi %endif %files debuginfod-client -%defattr(-,root,root) %{_libdir}/libdebuginfod-%{version}.so %{_libdir}/libdebuginfod.so.* %{_bindir}/debuginfod-find %{_mandir}/man1/debuginfod-find.1* %files debuginfod-client-devel -%defattr(-,root,root) %{_libdir}/pkgconfig/libdebuginfod.pc %{_mandir}/man3/debuginfod_*.3* %{_includedir}/elfutils/debuginfod.h %{_libdir}/libdebuginfod.so %files debuginfod -%defattr(-,root,root) %{_bindir}/debuginfod -%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/debuginfod +%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod %{_unitdir}/debuginfod.service %{_sysconfdir}/sysconfig/debuginfod %{_mandir}/man8/debuginfod.8* %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 getent group debuginfod >/dev/null || groupadd -r debuginfod @@ -425,6 +437,77 @@ exit 0 %systemd_postun_with_restart debuginfod.service %changelog +* Mon Feb 8 2021 Mark Wielaard - 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 - 0.182-2 +- Add elfutils-0.182-s390-pid_memory_read.patch + +* Sat Oct 31 2020 Mark Wielaard - 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 - 0.181-3 +- Add elfutils-0.181-array-param.patch. + +* Fri Sep 18 2020 Mark Wielaard - 0.181-2 +- Add ZSTD support elfutils-0.181-zstd.patch. + +* Tue Sep 8 2020 Mark Wielaard - 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 - 0.180-7 +- Add elfutils-0.180-shf-compressed.patch + +* Wed Jul 22 2020 Mark Wielaard - 0.180-5 +- Remove duplicate listing of sysconfig/debuginfod (config) file. + +* Mon Jul 13 2020 Tom Stellard - 0.180-4 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Fri Jul 3 2020 Mark Wielaard - 0.180-3 +- Add elfutils-0.180-mhd-result.patch + +* Wed Jul 1 2020 Jeff Law - 0.180-2 +- Disable LTO + +* Thu Jun 11 2020 Mark Wielaard - 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 - 0.179-2 - Add elfutils-0.179-debug-client-alt-link.patch diff --git a/sources b/sources index 43f3cfa..9e0e03d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (elfutils-0.179.tar.bz2) = ff2d96ad1db08e3a2ddaa60bd5a05e9b61ffa71d646f889cebb6bef51322e874930809c6dd0a257ced8c6e8de4b59ecf13ca6741dc68f9400293208278a0c052 +SHA512 (elfutils-0.183.tar.bz2) = bdafdd738a33cebe4f87849e5e6f1133881e77ef71b27faa0f0234ff80e9674f506957898326c2a55fd8438cbd189f7930597d0b4b9ca6c77921cc0cbd83b6b7