Re: [patch, mips, stabs] Do any MIPS targets use stabs?

2013-01-08 Thread Steve Ellcey
On Mon, 2013-01-07 at 12:54 -0800, Steve Ellcey wrote:
> On Mon, 2013-01-07 at 20:38 +, Richard Sandiford wrote:
> 
> > 
> > Ah, sorry, this reminded me of a patch I'd written a year ago and never
> > got around to sanity-checking.  Does it fix the problem for you?
> > 
> > Richard
> 
> It fixes my small test case, I will try it on the full testsuite
> overnight.
> 
> Steve

The full testsuite worked fine too, so I think this should be checked
in.  Given this fix I will probably leave the stab support alone for
now, though I would have no objection if someone wanted to remove it for
MIPS.

Steve Ellcey
sell...@mips.com



Re: [patch, mips, stabs] Do any MIPS targets use stabs?

2013-01-07 Thread Steve Ellcey
On Mon, 2013-01-07 at 20:38 +, Richard Sandiford wrote:

> 
> Ah, sorry, this reminded me of a patch I'd written a year ago and never
> got around to sanity-checking.  Does it fix the problem for you?
> 
> Richard

It fixes my small test case, I will try it on the full testsuite
overnight.

Steve



Re: [patch, mips, stabs] Do any MIPS targets use stabs?

2013-01-07 Thread Steve Ellcey
On Mon, 2013-01-07 at 20:30 +, Richard Sandiford wrote:
> "Steve Ellcey "  writes:
> > While testing all the variations of my mips-mti-elf target I found that
> > a number of debug tests like gcc.dg/debug/trivial.c fail when compiled
> > using a stabs debug flag (-gstabs3 for example) and -mips16.  While running
> > the GNU simulator I get:
> >
> > mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278
> > program stopped with signal 10 (User defined signal 1).
> > FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test
> 
> Do you know why selecting stabs causes an execution failure?
> That shouldn't happen regardless of whether the debug info itself is good.
> 
> I don't mind removing stabs from all MIPS targets, but I'd like to
> understand why we get the execution failure first.
> 
> Richard

No, I don't know why I get the execution failure.  I dug around a bit
but could not figure out what or where the problem was coming from.  I
assume the executable is accessing a bad address or an uninitialized bit
of memory somewhere but I could not figure out where.  The actual
executable code is the same with or without the debug information.  I
don't even know if this is a bug in GCC or in the GNU simulator.  My
inability to figure out where the problem was occurring is the main
reason I started wondering why I even cared about stabs.

Steve Ellcey
sell...@mips.com





Re: [patch, mips, stabs] Do any MIPS targets use stabs?

2013-01-07 Thread Richard Sandiford
Richard Sandiford  writes:
> "Steve Ellcey "  writes:
>> While testing all the variations of my mips-mti-elf target I found that
>> a number of debug tests like gcc.dg/debug/trivial.c fail when compiled
>> using a stabs debug flag (-gstabs3 for example) and -mips16.  While running
>> the GNU simulator I get:
>>
>> mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278
>> program stopped with signal 10 (User defined signal 1).
>> FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test
>>
>> Since I don't actually care about STABS I was looking at undefining 
>> DBX_DEBUGGING_INFO in mips-mti-elf.h and mips-mti-linux.h which makes
>> the failures a moot point for me since I would no longer run the tests
>> with any -stabs flags.
>>
>> But I was wondering, are there any MIPS targets that do use stabs?  If not
>> maybe we should just remove the define of DBX_DEBUGGING_INFO from mips.h
>> instead of undefing it just for my targets.  Opinions?
>
> Do you know why selecting stabs causes an execution failure?
> That shouldn't happen regardless of whether the debug info itself is good.

Ah, sorry, this reminded me of a patch I'd written a year ago and never
got around to sanity-checking.  Does it fix the problem for you?

Richard


Index: gas/config/tc-mips.c
===
--- gas/config/tc-mips.c2012-01-28 14:47:10.0 +
+++ gas/config/tc-mips.c2012-01-28 14:48:14.0 +
@@ -1476,7 +1476,9 @@ static const pseudo_typeS mips_pseudo_ta
   {"section", s_change_section, 0},
   {"short", s_cons, 1},
   {"single", s_float_cons, 'f'},
