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  <jim.wil...@linaro.org>

	* 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
DejaGnu@gnu.org
https://lists.gnu.org/mailman/listinfo/dejagnu

Reply via email to