| # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 |
| |
| case $x in { |
| { 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 "-Wl,-T${prefix_dir}/h8300-hms/${linker_script}" |
| |
| unset linker_script |