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 01/12] Move UNDEFWEAK_NO_DYNAMIC_RELOC to elf-bfd.h


On 10/12/17, H.J. Lu <hjl.tools@gmail.com> wrote:
> Move UNDEFWEAK_NO_DYNAMIC_RELOC to elf-bfd.h so that it can be used by
> other ELF linker backends.
>
> 	* elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Moved to ...
> 	* elf-bfd.h (UNDEFWEAK_NO_DYNAMIC_RELOC): Here.
> 	* elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Removed.
> ---
>  bfd/elf-bfd.h   | 7 +++++++
>  bfd/elf32-ppc.c | 7 -------
>  bfd/elf64-ppc.c | 7 -------
>  3 files changed, 7 insertions(+), 14 deletions(-)
>
> diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
> index c3560ce4fc..f0229d49d4 100644
> --- a/bfd/elf-bfd.h
> +++ b/bfd/elf-bfd.h
> @@ -266,6 +266,13 @@ struct elf_link_hash_entry
>  #define SYMBOL_CALLS_LOCAL(INFO, H) \
>    _bfd_elf_symbol_refs_local_p (H, INFO, 1)
>
> +/* Whether an undefined weak symbol should resolve to its link-time
> +   value, even in PIC or PIE objects.  */
> +#define UNDEFWEAK_NO_DYNAMIC_RELOC(INFO, H)		\
> +  ((H)->root.type == bfd_link_hash_undefweak		\
> +   && (ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT	\
> +       || (INFO)->dynamic_undefined_weak == 0))
> +
>  /* Common symbols that are turned into definitions don't have the
>     DEF_REGULAR flag set, so they might appear to be undefined.
>     Symbols defined in linker scripts also don't have DEF_REGULAR set.  */
> diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
> index ceae344bee..8b32b970cc 100644
> --- a/bfd/elf32-ppc.c
> +++ b/bfd/elf32-ppc.c
> @@ -3178,13 +3178,6 @@ must_be_dyn_reloc (struct bfd_link_info *info,
>      }
>  }
>
> -/* Whether an undefined weak symbol should resolve to its link-time
> -   value, even in PIC or PIE objects.  */
> -#define UNDEFWEAK_NO_DYNAMIC_RELOC(INFO, H)		\
> -  ((H)->root.type == bfd_link_hash_undefweak		\
> -   && (ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT	\
> -       || (INFO)->dynamic_undefined_weak == 0))
> -
>  /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
>     copying dynamic variables from a shared lib into an app's dynbss
>     section, and instead use a dynamic relocation to point into the
> diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
> index 2d25399b51..3f6bff9c7a 100644
> --- a/bfd/elf64-ppc.c
> +++ b/bfd/elf64-ppc.c
> @@ -3835,13 +3835,6 @@ must_be_dyn_reloc (struct bfd_link_info *info,
>      }
>  }
>
> -/* Whether an undefined weak symbol should resolve to its link-time
> -   value, even in PIC or PIE objects.  */
> -#define UNDEFWEAK_NO_DYNAMIC_RELOC(INFO, H)		\
> -  ((H)->root.type == bfd_link_hash_undefweak		\
> -   && (ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT	\
> -       || (INFO)->dynamic_undefined_weak == 0))
> -
>  /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
>     copying dynamic variables from a shared lib into an app's dynbss
>     section, and instead use a dynamic relocation to point into the
> --
> 2.13.6
>
>

I will check it next week if there are no objections.

-- 
H.J.


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