public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] testsuite/boards/stabs.exp
@ 2014-12-13 23:46 Doug Evans
  2014-12-14  6:42 ` Yao Qi
  0 siblings, 1 reply; 9+ messages in thread
From: Doug Evans @ 2014-12-13 23:46 UTC (permalink / raw)
  To: gdb-patches

Hi.

The easiest way for me to remember how to run the testsuite in a certain
configuration is if there is a board file for it.

Thus ...

2014-12-13  Doug Evans  <xdje42@gmail.com>

	* boards/stabs.exp: New file.

diff --git a/gdb/testsuite/boards/stabs.exp b/gdb/testsuite/boards/stabs.exp
new file mode 100644
index 0000000..cf7ea7a
--- /dev/null
+++ b/gdb/testsuite/boards/stabs.exp
@@ -0,0 +1,33 @@
+# Copyright 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file is a dejagnu "board file" and is used to run the testsuite
+# with stabs support.
+#
+# Example usage:
+# bash$ make check RUNTESTFLAGS='--target_board=stabs'
+
+# This is copied from baseboards/unix.exp.
+# At the moment this only supports things that unix.exp supports.
+load_generic_config "unix"
+process_multilib_options ""
+set_board_info compiler "[find_gcc]"
+
+set_board_info debug_flags "-gstabs"
+
+# This is needed otherwise dejagnu tries to rsh to host "fission".  Blech.
+# Double blech: set_board_info only sets the value if not already set.
+unset_board_info isremote
+set_board_info isremote 0

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-13 23:46 [PATCH] testsuite/boards/stabs.exp Doug Evans
@ 2014-12-14  6:42 ` Yao Qi
  2014-12-14  7:05   ` Doug Evans
  2014-12-14 13:20   ` Joel Brobecker
  0 siblings, 2 replies; 9+ messages in thread
From: Yao Qi @ 2014-12-14  6:42 UTC (permalink / raw)
  To: Doug Evans; +Cc: gdb-patches

Doug Evans <xdje42@gmail.com> writes:

> The easiest way for me to remember how to run the testsuite in a certain
> configuration is if there is a board file for it.

Alternatively, we can referencehttps://sourceware.org/gdb/wiki/TestingGDB ,
passing CFLAGS_FOR_TARGET='-gstabs' to dejagnu is convenient too, so I
don't see the necessity to add a new board file to do that.

