Build/test for m32r-elf and bfin-elf
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
diff --git a/.travis.yml b/.travis.yml
index 1752651..5925eac 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,6 +9,9 @@ language: cpp
matrix:
include:
+ - os: linux
+ env: HOST=m32r-elf RUNTESTFLAGS="--target_board m32r-sim" DEJAGNU="$TRAVIS_BUI - os: linux
+ env: HOST=bfin-elf RUNTESTFLAGS="--target_board bfin-sim" DEJAGNU="$TRAVIS_BUILD_DIR/.travis/site.exp"
# This configuration is still using the native x86 toolchain?
# - os: osx
# env: HOST=aarch64-apple-darwin13
diff --git a/.travis/bfin-sim.exp b/.travis/bfin-sim.exp
new file mode 100644
index 0000000..13cd0ff
--- /dev/null
+++ b/.travis/bfin-sim.exp
@@ -0,0 +1,58 @@
+# Copyright (C) 2010, 2019 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.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {bfin-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "bfin" is the name of the sim subdir in devo/sim.
+setup_sim bfin
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/.travis/build-cross-in-container.sh b/.travis/build-cross-in-container.sh
new file mode 100755
index 0000000..195330b
--- /dev/null
+++ b/.travis/build-cross-in-container.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+cd /opt
+
+./configure --host=${HOST}
+make
+make dist
+make check RUNTESTFLAGS="-a $RUNTESTFLAGS" || true
+
+
diff --git a/.travis/build.sh b/.travis/build.sh
index ab334e5..3cb356b 100755
--- a/.travis/build.sh
+++ b/.travis/build.sh
@@ -68,6 +68,16 @@ function build_cross_linux()
exit $?
}
+function build_cross()
+{
+ ${DOCKER} run --rm -t -i -v `pwd`:/opt -e HOST="${HOST}" -e CC="${HOST}-gcc ${GCC_OPTIONS}" -e CXX="${HOST}-g++ ${GCC_OPTIONS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" moxielogic/libffi-ci-${HOST}:latest bash -c /opt/.travis/build-cross-in-container.sh
+
+ ./rlgl l https://rl.gl
+ ID=$(./rlgl start)
+ ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
+ exit $?
+}
+
function build_ios()
{
which python
@@ -104,6 +114,14 @@ case "$HOST" in
aarch64-linux-gnu| powerpc64le-unknown-linux-gnu | mips64el-linux-gnu | sparc64-linux-gnu)
build_cfarm
;;
+ bfin-elf )
+ ./autogen.sh
+ GCC_OPTIONS=-msim build_cross
+ ;;
+ m32r-elf )
+ ./autogen.sh
+ build_cross
+ ;;
m68k-linux-gnu )
./autogen.sh
GCC_OPTIONS=-mcpu=547x build_cross_linux
diff --git a/.travis/m32r-sim.exp b/.travis/m32r-sim.exp
new file mode 100644
index 0000000..b3341f2
--- /dev/null
+++ b/.travis/m32r-sim.exp
@@ -0,0 +1,58 @@
+# Copyright (C) 2010, 2019 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.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m32r-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "m32r" is the name of the sim subdir in devo/sim.
+setup_sim m32r
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/.travis/site.exp b/.travis/site.exp
index e42cb1d..8bfbc75 100644
--- a/.travis/site.exp
+++ b/.travis/site.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008, 2010, 2018 Anthony Green
+# Copyright (C) 2008, 2010, 2018, 2019 Anthony Green
# Make sure we look in the right place for the board description files.
if ![info exists boards_dir] {
@@ -11,6 +11,12 @@ verbose "Global Config File: target_triplet is $target_triplet" 2
global target_list
case "$target_triplet" in {
+ { "bfin-elf" } {
+ set target_list "bfin-sim"
+ }
+ { "m32r-elf" } {
+ set target_list "m32r-sim"
+ }
{ "moxie-elf" } {
set target_list "moxie-sim"
}