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] Add discriminator support to gas .loc directive


H.J. Lu wrote:
> On Tue, Jun 30, 2009 at 4:23 AM, Dave
> Korn<dave.korn.cygwin@googlemail.com> wrote:
>> Cary Coutant wrote:
>>>>>        * NEWS: Add item about discriminator support.
>>>>>        * dwarf2dbg.h (struct dwarf2_line_info): Add discriminator field.
>>>>>        * dwarf2dbg.c (current): Add discriminator field.
>>>>>        (dwarf2_where): Copy discriminator value.
>>>>>        (dwarf2_consume_line_info): Set discriminator to 0.
>>>>>        (dwarf2_directive_loc): Process discriminator sub-op.
>>>>>        (out_leb128): New function.
>>>>>        (process_entries): Output DW_LNE_set_discriminator.
>>>>>        * doc/as.texinfo: Add discriminator operand to .loc directive.
>>>>>        * testsuite/gas/lns/lns-common-1.d: Add test for discriminator.
>>>>>        * testsuite/gas/lns/lns-common-1.s: Likewise.
>>>> Approved - please apply.
>>> Thanks! Committed.
>>    Hi Gary,
>>
>>  Now that GCC HEAD has begun actually generating this form of directives, we
>> are seeing a lot of these errors on Cygwin:
>>
>> libtool: link: /gnu/gcc/obj-patched3/./gcc/gcj
>> -B/gnu/gcc/obj-patched3/i686-pc-cygwin/libjava/ -B/gnu/gcc/obj-patched3/./gcc/
>> -B/opt/gcc-tools/i686-pc-cygwin/bin/ -B/opt/gcc-tools/i686-pc-cygwin/lib/
>> -isystem /opt/gcc-tools/i686-pc-cygwin/include -isystem
>> /opt/gcc-tools/i686-pc-cygwin/sys-include -ffloat-store -fomit-frame-pointer
>> -Usun -g -O2 -o .libs/jv-convert.exe --main=gnu.gcj.convert.Convert
>> -shared-libgcc  -L/gnu/gcc/obj-patched3/i686-pc-cygwin/libjava/.libs
>> -L/gnu/gcc/obj-patched3/i686-pc-cygwin/libjava ./.libs/libgcj.a -ldl
>> -L/opt/gcc-tools/lib/gcc/i686-pc-cygwin/4.5.0
>> /opt/gcc-tools/bin/ld: Dwarf Error: mangled line number section.
>>
>>  This turns out to be because you overlooked to add support for the new
>> DW_LNE_ extended opcode in the decoding loop at
>> bfd/dwarf2.c:decode_line_info()#1334.
>>
> 
> Why doesn't it fail on Linux?

  I don't know.  Does GCC HEAD on Linux maybe not generate the discriminator
form of ".loc" directive in the same circumstances as the Cygwin target?  In
an entire bootstrap, the first (and possibly only) instance I ran into was
this one in libffi, so it may be something that's only infrequently emitted.

  Alternatively, I think it may not cause a link failure on its own; if there
hadn't by chance also been undefined references in the same file for an
unrelated reason to bring my bootstrap crashing to a halt, I might easily have
overlooked that message in the build log.

    cheers,
      DaveK


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