From 87458ed22270b99282f2180018c7d121695d7d9e Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Tue, 17 Apr 2012 21:58:51 +0000 Subject: [PATCH] * elf32-sh.c (allocate_dynrelocs): Don't allocate dynamic relocations when LE conversion happens on the IE tls symbol. --- bfd/ChangeLog | 5 +++++ bfd/elf32-sh.c | 3 +++ 2 files changed, 8 insertions(+) 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 + + * elf32-sh.c (allocate_dynrelocs): Don't allocate dynamic + relocations when LE conversion happens on the IE tls symbol. + 2012-04-17 Roland McGrath * 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) -- 2.30.2