diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2018-03-15 15:44:58 +0000 |
---|---|---|
committer | Wilco Dijkstra <wdijkstr@arm.com> | 2018-03-15 15:44:58 +0000 |
commit | f1c8185d345e724f6c94242730dbe8c26ce99959 (patch) | |
tree | f5e1508a83faa1323ce621fe7ef75b146a8f3cd2 /benchtests | |
parent | b47c3e7637efb77818cbef55dcd0ed1f0ea0ddf1 (diff) | |
download | glibc-f1c8185d345e724f6c94242730dbe8c26ce99959.tar.gz |
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/Makefile | 2 | ||||
-rw-r--r-- | benchtests/bench-strcoll.c | 1 | ||||
-rw-r--r-- | benchtests/bench-string.h | 10 | ||||
-rw-r--r-- | benchtests/bench-strstr.c | 1 | ||||
-rw-r--r-- | benchtests/bench-strtok.c | 2 | ||||
-rw-r--r-- | benchtests/bench-timing.h | 1 |
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> |