This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] bfd/elfnn-aarch64.c: Set st_value to zero for undefined symbols


On 29 January 2015 at 12:43, Will Newton <will.newton@linaro.org> wrote:
> Unless pointer_equality_needed is set then set st_value to be zero
> for undefined symbols. This relates to BZ #16715.
>
> bfd/ChangeLog:
>
> 2015-01-28  Will Newton  <will.newton@linaro.org>
>
>         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol):
>         Set st_value to zero for undefined symbols unless
>         pointer_equality_needed.
> ---
>  bfd/elfnn-aarch64.c | 6 ++++++
>  1 file changed, 6 insertions(+)

Ping?

> diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
> index 37de7fa..ee718c5 100644
> --- a/bfd/elfnn-aarch64.c
> +++ b/bfd/elfnn-aarch64.c
> @@ -7441,6 +7441,12 @@ elfNN_aarch64_finish_dynamic_symbol (bfd *output_bfd,
>              comparisons work between an application and shared
>              library.  */
>           sym->st_shndx = SHN_UNDEF;
> +         /* If the symbol is weak, we do 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.  */
> +         if (!h->ref_regular_nonweak || !h->pointer_equality_needed)
> +           sym->st_value = 0;
>         }
>      }
>
> --
> 2.1.0
>



-- 
Will Newton
Toolchain Working Group, Linaro


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]