# 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.

# This is a list of toolchains that are supported on this board.
set_board_info target_install  {mmix-knuth-mmixware}

# Load the generic configuration for this board. This will define any
# routines needed to communicate with the board.
load_generic_config "sim"

# Unset the slow_simulator flag; this simulator isn't slow.  (I haven't
# found documentation as to what constitutes a "slow" simulator and
# there's no reference to that variable in the GCC test-suite, but all
# tests I've found work.)
unset_board_info slow_simulator

# We don't use basic-sim.exp and setup_sim because the simulator, called
# "mmix", is external to the build tree.  If nobody set the simulator
# name, we set it to "mmix", so the rest of the framework works.  Let $SIM
# override.
if {![board_info $board exists sim]} {
    if {[info exists SIM]} {
	set_board_info sim $SIM
    } else {
	# Has to exist in the users path.
	set_board_info sim mmix
    }
}

# No default multilib options are needed for this board.
process_multilib_options ""

set_board_info is_simulator 1

# It isn't visible in the target triple, so we set it explicitly.  The
# *linked* format is currently mmo, but those cases where this matters we
# can deal with separately.
set_board_info obj_format "elf"

# 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]"

# 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]"

# We put the stack in the code segment, so trampolines work; the mmix
# simulator does not allow code to be executed in the "normal" documented
# data and stack segments.  Use a somewhat magic number, so stack addresses
# are easily recognized when debugging.
set_board_info ldflags "[newlib_link_flags] -Wl,--defsym,__Stack_start=0x1680a00000000000"

# No linker script needed - the simulator is the main environment for this
# target.
set_board_info ldscript ""

# Return codes aren't supported by the simulator.
set_board_info needs_status_wrapper 1

# FIXME: Some gdb board variables are usually here.  I currently have
# no clue what to set them to, so I won't.
