From 819fbe74ee959ec0003391ae2116f67d578456ab Mon Sep 17 00:00:00 2001 From: Rob Savoye Date: Mon, 13 Jul 2020 18:19:37 -0600 Subject: Initial support for the GCC compile farm as a working example. (if you have an account) --- contrib/jenkins/README | 7 +++++ contrib/jenkins/aarch64-target1.exp | 37 ++++++++++++++++++++++ contrib/jenkins/aarch64-target2.exp | 37 ++++++++++++++++++++++ contrib/jenkins/aarch64-target3.exp | 37 ++++++++++++++++++++++ contrib/jenkins/aarch64-target4.exp | 37 ++++++++++++++++++++++ contrib/jenkins/arm-target1.exp | 37 ++++++++++++++++++++++ contrib/jenkins/arm-target2.exp | 37 ++++++++++++++++++++++ contrib/jenkins/arm-target3.exp | 37 ++++++++++++++++++++++ contrib/jenkins/arm-target4.exp | 37 ++++++++++++++++++++++ contrib/jenkins/site.exp | 62 +++++++++++++++++++++++++++++++++++++ 10 files changed, 365 insertions(+) create mode 100644 contrib/jenkins/README create mode 100644 contrib/jenkins/aarch64-target1.exp create mode 100644 contrib/jenkins/aarch64-target2.exp create mode 100644 contrib/jenkins/aarch64-target3.exp create mode 100644 contrib/jenkins/aarch64-target4.exp create mode 100644 contrib/jenkins/arm-target1.exp create mode 100644 contrib/jenkins/arm-target2.exp create mode 100644 contrib/jenkins/arm-target3.exp create mode 100644 contrib/jenkins/arm-target4.exp create mode 100644 contrib/jenkins/site.exp diff --git a/contrib/jenkins/README b/contrib/jenkins/README new file mode 100644 index 0000000..fea7ee2 --- /dev/null +++ b/contrib/jenkins/README @@ -0,0 +1,7 @@ +These are board files for various publically accessible remote linux +hosts. Current these are for the GCC compile farm, which you need to +get a free account on. Or use the same hostnames in your /etc/hosts and +$HOME/.ssh/config and it'll just work. + +Copy these to $HOME/boards to active them. + diff --git a/contrib/jenkins/aarch64-target1.exp b/contrib/jenkins/aarch64-target1.exp new file mode 100644 index 0000000..86051bb --- /dev/null +++ b/contrib/jenkins/aarch64-target1.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target1" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/aarch64-target2.exp b/contrib/jenkins/aarch64-target2.exp new file mode 100644 index 0000000..0e3ed18 --- /dev/null +++ b/contrib/jenkins/aarch64-target2.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target2" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/aarch64-target3.exp b/contrib/jenkins/aarch64-target3.exp new file mode 100644 index 0000000..6cdd0e0 --- /dev/null +++ b/contrib/jenkins/aarch64-target3.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target3" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/aarch64-target4.exp b/contrib/jenkins/aarch64-target4.exp new file mode 100644 index 0000000..9ecbf79 --- /dev/null +++ b/contrib/jenkins/aarch64-target4.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target4" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/arm-target1.exp b/contrib/jenkins/arm-target1.exp new file mode 100644 index 0000000..86051bb --- /dev/null +++ b/contrib/jenkins/arm-target1.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target1" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/arm-target2.exp b/contrib/jenkins/arm-target2.exp new file mode 100644 index 0000000..0e3ed18 --- /dev/null +++ b/contrib/jenkins/arm-target2.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target2" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/arm-target3.exp b/contrib/jenkins/arm-target3.exp new file mode 100644 index 0000000..6cdd0e0 --- /dev/null +++ b/contrib/jenkins/arm-target3.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target3" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/arm-target4.exp b/contrib/jenkins/arm-target4.exp new file mode 100644 index 0000000..9ecbf79 --- /dev/null +++ b/contrib/jenkins/arm-target4.exp @@ -0,0 +1,37 @@ +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +load_base_board_description "linux-gdbserver" +set_board_info compiler [find_gcc] + +#process_multilib_options "" + +# Define ld_library_path variable to workaround asan and go testsuites +# referring to it +set ld_library_path "" + +# QEMU uses the standard remote debugging protocol as used by gdbserver. +set_board_info gdb_protocol "remote" +# localhost is the default host used for the remote debugging protocol +set_board_info gdb,sockethost "aarch64-target4" + +set_board_info rsh_prog /usr/bin/ssh +set_board_info rcp_prog /usr/bin/scp + +# statically link the test case executables +set_board_info ldflags "-static" + diff --git a/contrib/jenkins/site.exp b/contrib/jenkins/site.exp new file mode 100644 index 0000000..4aded84 --- /dev/null +++ b/contrib/jenkins/site.exp @@ -0,0 +1,62 @@ +# The master configuration file should be here + +global env +if {[info exists env(PREFIX_UNDER_TEST)]} { + set prefix "$env(PREFIX_UNDER_TEST)" + set flags "" + if {[info exists env(FLAGS_UNDER_TEST)]} { + set flags "$env(FLAGS_UNDER_TEST)" + } + if {[info exists env(SYSROOT_UNDER_TEST)]} { + set sysroot "$env(SYSROOT_UNDER_TEST)" + set flags "$flags --sysroot=$env(SYSROOT_UNDER_TEST)" + } + + set GCC_UNDER_TEST "[set prefix]gcc $flags" + set GXX_UNDER_TEST "[set prefix]g++ $flags" + set GFORTRAN_UNDER_TEST "[set prefix]gfortran $flags" + set OBJC_UNDER_TEST "[set prefix]gcc $flags" + set GOC_UNDER_TEST "[set prefix]goc $flags" + set GNAT_UNDER_TEST "[set prefix]gnat $flags" +} + +if {[info exists env(SYSROOT_UNDER_TEST)]} { + set native "" +} else { + set native "native" +} + +if {[info exists env(QEMU_CPU_UNDER_TEST)]} { + set qemu_cpu "$env(QEMU_CPU_UNDER_TEST)" +} else { + set qemu_cpu "any" +} + +case "$target_triplet" in { + {"arm-pi3-linux-gnueabihf"} { + set target_list { "pi" } + } + { "arm-*linux-gnueabi*" "armv7l-*linux-gnueabi*" } { + set target_list { "arm-target2" "arm-target4" "arm-target1"} + } + { "aarch64-*-gnu" } { + set target_list { "aarch64-target2" "aarch64-target4" "aarch64-target1"} + } + { "armeb-*-eabi*" } { + global SIM + # CPU and sysroot are set through the environment + set SIM "qemu-armeb" + } + { "arm*-*-eabi*" } { + global SIM + # CPU and sysroot are set through the environment + set SIM "qemu-arm" + } + { "aarch64*-*elf*" } { + set SIM "qemu-aarch64" + set target_list { "qemu" } + } + default { + puts "No target hardware for $target_triplet" + } +} -- cgit v1.1