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/13180: strip -g -> objdump: bad value


On Mon, Sep 12, 2011 at 02:50:07PM -0700, H.J. Lu wrote:
> +      /* Remove the group section if all members are removed.  */
> +      if (!bfd_get_full_section_contents (abfd, sec, &memhunk))
> +	{
> +	  status = 1;
> +	  bfd_nonfatal_message (NULL, abfd, sec, NULL);
> +	  return TRUE;
> +	}
> +
> +      src = memhunk + bfd_section_size (abfd, sec) - 4;
> +      for (; src > memhunk; src -= 4)
> +	{
> +	  unsigned int idx;
> +	  Elf_Internal_Shdr *shdr;
> +	  idx = H_GET_32 (abfd, src);
> +	  shdr = elf_elfsections (abfd)[idx];
> +	  if (!is_strip_section_1 (abfd, shdr->bfd_section))
> +	    break;
> +	}
> +
> +      free (memhunk);
> +
> +      if (src == memhunk)
> +	return TRUE;

I think it would be better if you didn't duplicate the low level
group handling code here.  Iterate over the group sections using
elf_next_in_group.

-- 
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]