From: Bob Wilson <bwilson@tensilica.com>
To: Nick Clifton <nickc@redhat.com>
Cc: binutils@sources.redhat.com
Subject: Re: [PATCH] fix DWARF for ia64
Date: Fri, 16 Nov 2007 19:54:00 -0000 [thread overview]
Message-ID: <473DF39E.2000403@tensilica.com> (raw)
In-Reply-To: <473D803C.1050700@redhat.com>
Nick Clifton wrote:
> Your first patch and this follow on one both look OK, apart from the
> last part of this second patch:
>
> loc.flags |= DWARF2_FLAG_BASIC_BLOCK;
>
> - current.flags &= ~(DWARF2_FLAG_BASIC_BLOCK
> - | DWARF2_FLAG_PROLOGUE_END
> - | DWARF2_FLAG_EPILOGUE_BEGIN);
> -
> + dwarf2_consume_line_info ();
> dwarf2_gen_line_info_1 (label, &loc);
>
> Why are you deleting the update of current.flags ?
It isn't deleted, just moved into the dwarf2_consume_line_info function.
>> Everything passed as expected with one exception: the ld-ia64/line.exp
>> test fails but I see the same failure without any of my changes.
>
> Hmm, I do not see that failure. In fact I get (trimmed slightly for
> email):
>
> Running .../ld-ia64/line.exp ...
> .../gas/as-new -o tmpdir/undefined.o -x .../ld-ia64/undefined.s
> ./ld-new -e start -o tmpdir/undefined tmpdir/undefined.o
> ld-new: warning: cannot find entry symbol start; defaulting to
> 40000000000000b0
> tmpdir/undefined.o: In function `function':
> undefined.c:9: undefined reference to `this_function_is_not_defined'
> ld-new: warning: cannot find entry symbol start; defaulting to
> 40000000000000b0
> tmpdir/undefined.o: In function `function':
> undefined.c:9: undefined reference to `this_function_is_not_defined'
> ld-new: warning: cannot find entry symbol start; defaulting to
> 40000000000000b0
> tmpdir/undefined.o: In function `function':
> undefined.c:9: undefined reference to `this_function_is_not_defined'
> PASS: undefined line
> testcase .../ld-ia64/line.exp completed in 0 seconds
>
>> ld fails to show the source line number in an error message. That
>> does seem suspicious. Is this a known problem?
>
> Suspicious yes. Known problem no. The above test was run for an
> ia64-unknown-linux-gnu toolchain, and I would hope that you would see
> the same results. Can you investigate a little more please ?
It definitely not related to my change. I have again verified that it happens
without any of my changes. I suspect you're using a 64-bit host, since the
problem appears to be related to 32-bit hosts.
Here is what I get:
% ia64-unknown-linux-gnu-ld -e start -o undefined undefined.o
ia64-unknown-linux-gnu-ld: warning: cannot find entry symbol start; defaulting
to 40000000000000b0
ia64-unknown-linux-gnu-ld: BFD (GNU Binutils) 2.18.50.20071116 assertion fail
../../src/bfd/arange-set.c:667
undefined.o: In function `function':
undefined.c:(.text+0x12): undefined reference to `this_function_is_not_defined'
Notice the assertion failure. The following stack trace shows the problem:
#0 splay_tree_insert (sp=0x81814e0, key=176, value=239)
at ../../src/libiberty/splay-tree.c:299
#1 0x08093118 in arange_set_splay_tree_insert (set=0x81814ac,
low=4611686018427388080, high=4611686018427388143, value=0)
at ../../src/bfd/arange-set.c:455
#2 0x08093aff in arange_set_insert (set=0x81814ac, low=4611686018427388080,
high=4611686018427388143, value=0) at ../../src/bfd/arange-set.c:660
#3 0x0808db4d in dwarf2_comp_unit_arange_add (unit=0x8181458,
low=4611686018427388080, high=4611686018427388144)
at ../../src/bfd/dwarf2.c:1014
#4 0x080908e5 in parse_comp_unit (stash=0x8167cc8, unit_length=76,
info_ptr_unit=0x8181104 "L", offset_size=4) at ../../src/bfd/dwarf2.c:2353
#5 0x080920bb in find_line (abfd=0x815fb80, section=0x8161e34, offset=18,
symbol=0x0, symbols=0x8161738, filename_ptr=0xbfc6e314,
functionname_ptr=0xbfc6e310, linenumber_ptr=0xbfc6e30c, addr_size=4,
pinfo=0x815ff9c) at ../../src/bfd/dwarf2.c:3303
#6 0x0809237d in _bfd_dwarf2_find_nearest_line (abfd=0x815fb80,
section=0x8161e34, symbols=0x8161738, offset=18, filename_ptr=0xbfc6e314,
functionname_ptr=0xbfc6e310, linenumber_ptr=0xbfc6e30c, addr_size=0,
pinfo=0x815ff9c) at ../../src/bfd/dwarf2.c:3372
#7 0x080b5280 in _bfd_elf_find_nearest_line (abfd=0x815fb80,
section=0x8161e34, symbols=0x8161738, offset=18, filename_ptr=0xbfc6e314,
functionname_ptr=0xbfc6e310, line_ptr=0xbfc6e30c)
at ../../src/bfd/elf.c:7033
#8 0x08065b48 in vfinfo (fp=0x40168560,
fmt=0x810f30c ": undefined reference to `%T'\n",
arg=0xbfc6e424 "?\026\b", is_warning=1) at ../../src/ld/ldmisc.c:323
#9 0x08066031 in einfo (fmt=0x810f308 "%X%C: undefined reference to `%T'\n")
at ../../src/ld/ldmisc.c:465
#10 0x08060b3e in undefined_symbol (info=0x8147940,
name=0x81676f2 "this_function_is_not_defined", abfd=0x815fb80,
section=0x8161e34, address=18, error=1) at ../../src/ld/ldmain.c:1362
When arange_set_splay_tree_insert calls splay_tree_insert, the 64-bit "low" and
"high" values are truncated to 32-bit "key" and "value".
--Bob
next prev parent reply other threads:[~2007-11-16 19:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-13 19:57 Bob Wilson
2007-11-13 21:47 ` Bob Wilson
2007-11-16 11:34 ` Nick Clifton
2007-11-16 19:54 ` Bob Wilson [this message]
2007-11-17 8:50 ` Nick Clifton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=473DF39E.2000403@tensilica.com \
--to=bwilson@tensilica.com \
--cc=binutils@sources.redhat.com \
--cc=nickc@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).