-- 
Yao (齐尧)

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-14  6:42 ` Yao Qi
@ 2014-12-14  7:05   ` Doug Evans
  2014-12-14 13:24     ` Joel Brobecker
                       ` (2 more replies)
  2014-12-14 13:20   ` Joel Brobecker
  1 sibling, 3 replies; 9+ messages in thread
From: Doug Evans @ 2014-12-14  7:05 UTC (permalink / raw)
  To: Yao Qi; +Cc: gdb-patches

On Sat, Dec 13, 2014 at 10:34 PM, Yao Qi <yao@codesourcery.com> wrote:
> Doug Evans <xdje42@gmail.com> writes:
>
>> The easiest way for me to remember how to run the testsuite in a certain
>> configuration is if there is a board file for it.
>
> Alternatively, we can referencehttps://sourceware.org/gdb/wiki/TestingGDB ,
> passing CFLAGS_FOR_TARGET='-gstabs' to dejagnu is convenient too, so I
> don't see the necessity to add a new board file to do that.

Not as convenient.
And CFLAGS_FOR_TARGET  is actually not the same.
[May seem weird at first, but if you dig into it, it's not that weird.]

a) I can ls testsuite/boards trivially.
b) The testsuite gets the -g* variant to use from the debug_flags board config.
If you specify CFLAGS_FOR_TARGET then that value *and* the
debug_flags board config are passed to gcc.
Plus, -g -gstabs != -gstabs -g.
[I didn't dig into why, easy enough if it becomes important.]
The high order bit is that the right way to specify the flag
to control the debug format is with the debug_flags board config.

The difference can be seen by trying both.
A simple example to play with is gdb.cp/bool.exp.

check-gdb --target_board=stabs bool.exp
-> 2 fails
FAIL: gdb.cp/bool.exp: print return_true()
FAIL: gdb.cp/bool.exp: print return_false()

check-gdb CFLAGS_FOR_TARGET=-gstabs bool.exp
-> 2 passes

Is there something about adding a board file that causes problems I'm
not aware of?
If so, we'd better establish what it is and get it written down.
I can imagine wanting more board files.  :-)

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-14  6:42 ` Yao Qi
  2014-12-14  7:05   ` Doug Evans
@ 2014-12-14 13:20   ` Joel Brobecker
  2014-12-14 17:23     ` Doug Evans
  1 sibling, 1 reply; 9+ messages in thread
From: Joel Brobecker @ 2014-12-14 13:20 UTC (permalink / raw)
  To: Yao Qi; +Cc: Doug Evans, gdb-patches

> Alternatively, we can referencehttps://sourceware.org/gdb/wiki/TestingGDB ,
> passing CFLAGS_FOR_TARGET='-gstabs' to dejagnu is convenient too, so I
> don't see the necessity to add a new board file to do that.

Another idea I thought about yesterday was to write a small python
script that takes arguments on the command line and then calls make
the right way for us, potentially even generating board files if
necessary. The interesting bit in the script is the ability to call
it with --help...

-- 
Joel

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-14  7:05   ` Doug Evans
@ 2014-12-14 13:24     ` Joel Brobecker
  2014-12-15  3:23     ` Yao Qi
  2014-12-15 11:12     ` Pedro Alves
  2 siblings, 0 replies; 9+ messages in thread
From: Joel Brobecker @ 2014-12-14 13:24 UTC (permalink / raw)
  To: Doug Evans; +Cc: Yao Qi, gdb-patches

> Is there something about adding a board file that causes problems I'm
> not aware of?
> If so, we'd better establish what it is and get it written down.
> I can imagine wanting more board files.  :-)

FWIW, add away!

-- 
Joel

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-14 13:20   ` Joel Brobecker
@ 2014-12-14 17:23     ` Doug Evans
  0 siblings, 0 replies; 9+ messages in thread
From: Doug Evans @ 2014-12-14 17:23 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Yao Qi, gdb-patches

On Sun, Dec 14, 2014 at 5:20 AM, Joel Brobecker <brobecker@adacore.com> wrote:
>> Alternatively, we can referencehttps://sourceware.org/gdb/wiki/TestingGDB ,
>> passing CFLAGS_FOR_TARGET='-gstabs' to dejagnu is convenient too, so I
>> don't see the necessity to add a new board file to do that.
>
> Another idea I thought about yesterday was to write a small python
> script that takes arguments on the command line and then calls make
> the right way for us, potentially even generating board files if
> necessary. The interesting bit in the script is the ability to call
> it with --help...

One nice thing about a board file for a specific purpose is that it's a place
to document issues related to that purpose.
And even add complexities related to that purpose.

Given that -g -gstabs != -gstabs -g,
I think we want to document that.

And also given that -gstabs != -gstabs -g,
we *may* (though I don't have as strong an opinion
on this as we're trying to kill^wstab stabs :-))
want a way to run stabs both ways.
E.g., bool.exp passes one way, and fails the other.

The stabs board file could be the repository
for "all things stabs".

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-14  7:05   ` Doug Evans
  2014-12-14 13:24     ` Joel Brobecker
@ 2014-12-15  3:23     ` Yao Qi
  2014-12-15 11:12     ` Pedro Alves
  2 siblings, 0 replies; 9+ messages in thread
From: Yao Qi @ 2014-12-15  3:23 UTC (permalink / raw)
  To: Doug Evans; +Cc: gdb-patches

Doug Evans <xdje42@gmail.com> writes:

> b) The testsuite gets the -g* variant to use from the debug_flags board config.
> If you specify CFLAGS_FOR_TARGET then that value *and* the
> debug_flags board config are passed to gcc.
> Plus, -g -gstabs != -gstabs -g.
> [I didn't dig into why, easy enough if it becomes important.]

Oh, it is surprise to me.

> The high order bit is that the right way to specify the flag
> to control the debug format is with the debug_flags board config.
>
> The difference can be seen by trying both.
> A simple example to play with is gdb.cp/bool.exp.
>
> check-gdb --target_board=stabs bool.exp
> -> 2 fails
> FAIL: gdb.cp/bool.exp: print return_true()
> FAIL: gdb.cp/bool.exp: print return_false()
>
> check-gdb CFLAGS_FOR_TARGET=-gstabs bool.exp
> -> 2 passes

Thanks for giving this example.

>
> Is there something about adding a board file that causes problems I'm
> not aware of?
> If so, we'd better establish what it is and get it written down.
> I can imagine wanting more board files.  :-)

Adding board file stabs.exp is fine to me.

-- 
Yao (齐尧)

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-14  7:05   ` Doug Evans
  2014-12-14 13:24     ` Joel Brobecker
  2014-12-15  3:23     ` Yao Qi
@ 2014-12-15 11:12     ` Pedro Alves
  2014-12-17  7:28       ` Doug Evans
  2 siblings, 1 reply; 9+ messages in thread
From: Pedro Alves @ 2014-12-15 11:12 UTC (permalink / raw)
  To: Doug Evans, Yao Qi; +Cc: gdb-patches

On 12/14/2014 07:05 AM, Doug Evans wrote:
> On Sat, Dec 13, 2014 at 10:34 PM, Yao Qi <yao@codesourcery.com> wrote:
>> Doug Evans <xdje42@gmail.com> writes:

