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;
+ 

Reply via email to