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

login
register
mail settings
Submitter Steve Ellcey
Date Jan. 7, 2013, 6:27 p.m.
Message ID <99d6779b-5dee-4fac-bc73-26055eaa0857@EXCHHUB01.MIPS.com>
Download mbox | patch
Permalink /patch/210030/
State New
Headers show

Comments

Steve Ellcey - Jan. 7, 2013, 6:27 p.m.
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 0xffffe820 at 0xffffffff80020278
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
sellcey@mips.com



2013-01-07  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mips-mti-elf.h: undef DBX_DEBUGGING_INFO.
	* config/mips/mips-mti-linux.h: Ditto.
Richard Sandiford - Jan. 7, 2013, 8:30 p.m.
"Steve Ellcey " <sellcey@mips.com> 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 0xffffe820 at 0xffffffff80020278
> 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
Steve Ellcey - Jan. 7, 2013, 8:41 p.m.
On Mon, 2013-01-07 at 20:30 +0000, Richard Sandiford wrote:
> "Steve Ellcey " <sellcey@mips.com> 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 0xffffe820 at 0xffffffff80020278
> > 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
sellcey@mips.com

Patch

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