diff --git a/.elfutils.metadata b/.elfutils.metadata index ff980b9..b9e2e20 100644 --- a/.elfutils.metadata +++ b/.elfutils.metadata @@ -1 +1,2 @@ -53e486ddba572cf872d32e9aad4d7d7aa6e767ff SOURCES/elfutils-0.168.tar.bz2 +c5853d8c6e82ffe33de621f0c782b4802e0a6a67 SOURCES/elfutils-0.170.tar.bz2 +4d86da4d1503d5c54e3d640e006c82fdc2497648 SOURCES/testfile-sizes3.o.bz2 diff --git a/.gitignore b/.gitignore index 861874f..7d2ba28 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -SOURCES/elfutils-0.168.tar.bz2 +SOURCES/elfutils-0.170.tar.bz2 +SOURCES/testfile-sizes3.o.bz2 diff --git a/SOURCES/elfutils-0.168-libasm-truncation.patch b/SOURCES/elfutils-0.168-libasm-truncation.patch deleted file mode 100644 index f6429a5..0000000 --- a/SOURCES/elfutils-0.168-libasm-truncation.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 9e977aca87678417184f01d02c92b2ecb15727e3 -Author: Mark Wielaard -Date: Sun Feb 12 21:51:34 2017 +0100 - - libasm: Fix GCC7 one -Wformat-truncation=2 warning. - - Make sure that if we have really many labels the tempsym doesn't get - truncated because it is too small to hold the whole name. - - This doesn't enable -Wformat-truncation=2 or fix other "issues" pointed - out by enabling this warning because there are currently some issues - with it. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79448 - - Signed-off-by: Mark Wielaard - -diff --git a/libasm/asm_newsym.c b/libasm/asm_newsym.c -index 332432a..5389166 100644 ---- a/libasm/asm_newsym.c -+++ b/libasm/asm_newsym.c -@@ -1,5 +1,5 @@ - /* Define new symbol for current position in given section. -- Copyright (C) 2002, 2005, 2016 Red Hat, Inc. -+ Copyright (C) 2002, 2005, 2016, 2017 Red Hat, Inc. - This file is part of elfutils. - Written by Ulrich Drepper , 2002. - -@@ -44,7 +44,9 @@ AsmSym_t * - asm_newsym (AsmScn_t *asmscn, const char *name, GElf_Xword size, - int type, int binding) - { --#define TEMPSYMLEN 10 -+/* We don't really expect labels with many digits, but in theory it could -+ be 10 digits (plus ".L" and a zero terminator). */ -+#define TEMPSYMLEN 13 - char tempsym[TEMPSYMLEN]; - AsmSym_t *result; - diff --git a/SOURCES/elfutils-0.168-ppc64-attrs.patch b/SOURCES/elfutils-0.168-ppc64-attrs.patch deleted file mode 100644 index 06f8cef..0000000 --- a/SOURCES/elfutils-0.168-ppc64-attrs.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 817bd9376dd01039a30dfc4cf9dddd8cdd247446 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Wed, 15 Feb 2017 14:30:27 +0100 -Subject: [PATCH] backends: Add support for EM_PPC64 GNU_ATTRIBUTES. - -ppc64 and ppc64le ELF files can also contain a power specific -.gnu.attributes section. Add support for those and recognize the new -GNU_Power_ABI_FP Single-precision hard float value. - -Signed-off-by: Mark Wielaard ---- -diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c -index 2ba8232..11d3a77 100644 ---- a/backends/ppc64_init.c -+++ b/backends/ppc64_init.c -@@ -67,6 +67,7 @@ ppc64_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, syscall_abi); - HOOK (eh, core_note); - HOOK (eh, auxv_info); -+ HOOK (eh, check_object_attribute); - HOOK (eh, abi_cfi); - /* gcc/config/ #define DWARF_FRAME_REGISTERS. */ - eh->frame_nregs = (114 - 1) + 32; -diff --git a/backends/ppc_attrs.c b/backends/ppc_attrs.c -index 612c576..48d7129 100644 ---- a/backends/ppc_attrs.c -+++ b/backends/ppc_attrs.c -@@ -51,6 +51,7 @@ ppc_check_object_attribute (Ebl *ebl __attribute__ ((unused)), - "Hard or soft float", - "Hard float", - "Soft float", -+ "Single-precision hard float", - }; - if (value < sizeof fp_kinds / sizeof fp_kinds[0]) - *value_name = fp_kinds[value]; - --- -1.8.3.1 - diff --git a/SOURCES/elfutils-0.168-ppc64-fallback-unwinder.patch b/SOURCES/elfutils-0.168-ppc64-fallback-unwinder.patch deleted file mode 100644 index e75861b..0000000 --- a/SOURCES/elfutils-0.168-ppc64-fallback-unwinder.patch +++ /dev/null @@ -1,172 +0,0 @@ -From 1b2cd3f4dc581eed0fc1ee98f97aa492a19873b0 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Sun, 21 May 2017 23:33:15 +0200 -Subject: [PATCH] ppc64: Add minimal fallback unwinder. - -This adds a minimal fallback unwinder for ppc64[le] in case we cannot find -CFI for a particular address. It simply always sets the program counter to -the link register, picks the previous stack pointer from the backchain, -and the previous link register from the LR save area. - -This is enough for some simple situations when we don't have CFI and -seems to work nicely in the case of perf with libdw powerpc support: -https://lkml.org/lkml/2017/5/18/998 - -Signed-off-by: Mark Wielaard ---- - - backends/Makefile.am | 2 +- - backends/ppc64_init.c | 1 + - backends/ppc64_unwind.c | 76 +++++++++++++++++++++++++++++++++ - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index ff80a82..ac45a45 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -98,7 +98,7 @@ am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os) - - ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \ - ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ -- ppc_cfi.c ppc_initreg.c ppc64_resolve_sym.c -+ ppc_cfi.c ppc_initreg.c ppc64_unwind.c ppc64_resolve_sym.c - libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS) - am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os) - -diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c -index 11d3a77..e567033 100644 ---- a/backends/ppc64_init.c -+++ b/backends/ppc64_init.c -@@ -73,6 +73,7 @@ ppc64_init (Elf *elf __attribute__ ((unused)), - eh->frame_nregs = (114 - 1) + 32; - HOOK (eh, set_initial_registers_tid); - HOOK (eh, dwarf_to_regno); -+ HOOK (eh, unwind); - HOOK (eh, resolve_sym_value); - - /* Find the function descriptor .opd table for resolve_sym_value. */ -diff --git a/backends/ppc64_unwind.c b/backends/ppc64_unwind.c -new file mode 100644 -index 0000000..4fa0b5a ---- /dev/null -+++ b/backends/ppc64_unwind.c -@@ -0,0 +1,76 @@ -+/* Get previous frame state for an existing frame state. -+ Copyright (C) 2017 Red Hat, Inc. -+ This file is part of elfutils. -+ -+ This file is free software; you can redistribute it and/or modify -+ it under the terms of either -+ -+ * the GNU Lesser General Public License as published by the Free -+ Software Foundation; either version 3 of the License, or (at -+ your option) any later version -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or (at -+ your option) any later version -+ -+ or both in parallel, as here. -+ -+ elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received copies of the GNU General Public License and -+ the GNU Lesser General Public License along with this program. If -+ not, see . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#define BACKEND ppc64_ -+ -+#define LR_REG 65 /* Not 108, see ppc_dwarf_to_regno. */ -+#define SP_REG 1 -+ -+#define LR_OFFSET 16 -+ -+#include "libebl_CPU.h" -+ -+/* Simplistic fallback frame unwinder. SP points to the backchain (contains -+ address of previous stack pointer). At SP offset 16 is the LR save area -+ (contains the value of the previous LR). */ -+ -+bool -+EBLHOOK(unwind) (Ebl *ebl __attribute__ ((unused)), -+ Dwarf_Addr pc __attribute__ ((unused)), -+ ebl_tid_registers_t *setfunc, ebl_tid_registers_get_t *getfunc, -+ ebl_pid_memory_read_t *readfunc, void *arg, -+ bool *signal_framep __attribute__ ((unused))) -+{ -+ Dwarf_Word sp, newSp, lr, newLr; -+ -+ /* Stack pointer points to the backchain which contains the previous sp. */ -+ if (! getfunc (SP_REG, 1, &sp, arg)) -+ sp = 0; -+ -+ /* Link register contains previous program counter. */ -+ if (! getfunc (LR_REG, 1, &lr, arg) -+ || lr == 0 -+ || ! setfunc (-1, 1, &lr, arg)) -+ return false; -+ -+ if (! readfunc(sp, &newSp, arg)) -+ newSp = 0; -+ -+ if (! readfunc(newSp + LR_OFFSET, &newLr, arg)) -+ newLr = 0; -+ -+ setfunc(SP_REG, 1, &newSp, arg); -+ setfunc(LR_REG, 1, &newLr, arg); -+ -+ /* Sanity check the stack grows down. */ -+ return newSp > sp; -+} - -diff -ur elfutils-0.168.orig/backends/Makefile.in elfutils-0.168/backends/Makefile.in ---- elfutils-0.168.orig/backends/Makefile.in 2017-05-30 22:35:20.251108585 +0200 -+++ elfutils-0.168/backends/Makefile.in 2017-05-30 22:36:43.622531949 +0200 -@@ -158,7 +158,7 @@ - ppc64_retval.$(OBJEXT) ppc64_corenote.$(OBJEXT) \ - ppc_regs.$(OBJEXT) ppc_auxv.$(OBJEXT) ppc_attrs.$(OBJEXT) \ - ppc_syscall.$(OBJEXT) ppc_cfi.$(OBJEXT) ppc_initreg.$(OBJEXT) \ -- ppc64_resolve_sym.$(OBJEXT) -+ ppc64_unwind.$(OBJEXT) ppc64_resolve_sym.$(OBJEXT) - libebl_ppc64_pic_a_OBJECTS = $(am_libebl_ppc64_pic_a_OBJECTS) - libebl_ppc_pic_a_AR = $(AR) $(ARFLAGS) - libebl_ppc_pic_a_LIBADD = -@@ -503,7 +503,7 @@ - am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os) - ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \ - ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ -- ppc_cfi.c ppc_initreg.c ppc64_resolve_sym.c -+ ppc_cfi.c ppc_initreg.c ppc64_unwind.c ppc64_resolve_sym.c - - libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS) - am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os) -@@ -692,6 +692,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_resolve_sym.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_retval.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_symbol.Po@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_unwind.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_attrs.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_auxv.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_cfi.Po@am__quote@ - --- -1.8.3.1 ---- elfutils-0.168/tests/backtrace-subr.sh.orig 2017-05-31 00:39:02.797260621 +0200 -+++ elfutils-0.168/tests/backtrace-subr.sh 2017-05-31 00:39:28.445782296 +0200 -@@ -46,7 +46,7 @@ - # Ignore it here as it is a bug of OS, not a bug of elfutils. - check_err() - { -- if [ $(egrep -v <$1 'dwfl_thread_getframes: (No DWARF information found|no matching address range)$' \ -+ if [ $(egrep -v <$1 'dwfl_thread_getframes: (No DWARF information found|no matching address range|address out of range|Invalid register|\(null\))$' \ - | wc -c) \ - -eq 0 ] - then diff --git a/SOURCES/elfutils-0.170-dwarf_aggregate_size.patch b/SOURCES/elfutils-0.170-dwarf_aggregate_size.patch new file mode 100644 index 0000000..895458e --- /dev/null +++ b/SOURCES/elfutils-0.170-dwarf_aggregate_size.patch @@ -0,0 +1,170 @@ +From a2246aaad96e062eb3bab55af9526aaa70adcfd0 Mon Sep 17 00:00:00 2001 +From: Dima Kogan +Date: Fri, 8 Dec 2017 01:45:10 -0800 +Subject: [PATCH 1/2] libdw: dwarf_aggregate_size() works with + multi-dimensional arrays + +If we have a multidimensional array of dimensions (a,b,c) the number of elements +should be a*b*c, but prior to this patch dwarf_aggregate_size() would report +a+b+c instead. + +This patch fixes the bug and adds a test that demonstrates the bug (the test +fails without the functional part of this patch). + +Fixes: https://sourceware.org/bugzilla/show_bug.cgi?id=22546 + +Signed-off-by: Dima Kogan +--- + libdw/ChangeLog | 5 +++++ + libdw/dwarf_aggregate_size.c | 43 ++++++++++++++++++++++--------------------- + tests/ChangeLog | 6 ++++++ + tests/run-aggregate-size.sh | 2 ++ + tests/run-peel-type.sh | 1 + + tests/testfile-sizes3.o.bz2 | Bin 1147 -> 1208 bytes + 6 files changed, 36 insertions(+), 21 deletions(-) + +diff --git a/libdw/dwarf_aggregate_size.c b/libdw/dwarf_aggregate_size.c +index 838468d..3010c0a 100644 +--- a/libdw/dwarf_aggregate_size.c ++++ b/libdw/dwarf_aggregate_size.c +@@ -63,7 +63,7 @@ array_size (Dwarf_Die *die, Dwarf_Word *size, + return -1; + + bool any = false; +- Dwarf_Word total = 0; ++ Dwarf_Word count_total = 1; + do + { + Dwarf_Word count; +@@ -134,34 +134,35 @@ array_size (Dwarf_Die *die, Dwarf_Word *size, + continue; + } + +- /* This is a subrange_type or enumeration_type and we've set COUNT. +- Now determine the stride for this array dimension. */ +- Dwarf_Word stride = eltsize; +- if (INTUSE(dwarf_attr_integrate) (&child, DW_AT_byte_stride, +- attr_mem) != NULL) +- { +- if (INTUSE(dwarf_formudata) (attr_mem, &stride) != 0) +- return -1; +- } +- else if (INTUSE(dwarf_attr_integrate) (&child, DW_AT_bit_stride, +- attr_mem) != NULL) +- { +- if (INTUSE(dwarf_formudata) (attr_mem, &stride) != 0) +- return -1; +- if (stride % 8) /* XXX maybe compute in bits? */ +- return -1; +- stride /= 8; +- } ++ count_total *= count; + + any = true; +- total += stride * count; + } + while (INTUSE(dwarf_siblingof) (&child, &child) == 0); + + if (!any) + return -1; + +- *size = total; ++ /* This is a subrange_type or enumeration_type and we've set COUNT. ++ Now determine the stride for this array. */ ++ Dwarf_Word stride = eltsize; ++ if (INTUSE(dwarf_attr_integrate) (die, DW_AT_byte_stride, ++ attr_mem) != NULL) ++ { ++ if (INTUSE(dwarf_formudata) (attr_mem, &stride) != 0) ++ return -1; ++ } ++ else if (INTUSE(dwarf_attr_integrate) (die, DW_AT_bit_stride, ++ attr_mem) != NULL) ++ { ++ if (INTUSE(dwarf_formudata) (attr_mem, &stride) != 0) ++ return -1; ++ if (stride % 8) /* XXX maybe compute in bits? */ ++ return -1; ++ stride /= 8; ++ } ++ ++ *size = count_total * stride; + return 0; + } + +diff --git a/tests/run-aggregate-size.sh b/tests/run-aggregate-size.sh +index 42b0742..6d8aa24 100755 +--- a/tests/run-aggregate-size.sh ++++ b/tests/run-aggregate-size.sh +@@ -54,6 +54,7 @@ + # volatile int ia[32]; + # const volatile void * const volatile restrict va[64]; + # struct s sa[8]; ++# double d3d[3][4][5]; + # + # typedef const int foo; + # typedef volatile foo bar; +@@ -98,6 +99,7 @@ ca size 16 + ia size 128 + va size 512 + sa size 128 ++d3d size 480 + f size 4 + b size 4 + EOF +diff --git a/tests/run-peel-type.sh b/tests/run-peel-type.sh +index 7fd96e8..668e316 100755 +--- a/tests/run-peel-type.sh ++++ b/tests/run-peel-type.sh +@@ -55,6 +55,7 @@ ca raw type array_type + ia raw type array_type + va raw type array_type + sa raw type array_type ++d3d raw type array_type + f raw type base_type + b raw type base_type + EOF + +-- +1.8.3.1 + +From c25dc62e59dc42378370602b0d05415a42b051d6 Mon Sep 17 00:00:00 2001 +From: Mark Wielaard +Date: Mon, 11 Dec 2017 23:58:34 +0100 +Subject: [PATCH 2/2] libdw: dwarf_aggregate_size should not peel the given + DIE. + +Reserve memory for a new DIE first. The caller might not care, but it +isn't really nice to change the DIE the caller gave us. + +See also https://sourceware.org/bugzilla/show_bug.cgi?id=22546#c5 + +Signed-off-by: Mark Wielaard +--- + libdw/ChangeLog | 5 +++++ + libdw/dwarf_aggregate_size.c | 6 +++--- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/libdw/dwarf_aggregate_size.c b/libdw/dwarf_aggregate_size.c +index 3010c0a..6e50185 100644 +--- a/libdw/dwarf_aggregate_size.c ++++ b/libdw/dwarf_aggregate_size.c +@@ -199,12 +199,12 @@ aggregate_size (Dwarf_Die *die, Dwarf_Word *size, Dwarf_Die *type_mem) + int + dwarf_aggregate_size (Dwarf_Die *die, Dwarf_Word *size) + { +- Dwarf_Die type_mem; ++ Dwarf_Die die_mem, type_mem; + +- if (INTUSE (dwarf_peel_type) (die, die) != 0) ++ if (INTUSE (dwarf_peel_type) (die, &die_mem) != 0) + return -1; + +- return aggregate_size (die, size, &type_mem); ++ return aggregate_size (&die_mem, size, &type_mem); + } + INTDEF (dwarf_aggregate_size) + OLD_VERSION (dwarf_aggregate_size, ELFUTILS_0.144) +-- +1.8.3.1 + diff --git a/SOURCES/elfutils-0.170-x86_64-backtrace-test-override.patch b/SOURCES/elfutils-0.170-x86_64-backtrace-test-override.patch new file mode 100644 index 0000000..408f7d6 --- /dev/null +++ b/SOURCES/elfutils-0.170-x86_64-backtrace-test-override.patch @@ -0,0 +1,17 @@ +diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh +index c1f3156..477df0b 100644 +--- a/tests/backtrace-subr.sh ++++ b/tests/backtrace-subr.sh +@@ -105,6 +105,12 @@ check_native_unsupported() + exit 77 + fi + ;; ++ x86_64 ) ++ if egrep 'backtrace: backtrace.c:114: callback_verify: Assertion' $err; then ++ echo >&2 $testname: temp override for x86_64 ++ exit 77 ++ fi ++ ;; + esac + } + diff --git a/SPECS/elfutils.spec b/SPECS/elfutils.spec index 10a3cdf..5c1a31b 100644 --- a/SPECS/elfutils.spec +++ b/SPECS/elfutils.spec @@ -1,7 +1,7 @@ Name: elfutils Summary: A collection of utilities and DSOs to handle ELF files and DWARF data -Version: 0.168 -%global baserelease 8 +Version: 0.170 +%global baserelease 4 URL: http://elfutils.org/ %global source_url ftp://sourceware.org/pub/elfutils/%{version}/ License: GPLv3+ and (GPLv2+ or LGPLv3+) @@ -9,10 +9,10 @@ Group: Development/Tools Release: %{baserelease}%{?dist} -%global provide_yama_scope 1 +%global provide_yama_scope 0 -%if 0%{?fedora} -%global provide_yama_scope (%fedora >= 22) +%if 0%{?fedora} >= 22 || 0%{?rhel} >= 7 +%global provide_yama_scope 1 %endif %global depsuffix %{?_isa}%{!?_isa:-%{_arch}} @@ -20,9 +20,10 @@ Release: %{baserelease}%{?dist} Source: %{?source_url}%{name}-%{version}.tar.bz2 # Patches -Patch1: elfutils-0.168-libasm-truncation.patch -Patch2: elfutils-0.168-ppc64-attrs.patch -Patch3: elfutils-0.168-ppc64-fallback-unwinder.patch +Patch1: elfutils-0.170-dwarf_aggregate_size.patch +Source1: testfile-sizes3.o.bz2 + +Patch2: elfutils-0.170-x86_64-backtrace-test-override.patch Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release} @@ -157,6 +158,7 @@ License: GPLv2+ or LGPLv3+ Provides: default-yama-scope BuildArch: noarch # For the sysctl_apply macro +%{?systemd_requires} BuildRequires: systemd >= 215 %description default-yama-scope @@ -173,9 +175,12 @@ profiling) of processes. %setup -q # Apply patches -%patch1 -p1 -b .trunc -%patch2 -p1 -b .attr -%patch3 -p1 -b .unwind_ppc64 +%patch1 -p1 -b .aggregate_size +cp %SOURCE1 tests/ + +# This is only necessary for the RHEL brew build host, which seems to +# generate a corrupt core file which we cannot test properly. +%patch2 -p1 -b .x86_64_override find . -name \*.sh ! -perm -0100 -print | xargs chmod +x @@ -207,6 +212,9 @@ install -Dm0644 config/10-default-yama-scope.conf ${RPM_BUILD_ROOT}%{_sysctldir} %endif %check +# Record some build root versions in build.log +uname -r; rpm -q glibc + make -s %{?_smp_mflags} check || (cat tests/test-suite.log; false) %clean @@ -222,7 +230,11 @@ rm -rf ${RPM_BUILD_ROOT} %if %{provide_yama_scope} %post default-yama-scope +# Due to circular dependencies might not be installed yet, so double check. +# (systemd -> elfutils-libs -> default-yama-scope -> systemd) +if [ -x /usr/lib/systemd/systemd-sysctl ] ; then %sysctl_apply 10-default-yama-scope.conf +fi %endif %files @@ -306,6 +318,20 @@ rm -rf ${RPM_BUILD_ROOT} %endif %changelog +* Wed Dec 20 2017 Mark Wielaard - 0.170-4 +- Add elfutils-0.170-dwarf_aggregate_size.patch (#1527966). + +* Wed Nov 8 2017 Mark Wielaard - 0.170-3 +- Rely on systemd_requires for sysctl_apply default-yama-scope (#1509861). + +* Thu Nov 2 2017 Mark Wielaard - 0.170-2 +- Rebuild because of binutils bug (#1508966) + +* Mon Oct 16 2017 Mark Wielaard - 0.170-1 +- New upstream release. Remove upstreamed patches. +- Sync provide_yama_scope with fedora. +- Add elfutils-0.170-x86_64-backtrace-test-override.patch. + * Tue May 30 2017 Mark Wielaard - 0.168-8 - Fix ppc64 fallback unwinder (#1454754)