bfd/elf32-arm.c: Improve comment in elf32_arm_finish_dynamic_symbol

Improve the comment discussing why we clear st_value for some
symbols.

bfd/ChangeLog:

2015-02-03  Will Newton  <will.newton@linaro.org>

	* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Improve
	  comment discussing why we clear st_value for some symbols.
This commit is contained in:
Will Newton
2015-02-03 12:51:14 +00:00
parent 8e02d7f520
commit 3a63561744
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2015-02-03 Will Newton <will.newton@linaro.org>
* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Improve
comment discussing why we clear st_value for some symbols.
2015-02-02 Kuan-Lin Chen <kuanlinchentw@gmail.com>
* elf32-nds32.c (nds32_get_section_contents): Add one more argument.

View File

@ -14238,12 +14238,16 @@ elf32_arm_finish_dynamic_symbol (bfd * output_bfd,
if (!h->def_regular)
{
/* Mark the symbol as undefined, rather than as defined in
the .plt section. Leave the value alone. */
the .plt section. */
sym->st_shndx = SHN_UNDEF;
/* If the symbol is weak, we do need to clear the value.
/* If the symbol is weak we need to clear the value.
Otherwise, the PLT entry would provide a definition for
the symbol even if the symbol wasn't defined anywhere,
and so the symbol would never be NULL. */
and so the symbol would never be NULL. Leave the value if
there were any relocations where pointer equality matters
(this is a clue for the dynamic linker, to make function
pointer comparisons work between an application and shared
library). */
if (!h->ref_regular_nonweak || !h->pointer_equality_needed)
sym->st_value = 0;
}