[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