From 057e02726d9ba3ef79612645fa1398c87981de7a Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 21 Jul 2017 12:55:19 +0200 Subject: [PATCH] 0.169-6 - Add elfutils-0.169-strip-data-marker-symbols.patch. --- ...tils-0.169-strip-data-marker-symbols.patch | 553 ++++++++++++++++++ elfutils.spec | 7 +- 2 files changed, 559 insertions(+), 1 deletion(-) create mode 100644 elfutils-0.169-strip-data-marker-symbols.patch diff --git a/elfutils-0.169-strip-data-marker-symbols.patch b/elfutils-0.169-strip-data-marker-symbols.patch new file mode 100644 index 0000000..37cede8 --- /dev/null +++ b/elfutils-0.169-strip-data-marker-symbols.patch @@ -0,0 +1,553 @@ +commit 17bfd57dd13f81b8ed5d1ee5109355bc377cf76c +Author: Mark Wielaard +Date: Thu Jul 20 22:34:29 2017 +0200 + + strip: Deal with ARM data marker symbols pointing to debug sections. + + ARM data marker symbols "$d" indicate the start of a sequence of data + items in a section. For data only sections no data marker symbol is + necessary, but may be put pointing to the start of the section. + binutils however has a bug which places a data marker symbol somewhere + inside the section (at least for .debug_frame). + https://sourceware.org/bugzilla/show_bug.cgi?id=21809 + + When strip finds a symbol pointing to a debug section that would be + put into the .debug file then it will copy over the whole symbol table. + This isn't necessary because the symbol is redundant. + + Add an ebl hook to recognize data marker symbols with implementations + for arm and aarch64. Use it in strip to strip such symbols from the + symbol table if they point to a debug section. + + Signed-off-by: Mark Wielaard + +diff --git a/backends/aarch64_init.c b/backends/aarch64_init.c +index 0866494..fad923f 100644 +--- a/backends/aarch64_init.c ++++ b/backends/aarch64_init.c +@@ -1,5 +1,5 @@ + /* Initialization of AArch64 specific backend library. +- Copyright (C) 2013 Red Hat, Inc. ++ Copyright (C) 2013, 2017 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify +@@ -56,6 +56,7 @@ aarch64_init (Elf *elf __attribute__ ((unused)), + HOOK (eh, reloc_simple_type); + HOOK (eh, return_value_location); + HOOK (eh, check_special_symbol); ++ HOOK (eh, data_marker_symbol); + HOOK (eh, abi_cfi); + + /* X0-X30 (31 regs) + SP + 1 Reserved + ELR, 30 Reserved regs (34-43) +diff --git a/backends/aarch64_symbol.c b/backends/aarch64_symbol.c +index 76999e4..da3382e 100644 +--- a/backends/aarch64_symbol.c ++++ b/backends/aarch64_symbol.c +@@ -1,5 +1,5 @@ + /* AArch64 specific symbolic name handling. +- Copyright (C) 2013, 2015 Red Hat, Inc. ++ Copyright (C) 2013, 2015, 2017 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify +@@ -90,3 +90,15 @@ aarch64_check_special_symbol (Elf *elf, GElf_Ehdr *ehdr, const GElf_Sym *sym, + + return false; + } ++ ++/* A data mapping symbol is a symbol with "$d" name or "$d." name, ++ STT_NOTYPE, STB_LOCAL and st_size of zero. The indicate the stat of a ++ sequence of data items. */ ++bool ++aarch64_data_marker_symbol (const GElf_Sym *sym, const char *sname) ++{ ++ return (sym != NULL && sname != NULL ++ && sym->st_size == 0 && GELF_ST_BIND (sym->st_info) == STB_LOCAL ++ && GELF_ST_TYPE (sym->st_info) == STT_NOTYPE ++ && (strcmp (sname, "$d") == 0 || strncmp (sname, "$d.", 3) == 0)); ++} +diff --git a/backends/arm_init.c b/backends/arm_init.c +index caadac6..f2b1b11 100644 +--- a/backends/arm_init.c ++++ b/backends/arm_init.c +@@ -1,5 +1,5 @@ + /* Initialization of Arm specific backend library. +- Copyright (C) 2002, 2005, 2009, 2013, 2014, 2015 Red Hat, Inc. ++ Copyright (C) 2002, 2005, 2009, 2013, 2014, 2015, 2017 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper , 2002. + +@@ -64,6 +64,7 @@ arm_init (Elf *elf __attribute__ ((unused)), + HOOK (eh, abi_cfi); + HOOK (eh, check_reloc_target_type); + HOOK (eh, symbol_type_name); ++ HOOK (eh, data_marker_symbol); + + /* We only unwind the core integer registers. */ + eh->frame_nregs = 16; +diff --git a/backends/arm_symbol.c b/backends/arm_symbol.c +index da4a50a..3edda72 100644 +--- a/backends/arm_symbol.c ++++ b/backends/arm_symbol.c +@@ -1,5 +1,5 @@ + /* Arm specific symbolic name handling. +- Copyright (C) 2002-2009, 2014, 2015 Red Hat, Inc. ++ Copyright (C) 2002-2009, 2014, 2015, 2017 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify +@@ -32,6 +32,7 @@ + + #include + #include ++#include + + #define BACKEND arm_ + #include "libebl_CPU.h" +@@ -142,3 +143,15 @@ arm_symbol_type_name (int type, + } + return NULL; + } ++ ++/* A data mapping symbol is a symbol with "$d" name or "$d." name, ++ * STT_NOTYPE, STB_LOCAL and st_size of zero. The indicate the stat of a ++ * sequence of data items. */ ++bool ++arm_data_marker_symbol (const GElf_Sym *sym, const char *sname) ++{ ++ return (sym != NULL && sname != NULL ++ && sym->st_size == 0 && GELF_ST_BIND (sym->st_info) == STB_LOCAL ++ && GELF_ST_TYPE (sym->st_info) == STT_NOTYPE ++ && (strcmp (sname, "$d") == 0 || strncmp (sname, "$d.", 3) == 0)); ++} +diff --git a/libebl/Makefile.am b/libebl/Makefile.am +index 6f945eb..2491df8 100644 +--- a/libebl/Makefile.am ++++ b/libebl/Makefile.am +@@ -1,6 +1,6 @@ + ## Process this file with automake to create Makefile.in + ## +-## Copyright (C) 2000-2010, 2013, 2016 Red Hat, Inc. ++## Copyright (C) 2000-2010, 2013, 2016, 2017 Red Hat, Inc. + ## This file is part of elfutils. + ## + ## This file is free software; you can redistribute it and/or modify +@@ -53,7 +53,8 @@ gen_SOURCES = eblopenbackend.c eblclosebackend.c \ + eblsysvhashentrysize.c eblauxvinfo.c eblcheckobjattr.c \ + ebl_check_special_section.c ebl_syscall_abi.c eblabicfi.c \ + eblstother.c eblinitreg.c ebldwarftoregno.c eblnormalizepc.c \ +- eblunwind.c eblresolvesym.c eblcheckreloctargettype.c ++ eblunwind.c eblresolvesym.c eblcheckreloctargettype.c \ ++ ebl_data_marker_symbol.c + + libebl_a_SOURCES = $(gen_SOURCES) + +diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h +index b725374..f3a0e64 100644 +--- a/libebl/ebl-hooks.h ++++ b/libebl/ebl-hooks.h +@@ -1,5 +1,5 @@ + /* Backend hook signatures internal interface for libebl. +- Copyright (C) 2000-2011, 2013, 2014, 2016 Red Hat, Inc. ++ Copyright (C) 2000-2011, 2013, 2014, 2016, 2017 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify +@@ -121,6 +121,9 @@ bool EBLHOOK(relative_reloc_p) (int); + bool EBLHOOK(check_special_symbol) (Elf *, GElf_Ehdr *, const GElf_Sym *, + const char *, const GElf_Shdr *); + ++/* Check if this is a data marker symbol. e.g. '$d' symbols for ARM. */ ++bool EBLHOOK(data_marker_symbol) (const GElf_Sym *sym, const char *sname); ++ + /* Check whether only valid bits are set on the st_other symbol flag. + Standard ST_VISIBILITY have already been masked off. */ + bool EBLHOOK(check_st_other_bits) (unsigned char st_other); +diff --git a/libebl/ebl_data_marker_symbol.c b/libebl/ebl_data_marker_symbol.c +new file mode 100644 +index 0000000..922d720 +--- /dev/null ++++ b/libebl/ebl_data_marker_symbol.c +@@ -0,0 +1,44 @@ ++/* Check whether a symbol is a special data marker. ++ 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 ++ ++#include ++#include ++ ++ ++bool ++ebl_data_marker_symbol (Ebl *ebl, const GElf_Sym *sym, const char *sname) ++{ ++ if (ebl == NULL) ++ return false; ++ ++ return ebl->data_marker_symbol (sym, sname); ++} +diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c +index f3a65cf..1f81477 100644 +--- a/libebl/eblopenbackend.c ++++ b/libebl/eblopenbackend.c +@@ -1,5 +1,5 @@ + /* Generate ELF backend handle. +- Copyright (C) 2000-2016 Red Hat, Inc. ++ Copyright (C) 2000-2017 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify +@@ -184,6 +184,7 @@ static bool default_check_special_symbol (Elf *elf, GElf_Ehdr *ehdr, + const GElf_Sym *sym, + const char *name, + const GElf_Shdr *destshdr); ++static bool default_data_marker_symbol (const GElf_Sym *sym, const char *sname); + static bool default_check_st_other_bits (unsigned char st_other); + static bool default_check_special_section (Ebl *, int, + const GElf_Shdr *, const char *); +@@ -235,6 +236,7 @@ fill_defaults (Ebl *result) + result->none_reloc_p = default_none_reloc_p; + result->relative_reloc_p = default_relative_reloc_p; + result->check_special_symbol = default_check_special_symbol; ++ result->data_marker_symbol = default_data_marker_symbol; + result->check_st_other_bits = default_check_st_other_bits; + result->bss_plt_p = default_bss_plt_p; + result->return_value_location = default_return_value_location; +@@ -672,6 +674,13 @@ default_check_special_symbol (Elf *elf __attribute__ ((unused)), + } + + static bool ++default_data_marker_symbol (const GElf_Sym *sym __attribute__ ((unused)), ++ const char *sname __attribute__ ((unused))) ++{ ++ return false; ++} ++ ++static bool + default_check_st_other_bits (unsigned char st_other __attribute__ ((unused))) + { + return false; +diff --git a/libebl/libebl.h b/libebl/libebl.h +index 87896e4..882bdb9 100644 +--- a/libebl/libebl.h ++++ b/libebl/libebl.h +@@ -1,5 +1,5 @@ + /* Interface for libebl. +- Copyright (C) 2000-2010, 2013, 2014, 2015, 2016 Red Hat, Inc. ++ Copyright (C) 2000-2010, 2013, 2014, 2015, 2016, 2017 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify +@@ -156,6 +156,10 @@ extern bool ebl_check_special_symbol (Ebl *ebl, GElf_Ehdr *ehdr, + const GElf_Sym *sym, const char *name, + const GElf_Shdr *destshdr); + ++/* Check if this is a data marker symbol. e.g. '$d' symbols for ARM. */ ++extern bool ebl_data_marker_symbol (Ebl *ebl, const GElf_Sym *sym, ++ const char *sname); ++ + /* Check whether only valid bits are set on the st_other symbol flag. */ + extern bool ebl_check_st_other_bits (Ebl *ebl, unsigned char st_other); + +diff --git a/src/strip.c b/src/strip.c +index 4a35ea1..773ed54 100644 +--- a/src/strip.c ++++ b/src/strip.c +@@ -1,5 +1,5 @@ + /* Discard section not used at runtime from object files. +- Copyright (C) 2000-2012, 2014, 2015, 2016 Red Hat, Inc. ++ Copyright (C) 2000-2012, 2014, 2015, 2016, 2017 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper , 2000. + +@@ -960,8 +960,19 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, + if (shdr_info[scnidx].idx == 0) + /* This symbol table has a real symbol in + a discarded section. So preserve the +- original table in the debug file. */ +- shdr_info[cnt].debug_data = symdata; ++ original table in the debug file. Unless ++ it is a redundant data marker to a debug ++ (data only) section. */ ++ if (! (ebl_section_strip_p (ebl, ehdr, ++ &shdr_info[scnidx].shdr, ++ shdr_info[scnidx].name, ++ remove_comment, ++ remove_debug) ++ && ebl_data_marker_symbol (ebl, sym, ++ elf_strptr (elf, ++ shdr_info[cnt].shdr.sh_link, ++ sym->st_name)))) ++ shdr_info[cnt].debug_data = symdata; + } + } + +@@ -1293,7 +1304,10 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, + shdr_info[cnt].shdr.sh_name = dwelf_strent_off (shdr_info[cnt].se); + + /* Update the section header from the input file. Some fields +- might be section indeces which now have to be adjusted. */ ++ might be section indeces which now have to be adjusted. Keep ++ the index to the "current" sh_link in case we need it to lookup ++ symbol table names. */ ++ size_t sh_link = shdr_info[cnt].shdr.sh_link; + if (shdr_info[cnt].shdr.sh_link != 0) + shdr_info[cnt].shdr.sh_link = + shdr_info[shdr_info[cnt].shdr.sh_link].idx; +@@ -1492,13 +1506,17 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, + /* The symbol points to a section that is discarded + but isn't preserved in the debug file. Check that + this is a section or group signature symbol +- for a section which has been removed. */ ++ for a section which has been removed. Or a special ++ data marker symbol to a debug section. */ + { + elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION + || ((shdr_info[sidx].shdr.sh_type + == SHT_GROUP) + && (shdr_info[sidx].shdr.sh_info +- == inner))); ++ == inner)) ++ || ebl_data_marker_symbol (ebl, sym, ++ elf_strptr (elf, sh_link, ++ sym->st_name))); + } + } + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 7fd4b21..edfdb53 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -81,7 +81,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ + run-strip-test3.sh run-strip-test4.sh run-strip-test5.sh \ + run-strip-test6.sh run-strip-test7.sh run-strip-test8.sh \ + run-strip-test9.sh run-strip-test10.sh run-strip-test11.sh \ +- run-strip-nothing.sh \ ++ run-strip-nothing.sh run-strip-g.sh \ + run-strip-groups.sh run-strip-reloc.sh run-strip-strmerge.sh \ + run-strip-nobitsalign.sh run-strip-remove-keep.sh \ + run-unstrip-test.sh run-unstrip-test2.sh run-unstrip-test3.sh \ +@@ -176,7 +176,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ + run-strip-test4.sh run-strip-test5.sh run-strip-test6.sh \ + run-strip-test7.sh run-strip-test8.sh run-strip-groups.sh \ + run-strip-test9.sh run-strip-test10.sh run-strip-test11.sh \ +- run-strip-nothing.sh run-strip-remove-keep.sh \ ++ run-strip-nothing.sh run-strip-remove-keep.sh run-strip-g.sh \ + run-strip-strmerge.sh run-strip-nobitsalign.sh \ + testfile-nobitsalign.bz2 testfile-nobitsalign.strip.bz2 \ + run-strip-reloc.sh hello_i386.ko.bz2 hello_x86_64.ko.bz2 \ +diff --git a/tests/run-strip-g.sh b/tests/run-strip-g.sh +new file mode 100755 +index 0000000..1303819 +--- /dev/null ++++ b/tests/run-strip-g.sh +@@ -0,0 +1,102 @@ ++#! /bin/sh ++# 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 the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# 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 a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++. $srcdir/test-subr.sh ++ ++# When stripping just the debug sections/symbols we keep the symtab ++# in the main ELF file. There should be no symbols pointing into the ++# debug sections and so there should not be a copy in the debug file ++# except for a NOBITS one. ++ ++tempfiles a.out strip.out debug.out readelf.out ++ ++echo Create debug a.out. ++echo "int main() { return 1; }" | gcc -g -xc - ++ ++echo strip -g to file with debug file ++testrun ${abs_top_builddir}/src/strip -g -o strip.out -f debug.out || ++ { echo "*** failed to strip -g -o strip.out -f debug.out a.out"; exit -1; } ++ ++status=0 ++testrun ${abs_top_builddir}/src/readelf -S strip.out > readelf.out ++grep SYMTAB readelf.out || status=$? ++echo $status ++if test $status -ne 0; then ++ echo no symtab found in strip.out ++ exit 1 ++fi ++ ++status=0 ++testrun ${abs_top_builddir}/src/readelf -S debug.out > readelf.out ++grep SYMTAB readelf.out || status=$? ++echo $status ++if test $status -ne 1; then ++ echo symtab found in debug.out ++ exit 1 ++fi ++ ++# arm (with data marker in .debug_frame). See tests/run-addrcfi.sh ++testfiles testfilearm ++ ++echo arm strip -g to file with debug file ++testrun ${abs_top_builddir}/src/strip -g -o strip.out -f debug.out testfilearm || ++ { echo "*** failed to strip -g -o strip.out -f debug.out a.out"; exit -1; } ++ ++status=0 ++testrun ${abs_top_builddir}/src/readelf -S strip.out > readelf.out ++grep SYMTAB readelf.out || status=$? ++echo $status ++if test $status -ne 0; then ++ echo no symtab found in strip.out ++ exit 1 ++fi ++ ++status=0 ++testrun ${abs_top_builddir}/src/readelf -S debug.out > readelf.out ++grep SYMTAB readelf.out || status=$? ++echo $status ++if test $status -ne 1; then ++ echo symtab found in debug.out ++ exit 1 ++fi ++ ++# aarch64 (with data marker in .debug_frame). See tests/run-addrcfi.sh ++testfiles testfileaarch64 ++ ++echo aarch64 strip -g to file with debug file ++testrun ${abs_top_builddir}/src/strip -g -o strip.out -f debug.out testfileaarch64 || ++ { echo "*** failed to strip -g -o strip.out -f debug.out a.out"; exit -1; } ++ ++status=0 ++testrun ${abs_top_builddir}/src/readelf -S strip.out > readelf.out ++grep SYMTAB readelf.out || status=$? ++echo $status ++if test $status -ne 0; then ++ echo no symtab found in strip.out ++ exit 1 ++fi ++ ++status=0 ++testrun ${abs_top_builddir}/src/readelf -S debug.out > readelf.out ++grep SYMTAB readelf.out || status=$? ++echo $status ++if test $status -ne 1; then ++ echo symtab found in debug.out ++ exit 1 ++fi ++ ++exit 0 +diff -ru elfutils-0.169.orig/libebl/Makefile.in elfutils-0.169/libebl/Makefile.in +--- elfutils-0.169.orig/libebl/Makefile.in 2017-07-21 12:49:56.824083447 +0200 ++++ elfutils-0.169/libebl/Makefile.in 2017-07-21 12:50:44.169036296 +0200 +@@ -163,7 +163,8 @@ + eblstother.$(OBJEXT) eblinitreg.$(OBJEXT) \ + ebldwarftoregno.$(OBJEXT) eblnormalizepc.$(OBJEXT) \ + eblunwind.$(OBJEXT) eblresolvesym.$(OBJEXT) \ +- eblcheckreloctargettype.$(OBJEXT) ++ eblcheckreloctargettype.$(OBJEXT) \ ++ ebl_data_marker_symbol.$(OBJEXT) + am_libebl_a_OBJECTS = $(am__objects_1) + libebl_a_OBJECTS = $(am_libebl_a_OBJECTS) + AM_V_P = $(am__v_P_@AM_V@) +@@ -405,7 +406,8 @@ + eblsysvhashentrysize.c eblauxvinfo.c eblcheckobjattr.c \ + ebl_check_special_section.c ebl_syscall_abi.c eblabicfi.c \ + eblstother.c eblinitreg.c ebldwarftoregno.c eblnormalizepc.c \ +- eblunwind.c eblresolvesym.c eblcheckreloctargettype.c ++ eblunwind.c eblresolvesym.c eblcheckreloctargettype.c \ ++ ebl_data_marker_symbol.c + + libebl_a_SOURCES = $(gen_SOURCES) + noinst_HEADERS = libeblP.h ebl-hooks.h +diff -ru elfutils-0.169.orig/tests/Makefile.in elfutils-0.169/tests/Makefile.in +--- elfutils-0.169.orig/tests/Makefile.in 2017-07-21 12:49:56.849082894 +0200 ++++ elfutils-0.169/tests/Makefile.in 2017-07-21 12:50:44.461029838 +0200 +@@ -139,17 +139,18 @@ + run-strip-test4.sh run-strip-test5.sh run-strip-test6.sh \ + run-strip-test7.sh run-strip-test8.sh run-strip-test9.sh \ + run-strip-test10.sh run-strip-test11.sh run-strip-nothing.sh \ +- run-strip-groups.sh run-strip-reloc.sh run-strip-strmerge.sh \ +- run-strip-nobitsalign.sh run-strip-remove-keep.sh \ +- run-unstrip-test.sh run-unstrip-test2.sh run-unstrip-test3.sh \ +- run-unstrip-test4.sh run-unstrip-M.sh run-elfstrmerge-test.sh \ +- run-ecp-test.sh run-ecp-test2.sh run-alldts.sh \ +- run-elflint-test.sh run-elflint-self.sh run-ranlib-test.sh \ +- run-ranlib-test2.sh run-ranlib-test3.sh run-ranlib-test4.sh \ +- run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \ +- run-find-prologues.sh run-allregs.sh run-addrcfi.sh \ +- run-nm-self.sh run-readelf-self.sh run-readelf-test1.sh \ +- run-readelf-test2.sh run-readelf-test3.sh run-readelf-test4.sh \ ++ run-strip-g.sh run-strip-groups.sh run-strip-reloc.sh \ ++ run-strip-strmerge.sh run-strip-nobitsalign.sh \ ++ run-strip-remove-keep.sh run-unstrip-test.sh \ ++ run-unstrip-test2.sh run-unstrip-test3.sh run-unstrip-test4.sh \ ++ run-unstrip-M.sh run-elfstrmerge-test.sh run-ecp-test.sh \ ++ run-ecp-test2.sh run-alldts.sh run-elflint-test.sh \ ++ run-elflint-self.sh run-ranlib-test.sh run-ranlib-test2.sh \ ++ run-ranlib-test3.sh run-ranlib-test4.sh run-addrscopes.sh \ ++ run-strings-test.sh run-funcscopes.sh run-find-prologues.sh \ ++ run-allregs.sh run-addrcfi.sh run-nm-self.sh \ ++ run-readelf-self.sh run-readelf-test1.sh run-readelf-test2.sh \ ++ run-readelf-test3.sh run-readelf-test4.sh \ + run-readelf-twofiles.sh run-readelf-macro.sh \ + run-readelf-loc.sh run-readelf-aranges.sh run-readelf-line.sh \ + run-readelf-z.sh run-native-test.sh run-bug1-test.sh \ +@@ -1046,7 +1047,7 @@ + run-strip-test4.sh run-strip-test5.sh run-strip-test6.sh \ + run-strip-test7.sh run-strip-test8.sh run-strip-groups.sh \ + run-strip-test9.sh run-strip-test10.sh run-strip-test11.sh \ +- run-strip-nothing.sh run-strip-remove-keep.sh \ ++ run-strip-nothing.sh run-strip-remove-keep.sh run-strip-g.sh \ + run-strip-strmerge.sh run-strip-nobitsalign.sh \ + testfile-nobitsalign.bz2 testfile-nobitsalign.strip.bz2 \ + run-strip-reloc.sh hello_i386.ko.bz2 hello_x86_64.ko.bz2 \ +@@ -2340,6 +2341,13 @@ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ ++ "$$tst" $(AM_TESTS_FD_REDIRECT) ++run-strip-g.sh.log: run-strip-g.sh ++ @p='run-strip-g.sh'; \ ++ b='run-strip-g.sh'; \ ++ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ ++ --log-file $$b.log --trs-file $$b.trs \ ++ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) + run-strip-groups.sh.log: run-strip-groups.sh + @p='run-strip-groups.sh'; \ diff --git a/elfutils.spec b/elfutils.spec index e7370df..d8a827d 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,7 +1,7 @@ Name: elfutils Summary: A collection of utilities and DSOs to handle ELF files and DWARF data Version: 0.169 -%global baserelease 5 +%global baserelease 6 URL: http://elfutils.org/ %global source_url ftp://sourceware.org/pub/elfutils/%{version}/ License: GPLv3+ and (GPLv2+ or LGPLv3+) @@ -27,6 +27,7 @@ Patch2: elfutils-0.169-dup-shstrtab.patch Patch3: elfutils-0.169-strip-empty.patch Patch4: elfutils-0.169-strip-keep-remove-section.patch Patch5: elfutils-0.169-s390x-ptrace.patch +Patch6: elfutils-0.169-strip-data-marker-symbols.patch Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release} @@ -183,6 +184,7 @@ cp %SOURCE1 %SOURCE2 tests/ %patch3 -p1 -b .strip_empty %patch4 -p1 -b .strip_keep_remove %patch5 -p1 -b .s390_ptrace +%patch6 -p1 -b .data_markers find . -name \*.sh ! -perm -0100 -print | xargs chmod +x @@ -313,6 +315,9 @@ rm -rf ${RPM_BUILD_ROOT} %endif %changelog +* Fri Jul 21 2017 Mark Wielaard - 0.169-6 +- Add elfutils-0.169-strip-data-marker-symbols.patch. + * Mon Jul 17 2017 Mark Wielaard - 0.169-5 - Fix build on s390 (ptrace.h). Add elfutils-0.169-s390x-ptrace.patch.