benchtests: Add include-sources directive.
authorTorvald Riegel <triegel@redhat.com>
Tue, 8 Oct 2013 11:04:10 +0000 (14:04 +0300)
committerTorvald Riegel <triegel@redhat.com>
Thu, 10 Oct 2013 11:45:30 +0000 (14:45 +0300)
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
benchtests/README
scripts/bench.pl

index 521f675..1291b75 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-10  Torvald Riegel  <triegel@redhat.com>
+
+       * scripts/bench.pl: Add include-sources directive.
+       * benchtests/README: Update documentation.
+
 2013-10-10  Joseph Myers  <joseph@codesourcery.com>
 
        * soft-fp/soft-fp.h (FP_INIT_EXCEPTIONS): New macro.
index 5faca53..0c643a6 100644 (file)
@@ -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 <header>").
+  - 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
index 5fe95d0..492ab81 100755 (executable)
@@ -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 (<INPUTS>) {
   chomp;
 
   # Directives.
-  if (/^## (\w+): (.*)/) {
+  if (/^## ([\w-]+): (.*)/) {
     # Function argument types.
     if ($1 eq "args") {
       @args = split(":", $2);
@@ -55,7 +56,11 @@ LINE:while (<INPUTS>) {
     }
 
     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 (<INPUTS>) {
       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;