llvm-test make problems

hello,

i've problems running the llvm-test suite using debian linux and make
3.81. it works fine on my laptop, running openSuse and make 3.81.

i already tried to install make 3.75 and 3.79, both did not work.

the error message is:

make[1]: *** No rule to make target `Output/sse.expantfft.bc', needed by
`Output/sse.expandfft.linked.rbc'. Stop.

using make -p, i see that Makefile.singlesrc has the following pattern
rule, but it does not match for some reason!

Output/%.linked.rbc: Output/%.bc
        -cp -f $< $@

i played a little with the makefile and found that this rule matches,
when i add it to Makefile.singlesrc:

Output/sse.expandfft.linked.rbc: Output/sse.expantfft.bc
        -cp -f $< $@

so it seems that it is a problem with the pattern rule??

on irc anton told me that there was a similar problem on mingw, and that
an older make version (3.79) helped there. has anybody else encountered
these problems?

florian

hello,

i've problems running the llvm-test suite using debian linux and make
3.81. it works fine on my laptop, running openSuse and make 3.81.

i already tried to install make 3.75 and 3.79, both did not work.

the error message is:

make[1]: *** No rule to make target `Output/sse.expantfft.bc', needed by
`Output/sse.expandfft.linked.rbc'. Stop.

Have you modified the makefile in any way? Note that sse.expantfft.bc should be sse.expandfft.bc

using make -p, i see that Makefile.singlesrc has the following pattern
rule, but it does not match for some reason!

Output/%.linked.rbc: Output/%.bc
       -cp -f $< $@

i played a little with the makefile and found that this rule matches,
when i add it to Makefile.singlesrc:

Output/sse.expandfft.linked.rbc: Output/sse.expantfft.bc
       -cp -f $< $@

You've mis-typed sse.expandfft.bc as sse.expantfft.bc

so it seems that it is a problem with the pattern rule??

Nope, just a typo.

Reid.

Reid Spencer wrote:

Have you modified the makefile in any way? Note that sse.expantfft.bc should be sse.expandfft.bc

no, did'nt change it.
the typo before seems to be an error while copying from the terminal.

i've cleaned everything and tried again. this is the messsage:

[brandner:/localtmp/brandner/dev/llvm-test:529] make -j1 TEST=nightly
2>&1 | tee report.nightly.raw.out
make[1]: Entering directory `/localtmp/brandner/dev/llvm-test/SingleSource'
make[2]: Entering directory
`/localtmp/brandner/dev/llvm-test/SingleSource/UnitTests'
make[3]: Entering directory
`/localtmp/brandner/dev/llvm-test/SingleSource/UnitTests/Vector'
make[4]: Entering directory
`/localtmp/brandner/dev/llvm-test/SingleSource/UnitTests/Vector/SSE'
make[4]: *** No rule to make target `Output/sse.expandfft.linked.rbc',
needed by `Output/sse.expandfft.linked.bc'. Stop.
make[4]: Leaving directory
`/localtmp/brandner/dev/llvm-test/SingleSource/UnitTests/Vector/SSE'
make[3]: *** [test] Error 1
make[3]: Leaving directory
`/localtmp/brandner/dev/llvm-test/SingleSource/UnitTests/Vector'
make[2]: *** [test] Error 1
make[2]: Leaving directory
`/localtmp/brandner/dev/llvm-test/SingleSource/UnitTests'
make[1]: *** [UnitTests/.maketest] Error 2
make[1]: Leaving directory `/localtmp/brandner/dev/llvm-test/SingleSource'
make: *** [SingleSource/.maketest] Error 2

Florian,

I don't know. This doesn't happen for me. I use make 3.80. The only things I can think of:

1. Is your "opt" tool built?
2. Has the PROGRAMS_TO_TEST make variable been subverted somehow?
3. Do you have strange environment settings that affect make?

Reid.

Is it just this one test that doesn't work, or do no tests work? If no tests work, you probably need to rerun configure in llvm-test. Make sure that llvm-gcc is in your path and detected by the configure script.

-Chris

Chris Lattner wrote:

Is it just this one test that doesn't work, or do no tests work? If no
tests work, you probably need to rerun configure in llvm-test. Make
sure that llvm-gcc is in your path and detected by the configure script.

i found the problem. we have a script that builds llvm and llvm-gcc and
configures llvm-test. this script had a little flaw so that LLVMGCCDIR
was not set properly. as a result, llvm-gcc, opt, etc. where found
automatically, but cc1 and cc1plus not. reconfiguring llvm and llvm-test
did work in the end.

cc1 and cc1plus are required by the rules in Makefile.tests, e.g.:
Output/%.bc: %.c $(LCC1) Output/.dir $(INCLUDES)
        -$(LLVMGCC) $(CPPFLAGS) $(LCCFLAGS) $(TARGET_FLAGS) -O0 -c $< \
    -o $@ -emit-llvm
        -$(call UPGRADE_LL,$@)

should`t LLVMGCC also be a prerequisite here?

i found in the mailing list archive, that someone else had a similar
problem (without a solution). so it seems this kind of error occurs from
time to time. how about adding rules like these to the makefiles:

$(LCC1XX):
        @echo "Missing tool LLC1XX: $(LCC1XX)." && false

$(LCC1):
        @echo "Missing tool LLC1: $(LCC1)." && false

$(LLVMAS):
        @echo "Missing tool LLVMAS: $(LLVMAS)." && false

this would report missing tools automatically. if you want i could
prepare a patch?

cheers,
florian