aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rw-r--r--math/Makefile7
-rw-r--r--math/README.libm-test2
-rwxr-xr-xmath/gen-libm-test.pl39
4 files changed, 48 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index d058211edb..d5516f0e79 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2017-02-06 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl ($output_dir): Remove variable.
+ ($srcdir): Likewise.
+ ($opt_a): New variable.
+ ($opt_c): Likewise.
+ ($opt_C): Likewise.
+ ($opt_H): Likewise.
+ (-n): Make option take argument and use it as NewUlps output.
+ (-a): New option. Use its argument for auto-libm-test-out input.
+ (-c): New option. Use its argument for libm-test.inc input.
+ (-C): New option. Use its argument for libm-test.c output.
+ (-H): New option. Use its argument for libm-test-ulps.h output.
+ (top level): Only process inputs needed to generate outputs
+ specified by command-line options. Only generate outputs
+ specified by command-line options.
+ * math/README.libm-test: Update example gen-libm-test.pl command.
+ * math/Makefile ($(objpfx)libm-test.stmp): Update gen-libm-test.pl
+ commands.
+ (regen-ulps): Likewise.
+
2017-02-06 Wilco Dijkstra <wdijkstr@arm.com>
* hurd/path-lookup.c (file_name_path_scan): Rename index to strchr.
diff --git a/math/Makefile b/math/Makefile
index dd3b05ab48..bbee8f3c58 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -217,7 +217,9 @@ $(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp
$(objpfx)libm-test.stmp: $(ulps-file) libm-test.inc gen-libm-test.pl \
gen-libm-have-vector-test.sh auto-libm-test-out
$(make-target-directory)
- $(PERL) gen-libm-test.pl -u $< -o "$(objpfx)"
+ $(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 > $@
endif
@@ -353,7 +355,8 @@ regen-ulps: $(addprefix $(objpfx),$(libm-tests))
cat $(objpfx)ULPs >> $(objpfx)libm-test-ulps; \
rm $(objpfx)ULPs; \
done; \
- $(PERL) gen-libm-test.pl -o $(objpfx) -n -u $(objpfx)libm-test-ulps; \
+ $(PERL) gen-libm-test.pl -n $(objpfx)NewUlps \
+ -u $(objpfx)libm-test-ulps; \
echo "Automatic regeneration of ULPs complete."; \
echo "Difference between the current baseline and the new baseline is:";\
diff -urN $(ulps-file) $(objpfx)NewUlps; \
diff --git a/math/README.libm-test b/math/README.libm-test
index 69e2d3f1b6..d0a528ee34 100644
--- a/math/README.libm-test
+++ b/math/README.libm-test
@@ -81,7 +81,7 @@ generate the ULPs for all other formats, the tests will be appending the
data to the "ULPs" file. As final step run "gen-libm-test.pl" with the
file as input and ask to generate a pretty printed output in the file
"NewUlps":
- gen-libm-test.pl -u ULPs -n
+ gen-libm-test.pl -u ULPs -n NewUlps
Copy "NewUlps" to "libm-test-ulps" in the appropriate machine sysdep
directory.
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
index a58194dfd6..a931bc542f 100755
--- a/math/gen-libm-test.pl
+++ b/math/gen-libm-test.pl
@@ -40,7 +40,7 @@ use strict;
use vars qw ($input $output $auto_input);
use vars qw (%results);
use vars qw (%beautify @all_floats %all_floats_pfx);
-use vars qw ($output_dir $ulps_file $srcdir);
+use vars qw ($ulps_file);
use vars qw (%auto_tests);
# all_floats is sorted and contains all recognised float types
@@ -73,38 +73,41 @@ use vars qw (%auto_tests);
# get Options
# Options:
+# a: auto-libm-test-out input file
+# c: .inc input file
# u: ulps-file
+# n: new ulps file
+# C: libm-test.c output file
+# H: libm-test-ulps.h output file
# h: help
-# o: output-directory
-# n: generate new ulps file
-use vars qw($opt_u $opt_h $opt_o $opt_n);
-getopts('u:o:nh');
+use vars qw($opt_a $opt_c $opt_u $opt_n $opt_C $opt_H $opt_h);
+getopts('a:c:u:n:C:H:h');
$ulps_file = 'libm-test-ulps';
-$output_dir = '';
-($srcdir = $0) =~ s{[^/]*$}{};
if ($opt_h) {
print "Usage: gen-libm-test.pl [OPTIONS]\n";
print " -h print this help, then exit\n";
- print " -o DIR directory where generated files will be placed\n";
- print " -n only generate sorted file NewUlps from libm-test-ulps\n";
+ print " -a FILE input file with automatically generated tests\n";
+ print " -c FILE input file .inc file with tests\n";
print " -u FILE input file with ulps\n";
+ print " -n FILE generate sorted file FILE from libm-test-ulps\n";
+ print " -C FILE generate output C file FILE from libm-test.inc\n";
+ print " -H FILE generate output ulps header FILE from libm-test-ulps\n";
exit 0;
}
$ulps_file = $opt_u if ($opt_u);
-$output_dir = $opt_o if ($opt_o);
-$input = "libm-test.inc";
-$auto_input = "${srcdir}auto-libm-test-out";
-$output = "${output_dir}libm-test.c";
+$input = $opt_c if ($opt_c);
+$auto_input = $opt_a if ($opt_a);
+$output = $opt_C if ($opt_C);
-&parse_ulps ($ulps_file);
-&parse_auto_input ($auto_input);
-&generate_testfile ($input, $output) unless ($opt_n);
-&output_ulps ("${output_dir}libm-test-ulps.h", $ulps_file) unless ($opt_n);
-&print_ulps_file ("${output_dir}NewUlps") if ($opt_n);
+&parse_ulps ($ulps_file) if ($opt_H || $opt_n);
+&parse_auto_input ($auto_input) if ($opt_C);
+&generate_testfile ($input, $output) if ($opt_C);
+&output_ulps ($opt_H, $ulps_file) if ($opt_H);
+&print_ulps_file ($opt_n) if ($opt_n);
# Return a nicer representation
sub beautify {