public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug other/48922] New: invalid dwarf2 on ia64 with very old gas
@ 2011-05-07  3:28 PHHargrove at lbl dot gov
  2011-07-23 23:20 ` [Bug other/48922] " pinskia at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: PHHargrove at lbl dot gov @ 2011-05-07  3:28 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48922

           Summary: invalid dwarf2 on ia64 with very old gas
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: PHHargrove@lbl.gov


I recently built gcc-4.6.0 on an SGI Altix (ia64-unknown-linux-gnu) which has a
very old binutils:

$ as --version
GNU assembler 2.15.90.0.1.1 20040303 (SuSE Linux)
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `ia64-suse-linux'.

This assembler is warning thousands of times on the .s files generated by
gcc-4.6.0.  There are two distinct warnings seen:

/tmp/ccDiWUIH.s:343: Warning: rest of line ignored; first ignored character is
`i'
/tmp/ccDiWUIH.s:705: Warning: rest of line ignored; first ignored character is
`d'

I traced these to the '.loc' lines in the .s file(s) and was able to "fix" the
problem in my build with the following brute-force approach:

--- gcc-4.6.0/gcc/dwarf2out.c.orig      2011-05-06 23:07:15.987896522 -0400
+++ gcc-4.6.0/gcc/dwarf2out.c   2011-05-06 22:49:28.496973178 -0400
@@ -22023,6 +22023,7 @@
        {
          /* Emit the .loc directive understood by GNU as.  */
          fprintf (asm_out_file, "\t.loc %d %d 0", file_num, line);
+#if 0
          if (is_stmt != last_is_stmt)
            {
              fprintf (asm_out_file, " is_stmt %d", is_stmt ? 1 : 0);
@@ -22030,6 +22031,7 @@
            }
          if (SUPPORTS_DISCRIMINATOR && discriminator != 0)
            fprintf (asm_out_file, " discriminator %d", discriminator);
+#endif
          fputc ('\n', asm_out_file);

          /* Indicate that line number info exists.  */


I know this is NOT the proper approach, but I am not familiar enough w/ gcc
internals for a proper fix.  I suppose one should be doing a configure-time
check for the assembler's support for "is_stmt" and "discriminator".

Of course, I suspect installing a more recent binutils is a "better" fix, but
my approach above was faster for my purposes.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-12-16  2:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-07  3:28 [Bug other/48922] New: invalid dwarf2 on ia64 with very old gas PHHargrove at lbl dot gov
2011-07-23 23:20 ` [Bug other/48922] " pinskia at gcc dot gnu.org
2011-12-16  1:22 ` pinskia at gcc dot gnu.org
2011-12-16  2:15 ` PHHargrove at lbl dot gov
2011-12-16  2:16 ` [Bug bootstrap/48922] " pinskia at gcc dot gnu.org

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).