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

Kai Tietz ktietz70@googlemail.com
Thu Sep 29 09:08:00 GMT 2011


2011/9/29 Alan Modra <amodra@gmail.com>:
> On Tue, Sep 27, 2011 at 02:38:19PM +0200, Kai Tietz wrote:
>> diff -u -r1.80 coffgen.c
>> --- bfd/coffgen.c     17 Aug 2011 00:39:39 -0000      1.80
>> +++ bfd/coffgen.c     27 Sep 2011 11:21:47 -0000
>> @@ -921,6 +921,9 @@
>>    void * buf;
>>    bfd_size_type symesz;
>>
>> +  if ((bfd_get_section_flags (abfd, symbol->section) & SEC_LINK_ONCE) != 0
>> +      && symbol->section->output_section == bfd_abs_section_ptr)
>> +    return TRUE;
>
> Conditional on link_info.strip_discarded?

Hmm, ok.  As I see is for strip_discarded the default value true in
ldmain.c file.

>>    if (native->u.syment.n_sclass == C_FILE)
>>      symbol->flags |= BSF_DEBUGGING;
>>
>> @@ -996,7 +999,10 @@
>>    asection *output_section = symbol->section->output_section
>>                              ? symbol->section->output_section
>>                              : symbol->section;
>> -
>> +  if ((bfd_get_section_flags (abfd, symbol->section) & SEC_LINK_ONCE) != 0
>> +                           && symbol->section->output_section
>> +                              == bfd_abs_section_ptr)
>> +    return TRUE;
>
> 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 = "";?

Kai



More information about the Binutils mailing list