[LTP] ltp-full-20160510 compile failed

Cyril Hrubis chrubis@suse.cz
Tue Jun 7 18:12:58 CEST 2016


Hi!
> Just non-parallel build for the Makefiles as far as I remember.
> 
> Sorry that this issue was left unsolved, I will try to look into it
> again. Until then you can workaround it by forcing the nonparallel build
> for CRITICAL_MAKEFILES as does the patch in the email thread.

Looking at the problem again, the Makefile in question is wrong.

What it does (simplified) is:

CRITICAL_MAKEFILES=conformance functional stress

all: $(CRITICAL_MAKEFILES)

$(CRITICAL_MAKEFILES):
	$(MAKE) generate-makefiles


No wonder that it runs $(MAKE) generate-makefiles for each Makefile in
CRITICAL_MAKEFILES.

Well it runs only two instances of the generate-makefiles.sh script
because there is a typo, the CRITICAL_SECTION_MAKEFILE should probably
have been CRITICAL_STRESS_MAKEFILE.

And as it looks to me, the original intend was to pass the directory
(i.e. conformance, functional or stress) to the generate-makefiles.sh
script and subsequently to the locate-test script.

The obvious fix would be changing the makefile to depend only on single
critical Makefile in order to figure out if Makefiles were generated or
not.

For me following patch seems to fix the issue.

Jan: Can you have a look?
Han: Does this patch work for you?

diff --git a/testcases/open_posix_testsuite/Makefile b/testcases/open_posix_testsuite/Makefile
index 500ddc2..e1c7bcd 100644
--- a/testcases/open_posix_testsuite/Makefile
+++ b/testcases/open_posix_testsuite/Makefile
@@ -6,13 +6,7 @@
 
 # Makefiles that are considered critical to execution; if they don't exist
 # all of the Makefiles will be rebuilt by default.
-CRITICAL_CONFORMANCE_MAKEFILE=	conformance/interfaces/timer_settime/Makefile
-CRITICAL_FUNCTIONAL_MAKEFILE=	functional/threads/pi_test/Makefile
-CRITICAL_SECTION_MAKEFILE=	stress/threads/sem_open/Makefile
-
-CRITICAL_MAKEFILES=	$(CRITICAL_CONFORMANCE_MAKEFILE) \
-			$(CRITICAL_FUNCTIONAL_MAKEFILE) \
-			$(CRITICAL_SECTION_MAKEFILE)
+CRITICAL_MAKEFILE=	conformance/interfaces/timer_settime/Makefile
 
 # The default logfile for the tests.
 LOGFILE?=		logfile
@@ -44,7 +38,7 @@ ifeq ($(shell uname -s), Linux)
 include Makefile.linux
 endif
 
-clean: $(CRITICAL_MAKEFILES)
+clean: $(CRITICAL_MAKEFILE)
 	@rm -f $(LOGFILE)*
 	@for dir in $(SUBDIRS) tools; do \
 	    $(MAKE) -C $$dir clean >/dev/null; \
@@ -67,7 +61,7 @@ install: bin-install conformance-install functional-install stress-install
 test: conformance-test functional-test stress-test
 
 # Test build and execution targets.
-conformance-all: $(CRITICAL_CONFORMANCE_MAKEFILE)
+conformance-all: $(CRITICAL_MAKEFILE)
 	@rm -f `if echo "$(LOGFILE)" | grep -q '^/'; then echo "$(LOGFILE)"; else echo "\`pwd\`/$(LOGFILE)"; fi`.$@
 	@$(BUILD_MAKE) -C conformance -j1 all
 
@@ -78,7 +72,7 @@ conformance-test:
 	@rm -f `if echo "$(LOGFILE)" | grep -q '^/'; then echo "$(LOGFILE)"; else echo "\`pwd\`/$(LOGFILE)"; fi`.$@
 	@$(TEST_MAKE) -C conformance test
 
-functional-all: $(CRITICAL_FUNCTIONAL_MAKEFILE)
+functional-all: $(CRITICAL_MAKEFILE)
 	@rm -f `if echo "$(LOGFILE)" | grep -q '^/'; then echo "$(LOGFILE)"; else echo "\`pwd\`/$(LOGFILE)"; fi`.$@
 	@$(BUILD_MAKE) -C functional -j1 all
 
@@ -89,7 +83,7 @@ functional-test:
 	@rm -f `if echo "$(LOGFILE)" | grep -q '^/'; then echo "$(LOGFILE)"; else echo "\`pwd\`/$(LOGFILE)"; fi`.$@
 	@$(TEST_MAKE) -C functional test
 
-stress-all: $(CRITICAL_STRESS_MAKEFILE)
+stress-all: $(CRITICAL_MAKEFILE)
 	@rm -f `if echo "$(LOGFILE)" | grep -q '^/'; then echo "$(LOGFILE)"; else echo "\`pwd\`/$(LOGFILE)"; fi`.$@
 	@$(BUILD_MAKE) -C stress -j1 all
 
@@ -107,12 +101,9 @@ bin-install:
 tools-all:
 	@$(MAKE) -C tools all
 
-$(CRITICAL_MAKEFILES): \
+$(CRITICAL_MAKEFILE): \
     $(top_srcdir)/scripts/generate-makefiles.sh	\
     $(top_srcdir)/CFLAGS			\
     $(top_srcdir)/LDFLAGS			\
     $(top_srcdir)/LDLIBS
 	@$(MAKE) generate-makefiles
-
-#tests-pretty:
-#	$(MAKE) all | column -t -s:

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list