# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is part of DejaGnu. # # DejaGnu 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. # # DejaGnu 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 DejaGnu; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. # This is a list of toolchains that are supported on this board. set_board_info target_install {pru-elf} # Load the generic configuration for this board, This will define a basic # set of routines needed by the tool to communicate with the board. load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" # The name of the simulator is "pru". setup_sim pru # No multilib flags needed by default. process_multilib_options "" # The compiler used to build for this board. This has *nothing* to do # with what compiler is tested if we're testing gcc. set_board_info compiler "[find_gcc]" # PRU arguments are mostly passed in registers. But GCC regression tests # are written with other machines in mind, so the builtin_apply's # aruments stack size is non-zero. On top of that, the stack top for # PRU's main is very close to the end of SRAM. Close enough that the # spurious "stack copy" reads outside of the DRAM area, causing a # simulator abort. For example, see how builtin-apply-3.c copies 16 # bytes from the arguments stack, while PRU has passed all of its # arguments in registers. # # Temporary solution is to add a few bytes of "guard" space, so that # existing GCC testcases can be executed successfully. Hence set the # stack top a few bytes below the simulator's DRAM end. set workaround_ldflags "-Wl,--defsym=_stack_top=0x3fff800" set_board_info cflags "-mmcu=sim [libgloss_include_flags] [newlib_include_flags]" set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] $workaround_ldflags" # No support for signals on this target. set_board_info gdb,nosignals 1 # Low-end workstations might require even larger timeouts. set timeout 120