From d087b595637ebb795c0cec1ff0c4409befb486b7 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Mon, 18 Nov 2019 06:34:42 -0500 Subject: [PATCH] Build/test for m32r-elf and bfin-elf --- .travis.yml | 3 ++ .travis/bfin-sim.exp | 58 +++++++++++++++++++++++++++++ .travis/build-cross-in-container.sh | 10 +++++ .travis/build.sh | 18 +++++++++ .travis/m32r-sim.exp | 58 +++++++++++++++++++++++++++++ .travis/site.exp | 8 +++- 6 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 .travis/bfin-sim.exp create mode 100755 .travis/build-cross-in-container.sh create mode 100644 .travis/m32r-sim.exp 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" } -- 2.34.1