# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010 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. # Load the tool-specific configuration for this board, as well as the # generic configuration. This will define any routines needed by the # tool to communicate with the board. load_generic_config "h8300" # Don't use anything by default. process_multilib_options "" # The default compiler for this target. set_board_info compiler "[find_gcc]" # We only support newlib on this target. We assume that all multilib # options have been specified before we get here. set_board_info cflags "[newlib_include_flags]" set_board_info ldflags "[newlib_link_flags]" # The GDB protocol used with this board. set_board_info gdb_protocol "remote" # It's running a GDB stub in ROM. set_board_info use_gdb_stub 1 # There's no support for argument-passing. set_board_info noargs 1 # Nor does it have real signals. set_board_info gdb,nosignals 1 # And it can't do I/O. set_board_info gdb,noinferiorio 1 # Nor can it return results. set_board_info gdb,noresults 1 # Limit the stack size to something real tiny. set_board_info gcc,stack_size 4096 # The board can get wedged in amusing and interesting ways. set_board_info unreliable 1 # There's no long long support on this target set_board_info no_long_long 1 # sizeof int != sizeof long. set_board_info gdb,short_int 1 # Pick the right linker script if -mh/-ms is specified. set linker_script "h8300.ld" foreach x $board_variant_list { regsub -all "^\[ \t\]*" "$x" "" x regsub -all "\[ \t\]*$" "$x" "" x switch -- $x { "h" - "-mh" { set linker_script "h8300h.ld" } "s" - "-ms" { set linker_script "h8300s.ld" } } } # Whee, magic linker scripts hidden away. # # This one's dependent on the multilib options in use, sadly. And we # *need* a linker script. Really. Otherwise the code gets linked at # the wrong address and it won't run on the board. set_board_info ldscript "-T${prefix_dir}/h8300-hms/${linker_script}" unset linker_script