aboutsummaryrefslogtreecommitdiff
path: root/baseboards/mmixware-sim.exp
blob: c5d19801b5f56b41436915e0c6bf3fdc6a871d19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 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.