This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] sim: unify target->subdir handling for default tests


On Wednesday 21 April 2010 18:32:22 Doug Evans wrote:
> I'd add a comment to configure.tgt saying that it's intended to be
> m4-included. [It's kinda clear since a few lines in there's an m4 command
> :-), but an explicit comment would help, I think.]

here is the updated patch with your feedback.  i also noticed that it had
Blackfin fragments that arent yet appropriate, so ive dropped those.

if no one complains, i'll prob commit this weekend.
-mike

sim/:
2010-04-21  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Target logic moved out to and included from ...
	* configure.tgt: ... this new file.
	* configure: Regenerated.

sim/testsuite/:
2010-04-21  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (arch): Set to @sim_arch@.
	* configure.ac: Delete arch logic and include ../configure.tgt.
	* configure: Regenerated.
	* lib/sim-defs.exp (sim_run): Default sim to ../arch/run.
---
 sim/configure.ac               |  116 +++-------------------------------------
 sim/configure.tgt              |  113 ++++++++++++++++++++++++++++++++++++++
 sim/testsuite/Makefile.in      |    2 +-
 sim/testsuite/configure.ac     |    8 +---
 sim/testsuite/lib/sim-defs.exp |    9 +++
 5 files changed, 132 insertions(+), 116 deletions(-)
 create mode 100644 sim/configure.tgt

diff --git a/sim/configure.ac b/sim/configure.ac
index dad245e..8c1d914 100644
--- a/sim/configure.ac
+++ b/sim/configure.ac
@@ -36,119 +36,19 @@ yes | no) ;;
 *)	AC_MSG_ERROR(bad value ${enableval} given for --enable-sim option) ;;
 esac])
 
-# WHEN ADDING ENTRIES TO THIS MATRIX:
-
-# Make sure that the left side always has two dashes.  Otherwise you
-# can get spurious matches.  Even for unambiguous cases, do this as a
-# convention, else the table becomes a real mess to understand and
-# maintain.
-
+m4_define([SIM_ARCH], [
+  sim_arch=$1
+  AC_CONFIG_SUBDIRS($1)
+])
 if test "${enable_sim}" != no; then
-   testsuite=no
-   common=yes
-   igen=no
-   case "${target}" in
-       arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*)
-           AC_CONFIG_SUBDIRS(arm)
-	   testsuite=yes
-	   ;;
-       avr*-*-*)
-           AC_CONFIG_SUBDIRS(avr)
-	   ;;
-       cr16*-*-*)
-	   AC_CONFIG_SUBDIRS(cr16)
-	   testsuite=yes
-	   ;;
-       cris-*-* | crisv32-*-*)
-	   AC_CONFIG_SUBDIRS(cris)
-	   testsuite=yes
-	   ;;
-       d10v-*-*)
-           AC_CONFIG_SUBDIRS(d10v)
-	   ;;
-       frv-*-*)
-           AC_CONFIG_SUBDIRS(frv)
-	   testsuite=yes
-	   ;;
-       h8300*-*-*)
-           AC_CONFIG_SUBDIRS(h8300)
-	   testsuite=yes
-	   ;;
-       iq2000-*-*)
-           AC_CONFIG_SUBDIRS(iq2000)
-	   testsuite=yes
-	   ;;
-       lm32-*-*)
-           AC_CONFIG_SUBDIRS(lm32)
-	   testsuite=yes
-           ;;
-       m32c-*-*)
-           AC_CONFIG_SUBDIRS(m32c)
-           ;;
-       m32r-*-*)
-           AC_CONFIG_SUBDIRS(m32r)
-	   testsuite=yes
-	   ;;
-       m68hc11-*-*|m6811-*-*)
-           AC_CONFIG_SUBDIRS(m68hc11)
-	   testsuite=yes
-	   ;;
-       mcore-*-*)
-           AC_CONFIG_SUBDIRS(mcore)
-	   testsuite=yes
-	   ;;
-       microblaze-*-*)
-           AC_CONFIG_SUBDIRS(microblaze)
-	   testsuite=yes
-	   ;;
-       mips*-*-*)
-           AC_CONFIG_SUBDIRS(mips)
-	   testsuite=yes
-	   igen=yes
-	   ;;
-       mn10300*-*-*)
-           AC_CONFIG_SUBDIRS(mn10300)
-	   igen=yes
-	   ;;
-       moxie-*-*)
-	   AC_CONFIG_SUBDIRS(moxie)
-	   testsuite=yes
-	   ;;
-       rx-*-*)
-           AC_CONFIG_SUBDIRS(rx)
-	   ;;
-       sh64*-*-*)
-           AC_CONFIG_SUBDIRS(sh64)
-	   testsuite=yes
-	   ;;
-       sh*-*-*)
-           AC_CONFIG_SUBDIRS(sh)
-	   testsuite=yes
-	   ;;
-       sparc-*-rtems*|sparc-*-elf*)
-	   AC_CONFIG_SUBDIRS(erc32)
-	   testsuite=yes
-	   ;;
-       powerpc*-*-* )
-           AC_CONFIG_SUBDIRS(ppc)
-	   ;;
-       v850*-*-* )
-           AC_CONFIG_SUBDIRS(v850)
-	   igen=yes
-	   testsuite=yes
-	   ;;
-       *)
-	   # No simulator subdir, so the subdir "common" isn't needed.
-	   common=no
-	   ;;
-   esac
-   if test "$testsuite" = yes; then
+   sinclude(configure.tgt)
+   if test "$sim_testsuite" = yes; then
       AC_CONFIG_SUBDIRS(testsuite)
    fi
