[PATCH] sim: better handle builds of primary targets lacking sims

Jose E. Marchesi jose.marchesi@oracle.com
Thu Sep 3 16:23:12 GMT 2020


>> 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.
>
> I make no claim at being a configure expect, but this looks reasonable
> to me, so I think go ahead and apply.

Committed, thanks.


More information about the Gdb-patches mailing list