From 93b3ac7505631bfe9939ec59135ae5ddfbaca24c Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 22 Feb 2011 15:46:13 +0000 Subject: [PATCH] * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): For a TLS_GD relocation read the value from the second GOT slot. --- bfd/ChangeLog | 5 +++++ bfd/elf32-m68k.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1ab968c295f..a8907a0b02b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2011-02-22 Andreas Schwab + + * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): For a TLS_GD + relocation read the value from the second GOT slot. + 2011-02-15 Tristan Gingold * vms-alpha.c (alpha_vms_link_add_archive_symbols): Add a comment. diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c index 1d9d6a43ebc..b4f7bc2c94c 100644 --- a/bfd/elf32-m68k.c +++ b/bfd/elf32-m68k.c @@ -1,6 +1,6 @@ /* Motorola 68k series support for 32-bit ELF Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -4390,6 +4390,11 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym) 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; -- 2.30.2