This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] testsuite/boards/stabs.exp
- From: Doug Evans <xdje42 at gmail dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: Yao Qi <yao at codesourcery dot com>, "gdb-patches\ at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Tue, 16 Dec 2014 23:27:46 -0800
- Subject: Re: [PATCH] testsuite/boards/stabs.exp
- Authentication-results: sourceware.org; auth=none
- References: <m3d27ni060 dot fsf at seba dot sebabeach dot org> <87ioheviwk dot fsf at codesourcery dot com> <CAP9bCMRKtavAVZRjk67PO6k-Zzd34VAGuF-q5tr600wG4TNYow at mail dot gmail dot com> <548EC1FB dot 3030306 at redhat dot com>
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