-   if test "$common" = yes; then
+   if test "$sim_common" = yes; then
       AC_CONFIG_SUBDIRS(common)
    fi
-   if test "$igen" = yes; then
+   if test "$sim_igen" = yes; then
       AC_CONFIG_SUBDIRS(igen)
    fi
 fi
diff --git a/sim/configure.tgt b/sim/configure.tgt
new file mode 100644
index 0000000..592bc3c
--- /dev/null
+++ b/sim/configure.tgt
@@ -0,0 +1,113 @@
+dnl Note that this file is intended to be included at the m4 level and not
+dnl the shell level, so use sinclude(...) to pull it in.
+
+# WHEN ADDING ENTRIES TO THIS MATRIX:
+
+# Make sure that the left side always has two dashes.  Otherwise you
+# can get spurious matches.  Even for unambiguous cases, do this as a
+# convention, else the table becomes a real mess to understand and
+# maintain.
+
+dnl glue to avoid code duplication at top level
+m4_ifndef([SIM_ARCH], [AC_DEFUN([SIM_ARCH],[sim_arch=$1])])
+
+sim_testsuite=no
+sim_common=yes
+sim_igen=no
+sim_arch=
+case "${target}" in
+   arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*)
+       SIM_ARCH(arm)
+       sim_testsuite=yes
+       ;;
+   avr*-*-*)
+       SIM_ARCH(avr)
+       ;;
+   cr16*-*-*)
+       SIM_ARCH(cr16)
+       sim_testsuite=yes
+       ;;
+   cris-*-* | crisv32-*-*)
+       SIM_ARCH(cris)
+       sim_testsuite=yes
+       ;;
+   d10v-*-*)
+       SIM_ARCH(d10v)
+       ;;
+   frv-*-*)
+       SIM_ARCH(frv)
+       sim_testsuite=yes
+       ;;
+   h8300*-*-*)
+       SIM_ARCH(h8300)
+       sim_testsuite=yes
+       ;;
+   iq2000-*-*)
+       SIM_ARCH(iq2000)
+       sim_testsuite=yes
+       ;;
+   lm32-*-*)
+       SIM_ARCH(lm32)
+       sim_testsuite=yes
+       ;;
+   m32c-*-*)
+       SIM_ARCH(m32c)
+       ;;
+   m32r-*-*)
+       SIM_ARCH(m32r)
+       sim_testsuite=yes
+       ;;
+   m68hc11-*-*|m6811-*-*)
+       SIM_ARCH(m68hc11)
+       sim_testsuite=yes
+       ;;
+   mcore-*-*)
+       SIM_ARCH(mcore)
+       sim_testsuite=yes
+       ;;
+   microblaze-*-*)
+       SIM_ARCH(microblaze)
+       sim_testsuite=yes
+       ;;
+   mips*-*-*)
+       SIM_ARCH(mips)
+       sim_testsuite=yes
+       sim_igen=yes
+       ;;
+   mn10300*-*-*)
+       SIM_ARCH(mn10300)
+       sim_igen=yes
+       ;;
+   moxie-*-*)
+       SIM_ARCH(moxie)
+       sim_testsuite=yes
+       ;;
+   rx-*-*)
+       SIM_ARCH(rx)
+       ;;
+   sh64*-*-*)
+       SIM_ARCH(sh64)
+       sim_testsuite=yes
+       ;;
+   sh*-*-*)
+       SIM_ARCH(sh)
+       sim_testsuite=yes
+       ;;
+   sparc-*-rtems*|sparc-*-elf*)
+       SIM_ARCH(erc32)
+       sim_testsuite=yes
+       ;;
+   powerpc*-*-*)
+       SIM_ARCH(ppc)
+       ;;
+   v850*-*-*)
+       SIM_ARCH(v850)
+       sim_igen=yes
+       sim_testsuite=yes
+       ;;
+   *)
+       # No simulator subdir, so the subdir "common" isn't needed.
+       sim_common=no
+       ;;
+esac
+AC_SUBST(sim_arch)
diff --git a/sim/testsuite/Makefile.in b/sim/testsuite/Makefile.in
index 6a60f95..bfb721d 100644
--- a/sim/testsuite/Makefile.in
+++ b/sim/testsuite/Makefile.in
@@ -30,7 +30,7 @@ target_canonical = @target@
 target_alias = @target_alias@
 program_transform_name = @program_transform_name@
 
