[patch bfd]: Don't emit auxilary information for discared sections for pe-coff

Kai Tietz ktietz70@googlemail.com
Wed Oct 5 07:55:00 GMT 2011


Ping

2011/9/30 Kai Tietz <ktietz70@googlemail.com>:
> 2011/9/29 Alan Modra <amodra@gmail.com>:
>> On Thu, Sep 29, 2011 at 11:08:00AM +0200, Kai Tietz wrote:
>>> > This hunk seems unnecessary, given that coff_write_alien_symbol calls
>>> > coff_write_symbol.
>>>
>>> Well, the difference here is that for debugging-symbols don't discard
>>> the name and are entering into string-table.  Maybe we should set here
>>> in this condition symbol->name = "";?
>>
>> Oh, I see.  Ignore this comment of mine.
>
> Hi Alan,
>
> So, I reworked this patch as suggest by you to check for linker-flag
> skip_discared.
> Additionally I check now for any kind of discarded section, not only
> linked once ones.
>
> ChangeLog
>
> 2011-09-30  Kai Tietz  <ktietz@redhat.com>
>
>        * coffgen.c (coff_write_alien_symbol): Don't write
>        symbol for discarded sections, if strip_discarded isn't
>        explicit set to false.
>        (coff_write_native_symbol): Likewise.
>
> Regression tested for x86_64-w64-mingw32, i686-w64-mingw32, and
> i686-pc-cygwin.  Ok for apply?
>
> Regards,
> Kai
>
> Index: coffgen.c
> ===================================================================
> RCS file: /cvs/src/src/bfd/coffgen.c,v
> retrieving revision 1.80
> diff -u -r1.80 coffgen.c
> --- coffgen.c   17 Aug 2011 00:39:39 -0000      1.80
> +++ coffgen.c   30 Sep 2011 07:55:21 -0000
> @@ -996,7 +996,15 @@
>   asection *output_section = symbol->section->output_section
>                               ? symbol->section->output_section
>                               : symbol->section;
> +  struct bfd_link_info *link_info = coff_data (abfd)->link_info;
>
> +  if ((!link_info || link_info->strip_discarded)
> +      && !bfd_is_abs_section (symbol->section)
> +      && symbol->section->output_section == bfd_abs_section_ptr)
> +    {
> +      symbol->name = "";
> +      return TRUE;
> +    }
>   native = &dummy;
>   native->u.syment.n_type = T_NULL;
>   native->u.syment.n_flags = 0;
> @@ -1061,6 +1069,15 @@
>  {
>   combined_entry_type *native = symbol->native;
>   alent *lineno = symbol->lineno;
> +  struct bfd_link_info *link_info = coff_data (abfd)->link_info;
> +
> +  if ((!link_info || link_info->strip_discarded)
> +      && !bfd_is_abs_section (symbol->symbol.section)
> +      && symbol->symbol.section->output_section == bfd_abs_section_ptr)
> +    {
> +      symbol->symbol.name = "";
> +      return TRUE;
> +    }
>
>   /* If this symbol has an associated line number, we must store the
>      symbol index in the line number field.  We also tag the auxent to
>



-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination



More information about the Binutils mailing list