
This commit is the result of the following actions: - Running gdb/copyright.py to update all of the copyright headers to include 2024, - Manually updating a few files the copyright.py script told me to update, these files had copyright headers embedded within the file, - Regenerating gdbsupport/Makefile.in to refresh it's copyright date, - Using grep to find other files that still mentioned 2023. If these files were updated last year from 2022 to 2023 then I've updated them this year to 2024. I'm sure I've probably missed some dates. Feel free to fix them up as you spot them.
120 lines
3.7 KiB
Text
120 lines
3.7 KiB
Text
# Copyright 2015-2024 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 remote gdbserver on localhost.
|
|
#
|
|
# To use this file:
|
|
# bash$ cd ${build_dir}/gdb
|
|
# bash$ make check RUNTESTFLAGS="--target_board=remote-gdbserver-on-localhost
|
|
# [ REMOTE_TARGET_USERNAME=<remote_target_username> ]"
|
|
|
|
load_generic_config "gdbserver"
|
|
load_board_description "gdbserver-base"
|
|
|
|
# The sshd should be running on localhost and ssh key should be
|
|
# correctly set up that you ssh to localhost without having to type
|
|
# password.
|
|
set_board_info rcp_prog "/usr/bin/scp"
|
|
set_board_info rsh_prog "/usr/bin/ssh"
|
|
set_board_info protocol standard
|
|
if { [info exists REMOTE_TARGET_USERNAME] } {
|
|
set_board_info username $REMOTE_TARGET_USERNAME
|
|
} else {
|
|
set_board_info username $env(USER)
|
|
}
|
|
set_board_info hostname localhost
|
|
|
|
save_vars {rsh_cmd res} {
|
|
set rsh_cmd \
|
|
[join \
|
|
[list \
|
|
[board_info $board rsh_prog] \
|
|
-l [board_info $board username] \
|
|
[board_info $board hostname]]]
|
|
|
|
# Handle separate test account.
|
|
if { [board_info $board username] != $env(USER) } {
|
|
# We're pretending that some local user account is remote target.
|
|
# Make things a bit more realistic by restricting file permissions.
|
|
|
|
# Make sure remote target can't see files on build.
|
|
set res [remote_exec build "chmod go-rx $objdir"]
|
|
if { [lindex $res 0] != 0 } {
|
|
error "Couldn't remove permissions for $objdir on build"
|
|
}
|
|
|
|
# Make sure build can't see files on remote target.
|
|
set res [remote_exec build $rsh_cmd "chmod go-rx ."]
|
|
if { [lindex $res 0] != 0 } {
|
|
error "Couldn't remove permissions for . on target"
|
|
}
|
|
}
|
|
|
|
# Set remotedir by default, to force remote_download target to give an
|
|
# absolute file name.
|
|
set res [remote_exec build $rsh_cmd pwd]
|
|
if { [lindex $res 0] != 0 } {
|
|
error "Couldn't set remotedir using pwd"
|
|
}
|
|
set_board_info remotedir [string trim [lindex $res 1]]
|
|
}
|
|
|
|
proc ${board}_file { dest op args } {
|
|
global board_info
|
|
set username [board_info $dest username]
|
|
|
|
if { $op == "absolute" } {
|
|
set file [lindex $args 0]
|
|
|
|
if { [file pathtype $file] == "relative" } {
|
|
# Make sure we get an absolute file name relative to home
|
|
# dir of $username, not $env(USER).
|
|
set pwd [regsub $::env(USER) $::env(HOME) $username]
|
|
set file [remote_file build join $pwd $file]
|
|
}
|
|
|
|
return [remote_file build $op $file]
|
|
}
|
|
|
|
# Fall back to standard_file.
|
|
return [standard_file $dest $op {*}$args]
|
|
}
|
|
|
|
proc ${board}_spawn { board cmd } {
|
|
global board_info
|
|
|
|
set remote [board_info $board hostname]
|
|
set username [board_info $board username]
|
|
set RSH [board_info $board rsh_prog]
|
|
|
|
spawn $RSH -t -l $username $remote $cmd
|
|
set board_info($board,fileid) $spawn_id
|
|
return $spawn_id
|
|
}
|
|
|
|
# We will be using the standard GDB remote protocol
|
|
set_board_info gdb_protocol "remote"
|
|
|
|
# Use techniques appropriate to a stub
|
|
set_board_info use_gdb_stub 1
|
|
|
|
# This gdbserver can only run a process once per session.
|
|
set_board_info gdb,do_reload_on_run 1
|
|
|
|
# There's no support for argument-passing (yet).
|
|
set_board_info noargs 1
|
|
|
|
set_board_info exit_is_reliable 1
|