* elflink.c (_bfd_elf_merge_symbol): Discard references to TLS
authorKazu Hirata <kazu@codesourcery.com>
Mon, 2 Oct 2006 22:52:19 +0000 (22:52 +0000)
committerKazu Hirata <kazu@codesourcery.com>
Mon, 2 Oct 2006 22:52:19 +0000 (22:52 +0000)
symbols from the --just-syms file.

bfd/ChangeLog
bfd/elflink.c

index dee86ea263fc8f6b327f6b1c46fc48100637d36f..9acdf86781a0a4b2ebd62d589a7cabc50597e126 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Discard references to TLS
+       symbols from the --just-syms file.
+
 2006-10-01  Alan Modra  <amodra@bigpond.net.au>
 
        * elf64-ppc.c (ppc64_elf_build_stubs): Test glink size for
index dde28438bbd72b7b671f4d3342787b5d45445679..1df583ffb3d8d021408ba897928b9f04cd0cf22c 100644 (file)
@@ -832,6 +832,15 @@ _bfd_elf_merge_symbol (bfd *abfd,
   sec = *psec;
   bind = ELF_ST_BIND (sym->st_info);
 
+  /* Silently discard TLS symbols from --just-syms.  There's no way to
+     combine a static TLS block with a new TLS block for this executable.  */
+  if (ELF_ST_TYPE (sym->st_info) == STT_TLS
+      && sec->sec_info_type == ELF_INFO_TYPE_JUST_SYMS)
+    {
+      *skip = TRUE;
+      return TRUE;
+    }
+
   if (! bfd_is_und_section (sec))
     h = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, FALSE, FALSE);
   else