diff mbox

testsuite/boards/stabs.exp

Message ID m3wq5qd9cd.fsf@sspiff.org
State New
Headers show

Commit Message

Doug Evans Dec. 17, 2014, 7:27 a.m. UTC
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 mbox

Patch

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