* elf-bfd.h (SYMBOL_REFERENCES_LOCAL): Remove most of comment.
authorAlan Modra <amodra@gmail.com>
Thu, 26 May 2011 04:28:20 +0000 (04:28 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 26 May 2011 04:28:20 +0000 (04:28 +0000)
* elflink.c (_bfd_elf_symbol_refs_local_p): Expand
local_protected comment.

bfd/ChangeLog
bfd/elf-bfd.h
bfd/elflink.c

index 1b049994b967cb665a419dac4e0e8d81e95a517e..82ac7f62d58157bcf98d5cdce5649ce802b9f7c7 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-26  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (SYMBOL_REFERENCES_LOCAL): Remove most of comment.
+       * elflink.c (_bfd_elf_symbol_refs_local_p): Expand
+       local_protected comment.
+
 2011-05-25  Tristan Gingold  <gingold@adacore.com>
 
        * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec)
index b34845be3a045f7cb2ae0641e7ee1077d1ecbdc4..59b6e72c62f771dbc2440f253e8993a9420dc06c 100644 (file)
@@ -232,11 +232,7 @@ struct elf_link_hash_entry
 };
 
 /* Will references to this symbol always reference the symbol
-   in this object?  STV_PROTECTED is excluded from the visibility test
-   here so that function pointer comparisons work properly.  Since
-   function symbols not defined in an app are set to their .plt entry,
-   it's necessary for shared libs to also reference the .plt even
-   though the symbol is really local to the shared lib.  */
+   in this object?  */
 #define SYMBOL_REFERENCES_LOCAL(INFO, H) \
   _bfd_elf_symbol_refs_local_p (H, INFO, 0)
 
index 4675aab82ad354ae692a6c6334005a324d37f3e6..e8a6840c158102949e4838764e988deb15decc9a 100644 (file)
@@ -2881,8 +2881,10 @@ _bfd_elf_symbol_refs_local_p (struct elf_link_hash_entry *h,
     return TRUE;
 
   /* Function pointer equality tests may require that STV_PROTECTED
-     symbols be treated as dynamic symbols, even when we know that the
-     dynamic linker will resolve them locally.  */
+     symbols be treated as dynamic symbols.  If the address of a
+     function not defined in an executable is set to that function's
+     plt entry in the executable, then the address of the function in
+     a shared library must also be the plt entry in the executable.  */
   return local_protected;
 }