> b) The testsuite gets the -g* variant to use from the debug_flags board config.
> If you specify CFLAGS_FOR_TARGET then that value *and* the
> debug_flags board config are passed to gcc.
> Plus, -g -gstabs != -gstabs -g.
> [I didn't dig into why, easy enough if it becomes important.]
> The high order bit is that the right way to specify the flag
> to control the debug format is with the debug_flags board config.
> 
> The difference can be seen by trying both.
> A simple example to play with is gdb.cp/bool.exp.
> 
> check-gdb --target_board=stabs bool.exp
> -> 2 fails
> FAIL: gdb.cp/bool.exp: print return_true()
> FAIL: gdb.cp/bool.exp: print return_false()
> 
> check-gdb CFLAGS_FOR_TARGET=-gstabs bool.exp
> -> 2 passes

No objections to a board file if it makes things easy, but
did you consider allowing passing a variable from the command line,
to override debug_flags, so we could do things like:

 $ make check DEBUG_FLAGS="-gstabs" bool.exp

 $ make check DEBUG_FLAGS="-gstabs" RUNTESTFLAGS="--host_board=foo --target_board=bar" bool.exp

?

Thanks,
Pedro Alves

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

* Re: [PATCH] testsuite/boards/stabs.exp
  2014-12-15 11:12     ` Pedro Alves
@ 2014-12-17  7:28       ` Doug Evans
  0 siblings, 0 replies; 9+ messages in thread
From: Doug Evans @ 2014-12-17  7:28 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Yao Qi, gdb-patches

Pedro Alves <palves@redhat.com> writes:
> On 12/14/2014 07:05 AM, Doug Evans wrote:
>> On Sat, Dec 13, 2014 at 10:34 PM, Yao Qi <yao@codesourcery.com> wrote:
>>> Doug Evans <xdje42@gmail.com> writes:
>
>> b) The testsuite gets the -g* variant to use from the debug_flags board config.
>> If you specify CFLAGS_FOR_TARGET then that value *and* the
>> debug_flags board config are passed to gcc.
>> Plus, -g -gstabs != -gstabs -g.
>> [I didn't dig into why, easy enough if it becomes important.]
>> The high order bit is that the right way to specify the flag
>> to control the debug format is with the debug_flags board config.
>> 
>> The difference can be seen by trying both.
>> A simple example to play with is gdb.cp/bool.exp.
>> 
>> check-gdb --target_board=stabs bool.exp
>> -> 2 fails
>> FAIL: gdb.cp/bool.exp: print return_true()
>> FAIL: gdb.cp/bool.exp: print return_false()
>> 
>> check-gdb CFLAGS_FOR_TARGET=-gstabs bool.exp
>> -> 2 passes
>
> No objections to a board file if it makes things easy, but
> did you consider allowing passing a variable from the command line,
> to override debug_flags, so we could do things like:
>
>  $ make check DEBUG_FLAGS="-gstabs" bool.exp
>
>  $ make check DEBUG_FLAGS="-gstabs" RUNTESTFLAGS="--host_board=foo --target_board=bar" bool.exp

Hi.
Here is what I committed.
I've augmented the comments to provide more assistance.

2014-12-16  Doug Evans  <xdje42@gmail.com>

	* boards/stabs.exp: New file.

diff --git a/gdb/testsuite/boards/stabs.exp b/gdb/testsuite/boards/stabs.exp
new file mode 100644
index 0000000..d04989a
--- /dev/null
+++ b/gdb/testsuite/boards/stabs.exp
@@ -0,0 +1,45 @@
+# Copyright 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file is a dejagnu "board file" and is used to run the testsuite
+# with stabs support.  Stabs is used less and less these days, ideally
+# it will eventually disappear (hey, one can dream).  Until then, this
+# board file is a simple way to run the testsuite with stabs.
+#
+# Example usage:
+# bash$ make check RUNTESTFLAGS='--target_board=stabs'
+#
+# Another way:
+# make check RUNTESTFLAGS="--target_board=unix/gdb:debug_flags=-gstabs+"
+# While this way doesn't require a board file, this file exists because
+# it's easier for some to find.
+#
+# Note: make check RUNTESTFLAGS=CFLAGS_FOR_TARGET=-gstabs+
+# "works" but kinda accidentally.  The right way to set the flag for
+# specifying debug information is with the debug_flags board config parameter.
+
+# This is copied from baseboards/unix.exp.
+# At the moment this only supports things that unix.exp supports.
+load_generic_config "unix"
+process_multilib_options ""
+set_board_info compiler "[find_gcc]"
+
+# Use -gstabs+ instead of -gstabs for better c++ support.
+set_board_info debug_flags "-gstabs+"
+
+# This is needed otherwise dejagnu tries to rsh to host "stabs".  Blech.
+# Double blech: set_board_info only sets the value if not already set.
+unset_board_info isremote
+set_board_info isremote 0

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

end of thread, other threads:[~2014-12-17  7:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-13 23:46 [PATCH] testsuite/boards/stabs.exp Doug Evans
2014-12-14  6:42 ` Yao Qi
2014-12-14  7:05   ` Doug Evans
2014-12-14 13:24     ` Joel Brobecker
2014-12-15  3:23     ` Yao Qi
2014-12-15 11:12     ` Pedro Alves
2014-12-17  7:28       ` Doug Evans
2014-12-14 13:20   ` Joel Brobecker
2014-12-14 17:23     ` Doug Evans

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