+  {"stabd", s_mips_stab, 'd'},
   {"stabn", s_mips_stab, 'n'},
+  {"stabs", s_mips_stab, 's'},
   {"text", s_change_sec, 't'},
   {"word", s_cons, 2},
 
@@ -16817,9 +16819,7 @@ s_insn (int ignore ATTRIBUTE_UNUSED)
 static void
 s_mips_stab (int type)
 {
-  if (type == 'n')
-mips_mark_labels ();
-
+  mips_mark_labels ();
   s_stab (type);
 }
 


Re: [patch, mips, stabs] Do any MIPS targets use stabs?

2013-01-07 Thread Richard Sandiford
"Steve Ellcey "  writes:
> While testing all the variations of my mips-mti-elf target I found that
> a number of debug tests like gcc.dg/debug/trivial.c fail when compiled
> using a stabs debug flag (-gstabs3 for example) and -mips16.  While running
> the GNU simulator I get:
>
> mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278
> program stopped with signal 10 (User defined signal 1).
> FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test
>
> Since I don't actually care about STABS I was looking at undefining 
> DBX_DEBUGGING_INFO in mips-mti-elf.h and mips-mti-linux.h which makes
> the failures a moot point for me since I would no longer run the tests
> with any -stabs flags.
>
> But I was wondering, are there any MIPS targets that do use stabs?  If not
> maybe we should just remove the define of DBX_DEBUGGING_INFO from mips.h
> instead of undefing it just for my targets.  Opinions?

Do you know why selecting stabs causes an execution failure?
That shouldn't happen regardless of whether the debug info itself is good.

I don't mind removing stabs from all MIPS targets, but I'd like to
understand why we get the execution failure first.

Richard


[patch, mips, stabs] Do any MIPS targets use stabs?

2013-01-07 Thread Steve Ellcey
While testing all the variations of my mips-mti-elf target I found that
a number of debug tests like gcc.dg/debug/trivial.c fail when compiled
using a stabs debug flag (-gstabs3 for example) and -mips16.  While running
the GNU simulator I get:

mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278
program stopped with signal 10 (User defined signal 1).
FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test

Since I don't actually care about STABS I was looking at undefining 
DBX_DEBUGGING_INFO in mips-mti-elf.h and mips-mti-linux.h which makes
the failures a moot point for me since I would no longer run the tests
with any -stabs flags.

But I was wondering, are there any MIPS targets that do use stabs?  If not
maybe we should just remove the define of DBX_DEBUGGING_INFO from mips.h
instead of undefing it just for my targets.  Opinions?

I saw the discussion about removing STABS completely from GCC, etc. but it
looks like there is still some users who want it on some targets.

Here is my default patch which just undef's it for the mti targets.

Steve Ellcey
sell...@mips.com



2013-01-07  Steve Ellcey  

* config/mips/mips-mti-elf.h: undef DBX_DEBUGGING_INFO.
* config/mips/mips-mti-linux.h: Ditto.


diff --git a/gcc/config/mips/mti-elf.h b/gcc/config/mips/mti-elf.h
index f6b38a5..f90b060 100644
--- a/gcc/config/mips/mti-elf.h
+++ b/gcc/config/mips/mti-elf.h
@@ -41,3 +41,6 @@ along with GCC; see the file COPYING3.  If not see
\
   /* Configuration-independent MIPS rules.  */ \
   BASE_DRIVER_SELF_SPECS
+
+
+#undef DBX_DEBUGGING_INFO
diff --git a/gcc/config/mips/mti-linux.h b/gcc/config/mips/mti-linux.h
index cda9bdc..c12138f 100644
--- a/gcc/config/mips/mti-linux.h
+++ b/gcc/config/mips/mti-linux.h
@@ -45,3 +45,5 @@ along with GCC; see the file COPYING3.  If not see
\
   /* Use the standard linux specs for everything else.  */ \
   LINUX64_DRIVER_SELF_SPECS
+
+#undef DBX_DEBUGGING_INFO