I started with the arm-sim.exp file and modified it to make it work
for aarch64. The libgloss.exp patch is to make a big-endian
aarch64_be-elf target work. I just submitted a gdb simulator patch
for big-endian support.
With this dejagnu support, running the gcc C language testsuite for an
aarch64-elf build, I get
=== gcc Summary ===
# of expected passes 35433
# of unexpected failures 254
# of unsupported tests 131
which is pretty good.
Jim
2016-06-02 Jim Wilson <[email protected]>
* baseboards/aarch64-sim.exp: New file.
* Makefile.am (baseboard_DATA): Add aarch64-sim.exp.
* Makefile.in: Regenerate.
* lib/libgloss.exp (libgloss_link_flags): Map aarch64* to aarch64.
diff --git a/Makefile.am b/Makefile.am
index 2b7ae3f..bd0ac0e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2015 Free Software Foundation, Inc.
+# Copyright (C) 1992-2016 Free Software Foundation, Inc.
#
# This file is part of DejaGnu.
#
@@ -73,6 +73,7 @@ config_DATA = \
baseboarddir = $(pkgdatadir)/baseboards
baseboard_DATA = \
baseboards/README \
+ baseboards/aarch64-sim.exp \
baseboards/androideabi.exp \
baseboards/am33_2.0-libremote.exp \
baseboards/arm-ice.exp \
diff --git a/Makefile.in b/Makefile.in
index 6afdcff..d50fe0f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 1992-2015 Free Software Foundation, Inc.
+# Copyright (C) 1992-2016 Free Software Foundation, Inc.
#
# This file is part of DejaGnu.
#
@@ -409,6 +409,7 @@ config_DATA = \
baseboarddir = $(pkgdatadir)/baseboards
baseboard_DATA = \
baseboards/README \
+ baseboards/aarch64-sim.exp \
baseboards/androideabi.exp \
baseboards/am33_2.0-libremote.exp \
baseboards/arm-ice.exp \
diff --git a/baseboards/aarch64-sim.exp b/baseboards/aarch64-sim.exp
new file mode 100644
index 0000000..50f5ba0
--- /dev/null
+++ b/baseboards/aarch64-sim.exp
@@ -0,0 +1,56 @@
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009, 2010, 2016 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 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 the generic configuration for this board. This will define a basic
+# set of routines used to communicate with the board.
+load_generic_config "sim"
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the directory in the build tree where the simulator lives.
+setup_sim aarch64
+
+# 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]"
+
+# The basic set of flags needed to build "hello world" for this
+# board. This board uses libgloss and newlib.
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] -specs=rdimon.specs"
+
+# This board doesn't use a linker script.
+set_board_info ldscript ""
+
+# Don't set needs_status_wrapper, as it clobbers ldflags.
+# The simulator is returning the exit status properly.
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+# More time is needed to compile PlumHall tests
+set_board_info gcc,timeout 800
diff --git a/lib/libgloss.exp b/lib/libgloss.exp
index 674a72a..ff42aa4 100644
--- a/lib/libgloss.exp
+++ b/lib/libgloss.exp
@@ -73,6 +73,9 @@ proc libgloss_link_flags { args } {
"xscale*" {
set cpu arm
}
+ "aarch64*" {
+ set cpu aarch64
+ }
default {
set cpu $target_cpu
}
_______________________________________________
DejaGnu mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/dejagnu