sim: better handle builds of primary targets lacking sims
authorJose E. Marchesi <jose.marchesi@oracle.com>
Thu, 3 Sep 2020 13:22:05 +0000 (15:22 +0200)
committerJose E. Marchesi <jose.marchesi@oracle.com>
Thu, 3 Sep 2020 16:21:20 +0000 (18:21 +0200)
When building with a primary target that doesn't feature a simulator,
one would expect for nothing to be done in sim/.  However, a
$(top_builddir)/sim/testsuite directory is created, with a Makefile
containing a rule like:

check-DEJAGNU: site.exp
echo "Dejagnu-checking in `pwd` directory ..."
rootme=`pwd`; export rootme; echo rootme = $$rootme; \
srcdir=`cd ${srcdir}; pwd`; export srcdir ; echo srcdir = $$srcdir; \
EXPECT=${EXPECT} ; export EXPECT ; echo EXPECT = $$EXPECT; \
if [ -f $$rootme/../../expect/expect ]; then \
  TCL_LIBRARY=`cd $$srcdir/../../tcl/library && pwd`; \
  export TCL_LIBRARY; \
fi; \
        echo TCL_LIBRARY = $$TCL_LIBRARY; \
runtest=$(RUNTEST); echo runtest = $$runtest; \
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
  $$runtest $(RUNTESTFLAGS); \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi

Consequently, when `make check' recurses into sim/testsuite, the above
rule is executed.  Until now, the desired effect (of doing nothing)
was achieved because `runtest --version' fails due to a malformed
site.exp being generated in objdir: it is malformed because the
primary target doesn't configure a $sim_arch. i.e. this was doing the
right thing just by chance.

However, the git version of dejagnu seems to have changed in a way
runtest doesn't try to load site.exp when it gets --version.  The net
effect is that the rule above tries to actually run the tests, failing
miserably.

This little patch makes sim/configure to not recurse into
sim/testsuite if the primary target didn't configure a simulator.

Tested with:
- A simulator target (bpf-unkonwn-none).
- A simulator-less target (x86_64-linux-gnu).
- A simulator-less target and --build-targets=all.

sim/ChangeLog:

2020-09-03  Jose E. Marchesi  <jose.marchesi@oracle.com>

* configure.ac: Do not configure sim/testsuite nor sim/igen if the
primary target doesn't have a simulator.
* configure: Regenerate.

sim/ChangeLog
sim/configure
sim/configure.ac

index 5316e248266f1b50ec105ae1ec209e5e8257eb22..5f5f5b8c7568bc6c78431bd1e23a20a3c876f158 100644 (file)
@@ -1,3 +1,9 @@
+2020-09-03  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * configure.ac: Do not configure sim/testsuite nor sim/igen if the
+       primary target doesn't have a simulator.
+       * configure: Regenerate.
+
 2020-08-04  Jose E. Marchesi  <jose.marchesi@oracle.com>
            David Faust <david.faust@oracle.com>
 
index 37a86f435c18f8ebaebe0f3f8f9ea17b0d420977..34f1a15a4c63ea58678a4e90c053d0f23cffcb0c 100755 (executable)
@@ -3914,11 +3914,13 @@ subdirs="$subdirs aarch64"
 esac
 
 
-   subdirs="$subdirs testsuite"
+   if test x"${sim_arch}" != x; then
+      subdirs="$subdirs testsuite"
 
-   if test "$sim_igen" = yes; then
-      subdirs="$subdirs igen"
+      if test "$sim_igen" = yes; then
+         subdirs="$subdirs igen"
 
+      fi
    fi
 fi
 
index 896791e97e766c444224ff694185b7d6f838bf62..d92ca25d39781980cf2965e0c4deb359e6ebc5b5 100644 (file)
@@ -43,9 +43,11 @@ m4_define([SIM_ARCH], [
 ])
 if test "${enable_sim}" != no; then
    sinclude(configure.tgt)
-   AC_CONFIG_SUBDIRS(testsuite)
-   if test "$sim_igen" = yes; then
-      AC_CONFIG_SUBDIRS(igen)
+   if test x"${sim_arch}" != x; then
+      AC_CONFIG_SUBDIRS(testsuite)
+      if test "$sim_igen" = yes; then
+         AC_CONFIG_SUBDIRS(igen)
+      fi
    fi
 fi