summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@rr.iij4u.or.jp>2012-04-17 21:58:50 +0000
committerKaz Kojima <kkojima@rr.iij4u.or.jp>2012-04-17 21:58:50 +0000
commit051deafb93866d0145be7a02b561ea1a39caa2f2 (patch)
tree2b89afaa722a31dd1b70959edb5338b75ff396a7 /bfd
parent308a1847562142d68f6a174ca0eccae72490c651 (diff)
downloadgdb-051deafb93866d0145be7a02b561ea1a39caa2f2.tar.gz
* elf32-sh.c (allocate_dynrelocs): Don't allocate dynamic
relocations when LE conversion happens on the IE tls symbol.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-sh.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e9ac9934808..dacde6d5fc4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * elf32-sh.c (allocate_dynrelocs): Don't allocate dynamic
+ relocations when LE conversion happens on the IE tls symbol.
+
2012-04-17 Roland McGrath <mcgrathr@google.com>
* elf64-x86-64.c (elf_x86_64_nacl_plt0_entry): Fix nop padding
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 9bc2dd5a794..87d4e4fcbc5 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -3104,6 +3104,9 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
&& (got_type == GOT_NORMAL || got_type == GOT_FUNCDESC))
htab->srofixup->size += 4;
}
+ /* No dynamic relocations required when IE->LE conversion happens. */
+ else if (got_type == GOT_TLS_IE && !h->def_dynamic && !info->shared)
+ ;
/* R_SH_TLS_IE_32 needs one dynamic relocation if dynamic,
R_SH_TLS_GD needs one if local symbol and two if global. */
else if ((got_type == GOT_TLS_GD && h->dynindx == -1)