Hi,
applied the patch against the latest package from unstable.
bye,
//mirabilos
--
13:47⎜<tobiasu> if i were omnipotent, i would divide by zero
all day long ;)
(thinking about http://lobacevski.tumblr.com/post/3260866481 by waga)
diff -u binutils-2.21.0.20110216/debian/changelog
binutils-2.21.0.20110216/debian/changelog
--- binutils-2.21.0.20110216/debian/changelog
+++ binutils-2.21.0.20110216/debian/changelog
@@ -1,3 +1,9 @@
+binutils (2.21.0.20110216-2+m68k.1) unreleased; urgency=low
+
+ * d/patches/640_m68k_fix-TLS_GD-relocation: new, temp. (Closes: #611768)
+
+ -- Thorsten Glaser <t...@mirbsd.de> Sun, 27 Feb 2011 15:25:22 +0000
+
binutils (2.21.0.20110216-2) unstable; urgency=low
* Upload to unstable.
diff -u binutils-2.21.0.20110216/debian/patches/series
binutils-2.21.0.20110216/debian/patches/series
--- binutils-2.21.0.20110216/debian/patches/series
+++ binutils-2.21.0.20110216/debian/patches/series
@@ -17,0 +18 @@
+640_m68k_fix-TLS_GD-relocation.patch
only in patch2:
unchanged:
---
binutils-2.21.0.20110216.orig/debian/patches/640_m68k_fix-TLS_GD-relocation.patch
+++ binutils-2.21.0.20110216/debian/patches/640_m68k_fix-TLS_GD-relocation.patch
@@ -0,0 +1,33 @@
+Subject: [M68K] Fix TLS_GD relocation against localized symbol
+From: Andreas Schwab <schwab at redhat dot com>
+
+A TLS_GD relocation is associated with two GOT slots, with the
+relocation value actually being put in the second slot. When adjusting
+this relocation against a localized symbol read the value from the
+second slot, not the first one.
+
+Andreas.
+
+
+2011-02-01 Andreas Schwab <sch...@redhat.com>
+
+ * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): For a TLS_GD
+ relocation read the value from the second GOT slot.
+
+
+Index: binutils-2.21.0.20110216/bfd/elf32-m68k.c
+===================================================================
+--- binutils-2.21.0.20110216.orig/bfd/elf32-m68k.c 2010-10-25
15:54:14.000000000 +0000
++++ binutils-2.21.0.20110216/bfd/elf32-m68k.c 2011-02-27 15:24:46.000000000
+0000
+@@ -4390,6 +4390,11 @@
+ break;
+
+ case R_68K_TLS_GD32:
++ /* The value for this relocation is actually put in
++ the second GOT slot. */
++ relocation = bfd_get_signed_32 (output_bfd,
++ (sgot->contents
++ + got_entry_offset + 4));
+ relocation += dtpoff_base (info);
+ break;
+