- binutils-devel now requires zlib-devel (BZ 463101 comment 5).
- Fix complains on .gnu.linkonce.r relocations to their discarded .gnu.linkonce.t counterparts.
This commit is contained in:
parent
4ac1f8c45a
commit
a4096d768f
77
binutils-2.18.50.0.9-linkonce-r-discard.patch
Normal file
77
binutils-2.18.50.0.9-linkonce-r-discard.patch
Normal file
@ -0,0 +1,77 @@
|
||||
http://sourceware.org/ml/binutils/2008-10/msg00235.html
|
||||
|
||||
2008-10-26 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* elflink.c (elf_link_input_bfd): Handle pre-COMDAT g++-3.4 relocations
|
||||
in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.
|
||||
|
||||
2008-10-26 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* ld-elf/linkoncerdiff.d, ld-elf/linkoncerdiff1.s,
|
||||
ld-elf/linkoncerdiff2.s: New.
|
||||
|
||||
--- bfd/elflink.c 2008-10-22 21:08:20.000000000 +0200
|
||||
+++ bfd/elflink.c 2008-10-29 18:18:43.000000000 +0100
|
||||
@@ -7649,7 +7649,23 @@ elf_link_input_bfd (struct elf_final_lin
|
||||
if ((sec = *ps) != NULL && elf_discarded_section (sec))
|
||||
{
|
||||
BFD_ASSERT (r_symndx != 0);
|
||||
- if (action_discarded & COMPLAIN)
|
||||
+
|
||||
+ /* Do not complain on unresolved relocations in
|
||||
+ `.gnu.linkonce.r.F' referencing its discarded
|
||||
+ `.gnu.linkonce.t.F' counterpart - g++-3.4 specific as
|
||||
+ g++-4.x is using COMDAT groups (without the
|
||||
+ `.gnu.linkonce' prefix) instead. `.gnu.linkonce.r.*'
|
||||
+ were the `.rodata' part of its matching
|
||||
+ `.gnu.linkonce.t.*'. If `.gnu.linkonce.r.F' is not
|
||||
+ discarded with its `.gnu.linkonce.t.F' being discarded
|
||||
+ means we chose one-only `.gnu.linkonce.t.F' section
|
||||
+ from an other file not needing any `.gnu.linkonce.r.F'
|
||||
+ and thus `.gnu.linkonce.r.F' could be in fact also
|
||||
+ discarded. */
|
||||
+ if ((action_discarded & COMPLAIN)
|
||||
+ && !(CONST_STRNEQ (o->name, ".gnu.linkonce.r.")
|
||||
+ && CONST_STRNEQ (sec->name, ".gnu.linkonce.t.")
|
||||
+ && strcmp (o->name + 16, sec->name + 16) == 0))
|
||||
(*finfo->info->callbacks->einfo)
|
||||
(_("%X`%s' referenced in section `%A' of %B: "
|
||||
"defined in discarded section `%A' of %B\n"),
|
||||
--- ld/testsuite/ld-elf/linkoncerdiff.d 2008-10-22 21:16:04.000000000 +0200
|
||||
+++ ld/testsuite/ld-elf/linkoncerdiff.d 2008-10-29 18:17:07.000000000 +0100
|
||||
@@ -0,0 +1,5 @@
|
||||
+#source: linkoncerdiff1.s
|
||||
+#source: linkoncerdiff2.s
|
||||
+#notarget: arc* d30v* dlx* openrisc* or32* pj*
|
||||
+#ld: -r
|
||||
+#error: `.gnu.linkonce.t.bar' referenced in section `.gnu.linkonce.r.foo' of tmpdir/dump1.o: defined in discarded section `.gnu.linkonce.t.bar' of tmpdir/dump1.o
|
||||
--- ld/testsuite/ld-elf/linkoncerdiff1.s 2008-10-22 21:16:04.000000000 +0200
|
||||
+++ ld/testsuite/ld-elf/linkoncerdiff1.s 2008-10-29 18:17:07.000000000 +0100
|
||||
@@ -0,0 +1,7 @@
|
||||
+ .section .gnu.linkonce.t.foo, "a", %progbits
|
||||
+ .globl symfoo
|
||||
+symfoo:
|
||||
+
|
||||
+ .section .gnu.linkonce.t.bar, "a", %progbits
|
||||
+ .globl symbar
|
||||
+symbar:
|
||||
--- ld/testsuite/ld-elf/linkoncerdiff2.s 2008-10-22 21:16:04.000000000 +0200
|
||||
+++ ld/testsuite/ld-elf/linkoncerdiff2.s 2008-10-29 18:17:07.000000000 +0100
|
||||
@@ -0,0 +1,17 @@
|
||||
+ .section .gnu.linkonce.t.foo, "a", %progbits
|
||||
+1:
|
||||
+ .globl symfoo
|
||||
+symfoo:
|
||||
+ .long 0
|
||||
+
|
||||
+ .section .gnu.linkonce.t.bar, "a", %progbits
|
||||
+2:
|
||||
+ .globl symbar
|
||||
+symbar:
|
||||
+ .long 0
|
||||
+
|
||||
+ .section .gnu.linkonce.r.foo, "a", %progbits
|
||||
+ .long 1b
|
||||
+ .long symfoo
|
||||
+ .long 2b
|
||||
+ .long symbar
|
@ -17,7 +17,7 @@
|
||||
Summary: A GNU collection of binary utilities
|
||||
Name: %{?cross}binutils%{?_with_debug:-debug}
|
||||
Version: 2.18.50.0.9
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
License: GPLv3+
|
||||
Group: Development/Tools
|
||||
URL: http://sources.redhat.com/binutils
|
||||
@ -32,6 +32,7 @@ Patch7: binutils-2.18.50.0.6-version.patch
|
||||
Patch11: binutils-2.18.50.0.9-largefile.patch
|
||||
Patch12: binutils-2.18.50.0.9-set-long-long.patch
|
||||
Patch13: binutils-2.18.50.0.9-upstream.patch
|
||||
Patch14: binutils-2.18.50.0.9-linkonce-r-discard.patch
|
||||
|
||||
%if 0%{?_with_debug:1}
|
||||
# Define this if you want to skip the strip step and preserve debug info.
|
||||
@ -81,6 +82,7 @@ Group: System Environment/Libraries
|
||||
Conflicts: binutils < 2.17.50.0.3-4
|
||||
Requires(post): /sbin/install-info
|
||||
Requires(preun): /sbin/install-info
|
||||
Requires: zlib-devel
|
||||
|
||||
%description devel
|
||||
This package contains BFD and opcodes static libraries and associated
|
||||
@ -103,6 +105,7 @@ to consider using libelf instead of BFD.
|
||||
%patch11 -p0 -b .largefile~
|
||||
%patch12 -p0 -b .set-long-long~
|
||||
%patch13 -p0 -b .upstream~
|
||||
%patch14 -p0 -b .linkonce-r-discard~
|
||||
|
||||
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
|
||||
|
||||
@ -347,6 +350,11 @@ fi
|
||||
%endif # %{isnative}
|
||||
|
||||
%changelog
|
||||
* Thu Oct 30 2008 Jan Kratochvil <jan.kratochvil@redhat.com> 2.18.50.0.9-6
|
||||
- binutils-devel now requires zlib-devel (BZ 463101 comment 5).
|
||||
- Fix complains on .gnu.linkonce.r relocations to their discarded
|
||||
.gnu.linkonce.t counterparts.
|
||||
|
||||
* Mon Sep 22 2008 Jan Kratochvil <jan.kratochvil@redhat.com> 2.18.50.0.9-5
|
||||
- Remove %%makeinstall to comply with the spu-binutils review (BZ 452211).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user