On 16/04/2010 05:47, H.J. Lu wrote: > On Linux/x86-64, "make check" gave me > > make[6]: *** No rule to make target `check-lto', needed by `check'. > > Where does it come from?
I saw this too, but now you made me wonder. So: check-lto is in CHECK_TARGETS because all languages are unconditionally added to check_languages in configure.ac here: > check_languages= > for language in $all_selected_languages > do > check_languages="$check_languages check-$language" > done The check-% targets in Makefile.in are only matched for languages matching lang_checks: > # This is only used for check-% targets that aren't parallelized. > $(filter-out $(lang_checks_parallelized),$(lang_checks)): check-% : site.exp [ snip ] > $(patsubst %,%-subtargets,$(filter-out > $(lang_checks_parallelized),$(lang_checks))): check-%-subtargets: and lang_checks is built up from contributions from each Make-lang.in: > $ grep lang_checks */Ma* > cp/Make-lang.in:lang_checks += check-g++ > cp/Make-lang.in:lang_checks_parallelized += check-g++ > fortran/Make-lang.in:lang_checks += check-gfortran > fortran/Make-lang.in:lang_checks_parallelized += check-gfortran > objc/Make-lang.in:lang_checks += check-objc > objcp/Make-lang.in:lang_checks += check-obj-c++ Probably the simplest solution would be for lto/Make-lang.in to add a dummy check-lto goal that does nothing, I think. The original error itself is harmless. cheers, DaveK