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] PR ld/19579/21306 Properly turn common symbol into definition


On Wed, Apr 05, 2017 at 09:46:38AM -0700, H.J. Lu wrote:
> +bfd_boolean
> +_bfd_elf_define_common_symbol (bfd *output_bfd,
> +			       struct bfd_link_info *info,
> +			       struct bfd_link_hash_entry *h)
> +{
> +  bfd_boolean ret
> +    = bfd_generic_define_common_symbol (output_bfd, info, h);
> +  if (ret)
> +    {
> +      /* Since def_regular may not be set if it is overridden by a
> +	 dynamic definition, we need to set def_regular when it is
> +	 converted to a defined symbol.  */
> +      struct elf_link_hash_entry *eh
> +	= (struct elf_link_hash_entry *) h;
> +      eh->def_regular = 1;
> +    }
> +  return TRUE;
> +}

This fails for ELF targets using the generic linker, like d30v-elf.

Isn't the real bug that somewhere we have code lacking an
ELF_COMMON_DEF_P test?

-- 
Alan Modra
Australia Development Lab, IBM


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