summaryrefslogtreecommitdiff
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
parentaarch64/strncmp: Use lsr instead of mov+lsr (diff)
downloadglibc-f1c8185d345e724f6c94242730dbe8c26ce99959.tar.gz
glibc-f1c8185d345e724f6c94242730dbe8c26ce99959.tar.bz2
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>