From 40fefba1b5b05d05a3a4b48796a1006db90d8f74 Mon Sep 17 00:00:00 2001 From: Torvald Riegel Date: Tue, 8 Oct 2013 14:04:10 +0300 Subject: [PATCH] benchtests: Add include-sources directive. This adds the "include-sources" directive to scripts/bench.pl. This allows for including source code (vs including headers, which might get a different search path) after the inclusion of any headers. --- ChangeLog | 5 +++++ benchtests/README | 7 +++++-- scripts/bench.pl | 22 ++++++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 521f675c60..1291b75c73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-10-10 Torvald Riegel + + * scripts/bench.pl: Add include-sources directive. + * benchtests/README: Update documentation. + 2013-10-10 Joseph Myers * soft-fp/soft-fp.h (FP_INIT_EXCEPTIONS): New macro. diff --git a/benchtests/README b/benchtests/README index 5faca53511..0c643a6590 100644 --- a/benchtests/README +++ b/benchtests/README @@ -51,9 +51,12 @@ one to add `foo' to the bench tests: inputs. - ret: This should be assigned the type that the function returns. This directive may be skipped if the function does not return a value. - - includes: This should be assigned a comma separated list of headers that + - includes: This should be assigned a comma-separated list of headers that need to be included to provide declarations for the function and types it - may need. + may need (specifically, this includes using "#include
"). + - include-sources: This should be assigned a comma-separated list of source + files that need to be included to provide definitions of global variables + and functions (specifically, this includes using "#include "source"). - name: See following section for instructions on how to use this directive. Lines beginning with a single hash '#' are treated as comments. See diff --git a/scripts/bench.pl b/scripts/bench.pl index 5fe95d0c2f..492ab816ed 100755 --- a/scripts/bench.pl +++ b/scripts/bench.pl @@ -34,7 +34,8 @@ my $getret = ""; my $variant = ""; my @curvals; my %vals; -my @include_files; +my @include_headers; +my @include_sources; my $incl; open INPUTS, "<$func-inputs" or die $!; @@ -43,7 +44,7 @@ LINE:while () { chomp; # Directives. - if (/^## (\w+): (.*)/) { + if (/^## ([\w-]+): (.*)/) { # Function argument types. if ($1 eq "args") { @args = split(":", $2); @@ -55,7 +56,11 @@ LINE:while () { } elsif ($1 eq "includes") { - @include_files = split (",", $2); + @include_headers = split (",", $2); + } + + elsif ($1 eq "include-sources") { + @include_sources = split (",", $2); } # New variant. This is the only directive allowed in the body of the @@ -72,6 +77,10 @@ LINE:while () { undef @curvals; next LINE; } + + else { + die "Unknown directive: ".$1; + } } # Skip over comments. @@ -86,10 +95,15 @@ my $bench_func = "#define CALL_BENCH_FUNC(v, i) $func ("; # Print the definitions and macros. -foreach $incl (@include_files) { +foreach $incl (@include_headers) { print "#include <" . $incl . ">\n"; } +# Print the source files. +foreach $incl (@include_sources) { + print "#include \"" . $incl . "\"\n"; +} + if (@args > 0) { # Save values in the last variant. $vals{$variant} = \@curvals; -- 2.43.5