[PATCH] aarch64 simulator support

Jim Wilson <[email protected]>
Newsgroups gmane.comp.sysutils.dejagnu.general
Message-ID <CABXYE2XGUAetVJ4qUq+821y5b6ctt9ihZ-8xrqnbq5Rt74pikw@mail.gmail.com>
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

_______________________________________________
DejaGnu mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/dejagnu
dej-aarch64-sim.patch (text/x-patch, 3.9 KB)
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
 	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.