This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] 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 now run with correct headers on AArch64.

OK for commit?

ChangeLog:
2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>

	* 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.

--

diff --git a/benchtests/Makefile b/benchtests/Makefile
index 419853f0b9cb91cde73a76d97cc5b998e4420e8e..5da3fd9fe5ac3ef855e32cde36b852d225ba2bf1 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 4a0b871048e885b87b7e512d7a8fd89f4ab04f28..ac7f32fc6a4f2b2c2a4bf6008dfcad8ae59557bb 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 6be6956f4bdb343052e994dbf41105d6bc9c2e0a..94aaafdaf2e1319b8cebb5baaf51f02b52182d5e 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 86d5e829dae4b1f2e4969a571a2a75dff46d2477..c30cd1078586fe66c9177707ba603bb6ba0476a7 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 d01c57669cb286f82986b77a97781dd9b251a640..ba8c2dcc5630e9c67908d3feb66e30c76b51d36d 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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]