From e86763bac26f5d8934d537c34d52349ed8f27dee Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 22 Feb 2013 15:35:05 +0100 Subject: [PATCH] 0.155-4 Replace elfutils-0.155-binutils-pr-ld-13621.patch with upstream fix. --- elfutils-0.155-binutils-pr-ld-13621.patch | 76 ++++++++++++++++++----- elfutils.spec | 5 +- 2 files changed, 65 insertions(+), 16 deletions(-) diff --git a/elfutils-0.155-binutils-pr-ld-13621.patch b/elfutils-0.155-binutils-pr-ld-13621.patch index 7f99ac0..3c6d92a 100644 --- a/elfutils-0.155-binutils-pr-ld-13621.patch +++ b/elfutils-0.155-binutils-pr-ld-13621.patch @@ -1,16 +1,62 @@ -diff --git a/tests/run-elflint-self.sh b/tests/run-elflint-self.sh -index 4b01008..7a5f0c8 100755 ---- a/tests/run-elflint-self.sh -+++ b/tests/run-elflint-self.sh -@@ -18,4 +18,11 @@ - - . $srcdir/test-subr.sh - -+# Makes sure we exit cleanly even when we don't... -+clean_exit() -+{ -+ if test $? != 0; then echo "binutils PR ld/13621 workaround"; exit 0; fi -+} -+trap clean_exit EXIT +commit 3bdc16ce98295463c071192eab2ec611a8edc508 +Author: Mark Wielaard +Date: Wed Feb 6 16:20:17 2013 +0100 + + elflint: Add two more symbols to gnuld list of allowed bad values. + + Add __bss_start and __TMC_END__ to the list of symbols allowed to have + out of section values because of the following GNU ld bug: + http://sourceware.org/bugzilla/show_bug.cgi?id=13621. + Allow them to appear in either .symtab or .dynsym, but only when they + are zero sized. It is impossible to define a general rule for this bug, + but this should catch most common issues that are mostly harmless + because the symbols signify the removed section was empty to being with. + This catches at least all symbols often flagged in the tests. + + Signed-off-by: Mark Wielaard + +diff --git a/src/ChangeLog b/src/ChangeLog +index f3f9b51..7d7b66f 100644 +--- a/src/ChangeLog ++++ b/src/ChangeLog +@@ -1,3 +1,10 @@ ++2013-02-06 Mark Wielaard + - testrun_on_self ../src/elflint --quiet --gnu-ld ++ * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the ++ list of symbols allowed to have out of section values because of ++ GNU ld bugs in either .symtab or .dynsym, but only when they are ++ zero sized. ++ + 2012-08-27 Mark Wielaard + + * readelf.c (print_debug_macro_section): Print offset as PRIx64. +diff --git a/src/elflint.c b/src/elflint.c +index 4084987..bc5ed33 100644 +--- a/src/elflint.c ++++ b/src/elflint.c +@@ -767,15 +767,22 @@ section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"), + { + /* GNU ld has severe bugs. When it decides to remove + empty sections it leaves symbols referencing them +- behind. These are symbols in .symtab. */ ++ behind. These are symbols in .symtab or .dynsym ++ and for the named symbols have zero size. See ++ sourceware PR13621. */ + if (!gnuld +- || strcmp (section_name (ebl, idx), ".symtab") ++ || (strcmp (section_name (ebl, idx), ".symtab") ++ && strcmp (section_name (ebl, idx), ++ ".dynsym")) ++ || sym->st_size != 0 + || (strcmp (name, "__preinit_array_start") != 0 + && strcmp (name, "__preinit_array_end") != 0 + && strcmp (name, "__init_array_start") != 0 + && strcmp (name, "__init_array_end") != 0 + && strcmp (name, "__fini_array_start") != 0 +- && strcmp (name, "__fini_array_end") != 0)) ++ && strcmp (name, "__fini_array_end") != 0 ++ && strcmp (name, "__bss_start") != 0 ++ && strcmp (name, "__TMC_END__") != 0)) + ERROR (gettext ("\ + section [%2d] '%s': symbol %zu: st_value out of bounds\n"), + idx, section_name (ebl, idx), cnt); diff --git a/elfutils.spec b/elfutils.spec index 6bb65b5..0c8c549 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,7 +1,7 @@ Name: elfutils Summary: A collection of utilities and DSOs to handle compiled objects Version: 0.155 -%global baserelease 3 +%global baserelease 4 URL: https://fedorahosted.org/elfutils/ %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/ License: GPLv3+ and (GPLv2+ or LGPLv3+) @@ -331,6 +331,9 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Fri Feb 22 2013 Mark Wielaard - 0.155-4 +- Replace elfutils-0.155-binutils-pr-ld-13621.patch with upstream fix. + * Thu Jan 24 2013 Mark Wielaard - 0.155-3 - Backport sizeof-pointer-memaccess upstream fixes.