[elfutils] 0.155-4 Replace elfutils-0.155-binutils-pr-ld-13621.patch with upstream fix.

Mark Wielaard mjw at fedoraproject.org
Fri Feb 22 14:35:09 UTC 2013


commit e86763bac26f5d8934d537c34d52349ed8f27dee
Author: Mark Wielaard <mjw at redhat.com>
Date:   Fri Feb 22 15:35:05 2013 +0100

    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 <mjw at redhat.com>
+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 <mjw at redhat.com>
+
+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  <mjw at redhat.com>
 +
- 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  <mjw at redhat.com>
+ 
+ 	* 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 <mjw at redhat.com> - 0.155-4
+- Replace elfutils-0.155-binutils-pr-ld-13621.patch with upstream fix.
+
 * Thu Jan 24 2013 Mark Wielaard <mjw at redhat.com> - 0.155-3
 - Backport sizeof-pointer-memaccess upstream fixes.
 


More information about the scm-commits mailing list