about summary refs log tree commit diff
path: root/benchtests
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2018-03-15 15:44:58 +0000
committerWilco Dijkstra <wdijkstr@arm.com>2018-03-15 15:44:58 +0000
commitf1c8185d345e724f6c94242730dbe8c26ce99959 (patch)
treef5e1508a83faa1323ce621fe7ef75b146a8f3cd2 /benchtests
parentb47c3e7637efb77818cbef55dcd0ed1f0ea0ddf1 (diff)
downloadglibc-f1c8185d345e724f6c94242730dbe8c26ce99959.tar.gz
glibc-f1c8185d345e724f6c94242730dbe8c26ce99959.tar.xz
glibc-f1c8185d345e724f6c94242730dbe8c26ce99959.zip
Use correct includes in benchtests
Currently the benchtests are run with internal GLIBC headers, which is incorrect.
Defining _ISOMAC in the makefile ensures the internal headers are bypassed.
Fix all tests which were relying on internal defines or includes.

	* benchtests/Makefile: Define _ISOMAC.
	* benchtests/bench-strcoll.c: Add missing sys/stat.h include.
	* benchtests/bench-string.h: Define inhibit_loop_to_libcall macro.
	* benchtests/bench-strstr.c: Define empty libc_hidden_builtin_def.
	* benchtests/bench-strtok.c (oldstrtok): Use rawmemchr.
	* benchtests/bench-timing.h: Define attribute_hidden.
Diffstat (limited to 'benchtests')
-rw-r--r--benchtests/Makefile2
-rw-r--r--benchtests/bench-strcoll.c1
-rw-r--r--benchtests/bench-string.h10
-rw-r--r--benchtests/bench-strstr.c1
-rw-r--r--benchtests/bench-strtok.c2
-rw-r--r--benchtests/bench-timing.h1
6 files changed, 15 insertions, 2 deletions
diff --git a/benchtests/Makefile b/benchtests/Makefile
index ff99d25fbf..bcd6a9c26d 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -125,7 +125,7 @@ ifndef BENCH_DURATION
 BENCH_DURATION := 10
 endif
 
-CPPFLAGS-nonlib += -DDURATION=$(BENCH_DURATION)
+CPPFLAGS-nonlib += -DDURATION=$(BENCH_DURATION) -D_ISOMAC
 
 # Use clock_gettime to measure performance of functions.  The default is to use
 # HP_TIMING if it is available.
diff --git a/benchtests/bench-strcoll.c b/benchtests/bench-strcoll.c
index 4a0b871048..ac7f32fc6a 100644
--- a/benchtests/bench-strcoll.c
+++ b/benchtests/bench-strcoll.c
@@ -22,6 +22,7 @@
 #include <stdlib.h>
 #include <locale.h>
 #include <unistd.h>
+#include <sys/stat.h>
 #include "json-lib.h"
 #include "bench-timing.h"
 #include <string.h>
diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h
index 6be6956f4b..94aaafdaf2 100644
--- a/benchtests/bench-string.h
+++ b/benchtests/bench-string.h
@@ -19,6 +19,16 @@
 #include <getopt.h>
 #include <sys/cdefs.h>
 
+/* We are compiled under _ISOMAC, so libc-symbols.h does not do this
+   for us.  */
+#include "config.h"
+#ifdef HAVE_CC_INHIBIT_LOOP_TO_LIBCALL
+# define inhibit_loop_to_libcall \
+    __attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
+#else
+# define inhibit_loop_to_libcall
+#endif
+
 typedef struct
 {
   const char *name;
diff --git a/benchtests/bench-strstr.c b/benchtests/bench-strstr.c
index 86d5e829da..c30cd10785 100644
--- a/benchtests/bench-strstr.c
+++ b/benchtests/bench-strstr.c
@@ -22,6 +22,7 @@
 
 
 #define STRSTR simple_strstr
+#define libc_hidden_builtin_def(X)
 #include "../string/strstr.c"
 
 
diff --git a/benchtests/bench-strtok.c b/benchtests/bench-strtok.c
index d01c57669c..ba8c2dcc56 100644
--- a/benchtests/bench-strtok.c
+++ b/benchtests/bench-strtok.c
@@ -42,7 +42,7 @@ oldstrtok (char *s, const char *delim)
   s = strpbrk (token, delim);
   if (s == NULL)
     /* This token finishes the string.  */
-    olds = __rawmemchr (token, '\0');
+    olds = rawmemchr (token, '\0');
   else
     {
       /* Terminate the token and make OLDS point past it.  */
diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h
index bcba131c23..b9ea04bb02 100644
--- a/benchtests/bench-timing.h
+++ b/benchtests/bench-timing.h
@@ -16,6 +16,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define attribute_hidden
 #include <hp-timing.h>
 #include <stdint.h>