diff options
author | Rob Savoye <rob@welcomehome.org> | 2002-03-07 05:12:59 +0000 |
---|---|---|
committer | Rob Savoye <rob@welcomehome.org> | 2002-03-07 05:12:59 +0000 |
commit | 167ba105e840dedcd795b9527bb7bac4318fd277 (patch) | |
tree | e8d1b3bc2b80c0c2d75c4fdaa443b9eda936f480 | |
parent | 8bd9e0e9da1fadb663b268cb061ea7540935b18c (diff) |
New baseboard support file, fix indenting in remote.exp.
-rw-r--r-- | baseboards/mmixware-sim.exp | 60 | ||||
-rw-r--r-- | lib/remote.exp | 20 |
2 files changed, 70 insertions, 10 deletions
diff --git a/baseboards/mmixware-sim.exp b/baseboards/mmixware-sim.exp new file mode 100644 index 0000000..0c51502 --- /dev/null +++ b/baseboards/mmixware-sim.exp @@ -0,0 +1,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. + diff --git a/lib/remote.exp b/lib/remote.exp index a209930..518bf26 100644 --- a/lib/remote.exp +++ b/lib/remote.exp @@ -1067,16 +1067,16 @@ proc standard_wait { dest timeout } { proc check_for_board_status { variable } { upvar $variable output; - - # If all programs of this board have a wrapper that always outputs a - # status message, then the absence of it means that the program - # crashed, regardless of status found elsewhere (e.g. simulator exit - # code). - if { [target_info needs_status_wrapper] != "" } then { + + # If all programs of this board have a wrapper that always outputs a + # status message, then the absence of it means that the program + # crashed, regardless of status found elsewhere (e.g. simulator exit + # code). + if { [target_info needs_status_wrapper] != "" } then { set nomatch_return 2 - } else { + } else { set nomatch_return -1 - } + } if [regexp "(^|\[\r\n\])\\*\\*\\* EXIT code" $output] { regsub "^.*\\*\\*\\* EXIT code " $output "" result; @@ -1087,9 +1087,9 @@ proc check_for_board_status { variable } { verbose "got board status $result" 3 verbose "output is $output" 3 if { $result == "" } { - return $nomatch_return; + return $nomatch_return } else { - return [expr $result]; + return [expr $result] } } else { return $nomatch_return; |