summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-02-06 18:28:33 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-02-06 18:28:33 +0000
commit5cd81881e221d2943ca41b2da7bb87c0ede3386b (patch)
treebb82b1e984d97751d9f1b66aab832c0778584dd9
parent7e1e68b45c4f2e048213cffa8ccd42a1e5c4fec6 (diff)
downloadglibc-5cd81881e221d2943ca41b2da7bb87c0ede3386b.tar.gz
glibc-5cd81881e221d2943ca41b2da7bb87c0ede3386b.tar.xz
glibc-5cd81881e221d2943ca41b2da7bb87c0ede3386b.zip
Eliminate libm-test.stmp.
math/Makefile uses libm-test.stmp to handle dependencies involving
multiple generated files all generated by a single sequence of
commands in a single Makefile rule.

Having separated the libm-test-ulps.h and libm-test.c generation into
separate runs of gen-libm-test.pl, there is now no need for a single
rule to generate multiple target files; each of the three target files
involved can be generated by a separate Makefile rule, meaning normal
dependencies on the individual files can be used and so libm-test.stmp
is not needed at all.  This patch does just that, eliminating the
.stmp file, in further preparation for when there are many separate
libm-test-<func>.c files generated from libm-test-<func>.inc and the
dependencies are on just the relevant .c file in each case.

Tested for x86_64.

	* math/Makefile (generated): Do not include libm-test.stmp.
	($(addprefix $(objpfx), $(libm-tests-generated))): Do not depend
	on $(objpfx)libm-test.stmp.
	($(objpfx)libm-test.stmp): Remove rule.
	($(objpfx)libm-test-ulps.h): New rule.
	($(objpfx)libm-test.c): Likewise.
	($(objpfx)libm-have-vector-test.h): Likewise.
	($(addprefix $(objpfx), $(libm-tests.o)): Depend directly on
	individual generated files, not libm-test.stmp.
-rw-r--r--ChangeLog10
-rw-r--r--math/Makefile22
2 files changed, 22 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index d5516f0e79..cde75b3fe1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2017-02-06  Joseph Myers  <joseph@codesourcery.com>
 
+	* math/Makefile (generated): Do not include libm-test.stmp.
+	($(addprefix $(objpfx), $(libm-tests-generated))): Do not depend
+	on $(objpfx)libm-test.stmp.
+	($(objpfx)libm-test.stmp): Remove rule.
+	($(objpfx)libm-test-ulps.h): New rule.
+	($(objpfx)libm-test.c): Likewise.
+	($(objpfx)libm-have-vector-test.h): Likewise.
+	($(addprefix $(objpfx), $(libm-tests.o)): Depend directly on
+	individual generated files, not libm-test.stmp.
+
 	* math/gen-libm-test.pl ($output_dir): Remove variable.
 	($srcdir): Likewise.
 	($opt_a): New variable.
diff --git a/math/Makefile b/math/Makefile
index bbee8f3c58..b7ac89762f 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -208,20 +208,21 @@ libm-vec-test-wrappers = $(addsuffix -wrappers, $(libm-vec-tests))
 test-extras += $(libm-vec-test-wrappers)
 extra-test-objs += $(addsuffix .o, $(libm-vec-test-wrappers))
 libm-tests-generated = libm-test-ulps.h libm-have-vector-test.h libm-test.c
-generated += $(libm-tests-generated) libm-test.stmp
+generated += $(libm-tests-generated)
 
 ulps-file = $(firstword $(wildcard $(sysdirs:%=%/libm-test-ulps)))
 
-$(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp
+$(objpfx)libm-test-ulps.h: $(ulps-file) gen-libm-test.pl
+	$(make-target-directory)
+	$(PERL) gen-libm-test.pl -u $< -H $@
+
+$(objpfx)libm-test.c: libm-test.inc gen-libm-test.pl auto-libm-test-out
+	$(make-target-directory)
+	$(PERL) gen-libm-test.pl -c $< -a auto-libm-test-out -C $@
 
-$(objpfx)libm-test.stmp: $(ulps-file) libm-test.inc gen-libm-test.pl \
-			 gen-libm-have-vector-test.sh auto-libm-test-out
+$(objpfx)libm-have-vector-test.h: libm-test.inc gen-libm-have-vector-test.sh
 	$(make-target-directory)
-	$(PERL) gen-libm-test.pl -u $< -H "$(objpfx)libm-test-ulps.h"
-	$(PERL) gen-libm-test.pl -c libm-test.inc -a auto-libm-test-out \
-				 -C "$(objpfx)libm-test.c"
-	$(SHELL) gen-libm-have-vector-test.sh > $(objpfx)libm-have-vector-test.h
-	@echo > $@
+	$(SHELL) gen-libm-have-vector-test.sh > $@
 endif
 
 libm-test-fast-math-cflags = -fno-builtin -D__FAST_MATH__ -DTEST_FAST_MATH
@@ -337,7 +338,8 @@ $(foreach t, $(call type-foreach, $(gen-all-calls)), \
 
 ifneq (no,$(PERL))
 # This must come after the inclusion of sysdeps Makefiles via Rules.
-$(addprefix $(objpfx), $(libm-tests.o)): $(objpfx)libm-test.stmp
+$(addprefix $(objpfx), $(libm-tests.o)): $(addprefix $(objpfx),\
+						     $(libm-tests-generated))
 
 # Run the math programs to automatically generate ULPs files.
 .PHONY: regen-ulps