# Copyright 2011-2021 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 has common bits shared between other dejagnu "board files"
# that are used to run the testsuite with gdbserver.

process_multilib_options ""

# The default compiler for this target.
set_board_info compiler "[find_gcc]"

# Test the copy of gdbserver in the build directory.
set_board_info gdb_server_prog "[pwd]/../../gdbserver/gdbserver"

# gdbserver does not intercept target file operations and perform them
# on the host.
set_board_info gdb,nofileio 1

# The predefined TSVs in GDBserver.
set_board_info gdb,predefined_tsv "\\\$trace_timestamp"

set GDBFLAGS "${GDBFLAGS} -iex \"set auto-connect-native-target off\""