-arch = @arch@
+arch = @sim_arch@
 
 SHELL = /bin/sh
 SUBDIRS = @subdirs@
diff --git a/sim/testsuite/configure.ac b/sim/testsuite/configure.ac
index ceaf4ff..ba17a33 100644
--- a/sim/testsuite/configure.ac
+++ b/sim/testsuite/configure.ac
@@ -25,12 +25,6 @@ case ${target} in
 	;;
 esac
 
-# Compute the target architecture.
-# FIXME: Will need to canonicalize some values.
-# FIXME: Should be in generally accessable place.
-case $target in
-  *) arch=${target_cpu} ;;
-esac
-AC_SUBST(arch)
+sinclude(../configure.tgt)
 
 AC_OUTPUT(Makefile)
diff --git a/sim/testsuite/lib/sim-defs.exp b/sim/testsuite/lib/sim-defs.exp
index 3cef394..1e65817 100644
--- a/sim/testsuite/lib/sim-defs.exp
+++ b/sim/testsuite/lib/sim-defs.exp
@@ -88,6 +88,15 @@ proc sim_run { prog sim_opts prog_opts redir options } {
     verbose "testcase timeout is set to $testcase_timeout" 1
 
     set sim [board_info target sim]
+    if [string equal "" $sim] {
+	# Special case the simulator.  These tests are designed to
+	# be run inside of the simulator, not on the native host.
+	# So if the sim target isn't set, default to the target run.
+	# These global variables come from generated site.exp.
+	global objdir
+	global arch
+	set sim "$objdir/../$arch/run"
+    }
 
     if [is_remote host] {
 	set prog [remote_download host $prog]
-- 
1.7.0.2

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]