This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: Weirdness with gcc's check-*//foo-sim rules


On Jul  7, 2004, Phil Edwards <phil@codesourcery.com> wrote:

>     $ make -ik check-gcc//arm-sim/{,-mthumb} check-g++//arm-sim/{,-mthumb}
>       ...check-gcc runs twice, in "testsuite.arm-sim." and
>       "testsuite.arm-sim.-mthumb" accordingly...
>     make[1]: Leaving directory `/path/to/objdir/gcc'
>     make: Nothing to be done for `check-g++//arm-sim/'.
>     make: Nothing to be done for `check-g++//arm-sim/-mthumb'.

Ah, yes, I've noticed that before, but could never track it down.

> I'm not familiar enough with the % catch-all rules to know whether this
> is even possible, so I'll ask:  can this be tweaked so that invoking the
> commands /once/ for the first target doesn't satisfy the deps for all the
> other targets derived from the same rule?

Interesting that you figured out what was going on.  This leads to two
possible work-arounds:

(i) using a static-pattern rule to make it clear that we have
different targets.  I.e., instead of:

$(lang_checks_parallel): site.exp

use something similar to the $(lang_checks) rules, such as:

$(lang_checks_parallel): check-% : $(TESTSUITEDIR)/site.exp


Failing that, adding `force-%' as a dependency should definitely fix
it, as long as there's a rule matching the phony force-%: target.

Would you give it a try?

-- 
Alexandre Oliva             http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


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