* elf32-sh.c (allocate_dynrelocs): Don't allocate dynamic
authorKaz Kojima <kkojima@rr.iij4u.or.jp>
Tue, 17 Apr 2012 21:58:51 +0000 (21:58 +0000)
committerKaz Kojima <kkojima@rr.iij4u.or.jp>
Tue, 17 Apr 2012 21:58:51 +0000 (21:58 +0000)
relocations when LE conversion happens on the IE tls symbol.

bfd/ChangeLog
bfd/elf32-sh.c

index e9ac9934808c5a3173f945165ae2f37b78199094..dacde6d5fc427fa2a52632985a42d93064cb8469 100644 (file)
@@ -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
index 9bc2dd5a7949ec92cab4acd4843849749a857bb9..87d4e4fcbc5e3370c8345fca278169674012b201 100644 (file)
@@ -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)