From f1c8185d345e724f6c94242730dbe8c26ce99959 Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Thu, 15 Mar 2018 15:44:58 +0000 Subject: 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. --- ChangeLog | 9 +++++++++ benchtests/Makefile | 2 +- benchtests/bench-strcoll.c | 1 + benchtests/bench-string.h | 10 ++++++++++ benchtests/bench-strstr.c | 1 + benchtests/bench-strtok.c | 2 +- benchtests/bench-timing.h | 1 + 7 files changed, 24 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 38154c2..ca38d1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2018-03-15 Wilco Dijkstra + + * 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. + 2018-03-15 Siddhesh Poyarekar * sysdeps/aarch64/strncmp.S (strncmp): Use lsr instead of diff --git a/benchtests/Makefile b/benchtests/Makefile index ff99d25..bcd6a9c 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 4a0b871..ac7f32f 100644 --- a/benchtests/bench-strcoll.c +++ b/benchtests/bench-strcoll.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "json-lib.h" #include "bench-timing.h" #include diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h index 6be6956..94aaafd 100644 --- a/benchtests/bench-string.h +++ b/benchtests/bench-string.h @@ -19,6 +19,16 @@ #include #include +/* 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 86d5e82..c30cd10 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 d01c576..ba8c2dc 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 bcba131..b9ea04b 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 . */ +#define attribute_hidden #include #include -- cgit v1.1