Commit d087b595637ebb795c0cec1ff0c4409befb486b7

Anthony Green 2019-11-18T06:34:42

Build/test for m32r-elf and bfin-elf

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"
     }