Dwarf views broken on ia64?
Jan Beulich
JBeulich@suse.com
Wed May 23 07:27:00 GMT 2018
Alexandre, Nick,
one of the two "view number mismatch" errors triggers all over the place
in building target libraries for ia64 in a cross build of gcc 8.1.0 on x86. I
have no idea whether gas or gcc are at fault. To distinguish the two
diagnostics I've added the patch below (may be worth to consider for
master); to allow the build to complete I've also lowered the one that
triggers to a warning (I don't think this would be an appropriate change
in general).
Attached an example of a produced assembly file triggering the
diagnostic twice.
Solution suggestions appreciated,
Jan
--- binutils-2.30/gas/dwarf2dbg.c
+++ 2.30/gas/dwarf2dbg.c
@@ -368,7 +368,18 @@ set_or_check_view (struct line_entry *e,
if (viewx.X_op == O_constant)
{
if (!value->X_add_number != !viewx.X_add_number)
- as_bad (_("view number mismatch"));
+ {
+ char val_buf [sizeof (viewx.X_add_number) * 3 + 2];
+ char vwx_buf [sizeof (viewx.X_add_number) * 3 + 2];
+
+ if (sizeof (viewx.X_add_number) > sizeof (bfd_vma))
+ abort ();
+
+ sprintf_vma (val_buf, (bfd_vma) value->X_add_number);
+ sprintf_vma (vwx_buf, (bfd_vma) viewx.X_add_number);
+ as_warn (_("view number mismatch (0x%s vs 0x%s)"),
+ vwx_buf, val_buf);
+ }
}
/* Record the expression to check it later. It is the result of
a logical not, thus 0 or 1. We just add up all such deferred
@@ -2265,7 +2276,13 @@ dwarf2dbg_final_check (void)
failed = resolve_symbol_value (sym);
if (!symbol_resolved_p (sym) || failed)
{
- as_bad (_("view number mismatch"));
+ const char *name = S_GET_NAME (sym);
+
+ if (name)
+ as_bad (_("view number mismatch for `%s'"),
+ decode_local_label_name ((char *) name));
+ else
+ as_bad (_("view number mismatch"));
break;
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libgcc2.s
Type: application/octet-stream
Size: 24533 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20180523/f762c16b/attachment.obj>
More information about the Binutils
mailing list