mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-18 14:40:06 +00:00
benchtests: Support for cross-building benchmarks
This patch adds full support for cross-building benchmarks. Some benchmarks like those that need locales to be generated cannot be built and are hence skipped for cross builds. Tested by cross building for aarch64 on x86_64 and then running the generated benchmark on aarch64. * benchtests/Makefile (wcsmbs-benchset): Include only for native builds and runs. (LOCALES): Likewise. (bench-build): Build timing-type here instead of the bench target. Generate locale only for native builds. * benchtests/README: Add note for cross-building.
This commit is contained in:
parent
d7aea0cf06
commit
2d304f3c6f
@ -1,5 +1,12 @@
|
|||||||
2016-04-20 Siddhesh Poyarekar <sid@reserved-bit.com>
|
2016-04-20 Siddhesh Poyarekar <sid@reserved-bit.com>
|
||||||
|
|
||||||
|
* benchtests/Makefile (wcsmbs-benchset): Include only for
|
||||||
|
native builds and runs.
|
||||||
|
(LOCALES): Likewise.
|
||||||
|
(bench-build): Build timing-type here instead of the bench
|
||||||
|
target. Generate locale only for native builds.
|
||||||
|
* benchtests/README: Add note for cross-building.
|
||||||
|
|
||||||
* benchtests/Makefile (bench-clean): Clean up extra-objs.
|
* benchtests/Makefile (bench-clean): Clean up extra-objs.
|
||||||
|
|
||||||
* benchtests/README: Update README to include instructions on
|
* benchtests/README: Update README to include instructions on
|
||||||
|
@ -39,11 +39,19 @@ string-benchset := bcopy bzero memccpy memchr memcmp memcpy memmem memmove \
|
|||||||
strncasecmp strncat strncmp strncpy strnlen strpbrk strrchr \
|
strncasecmp strncat strncmp strncpy strnlen strpbrk strrchr \
|
||||||
strspn strstr strcpy_chk stpcpy_chk memrchr strsep strtok \
|
strspn strstr strcpy_chk stpcpy_chk memrchr strsep strtok \
|
||||||
strcoll memcpy-large memmove-large memset-large
|
strcoll memcpy-large memmove-large memset-large
|
||||||
|
|
||||||
|
# Build and run locale-dependent benchmarks only if we're building natively.
|
||||||
|
ifeq (no,$(cross-compiling))
|
||||||
wcsmbs-benchset := wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat \
|
wcsmbs-benchset := wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat \
|
||||||
wcscmp wcsncmp wcschr wcschrnul wcsrchr wcsspn wcspbrk wcscspn \
|
wcscmp wcsncmp wcschr wcschrnul wcsrchr wcsspn wcspbrk wcscspn \
|
||||||
wmemchr wmemset wmemcmp
|
wmemchr wmemset wmemcmp
|
||||||
|
else
|
||||||
|
wcsmbs-benchset :=
|
||||||
|
endif
|
||||||
|
|
||||||
string-benchset-all := $(string-benchset) ${wcsmbs-benchset}
|
string-benchset-all := $(string-benchset) ${wcsmbs-benchset}
|
||||||
|
|
||||||
|
ifeq (no,$(cross-compiling))
|
||||||
# We have to generate locales
|
# We have to generate locales
|
||||||
LOCALES := en_US.UTF-8 tr_TR.UTF-8 cs_CZ.UTF-8 fa_IR.UTF-8 fr_FR.UTF-8 \
|
LOCALES := en_US.UTF-8 tr_TR.UTF-8 cs_CZ.UTF-8 fa_IR.UTF-8 fr_FR.UTF-8 \
|
||||||
ja_JP.UTF-8 si_LK.UTF-8 en_GB.UTF-8 vi_VN.UTF-8 ar_SA.UTF-8 \
|
ja_JP.UTF-8 si_LK.UTF-8 en_GB.UTF-8 vi_VN.UTF-8 ar_SA.UTF-8 \
|
||||||
@ -51,6 +59,7 @@ LOCALES := en_US.UTF-8 tr_TR.UTF-8 cs_CZ.UTF-8 fa_IR.UTF-8 fr_FR.UTF-8 \
|
|||||||
he_IL.UTF-8 is_IS.UTF-8 es_ES.UTF-8 hi_IN.UTF-8 sv_SE.UTF-8 \
|
he_IL.UTF-8 is_IS.UTF-8 es_ES.UTF-8 hi_IN.UTF-8 sv_SE.UTF-8 \
|
||||||
hu_HU.UTF-8 it_IT.UTF-8 sr_RS.UTF-8 zh_CN.UTF-8
|
hu_HU.UTF-8 it_IT.UTF-8 sr_RS.UTF-8 zh_CN.UTF-8
|
||||||
include ../gen-locales.mk
|
include ../gen-locales.mk
|
||||||
|
endif
|
||||||
|
|
||||||
stdlib-benchset := strtod
|
stdlib-benchset := strtod
|
||||||
|
|
||||||
@ -131,10 +140,16 @@ bench-clean:
|
|||||||
rm -f $(timing-type) $(addsuffix .o,$(timing-type))
|
rm -f $(timing-type) $(addsuffix .o,$(timing-type))
|
||||||
rm -f $(addprefix $(objpfx),$(bench-extra-objs))
|
rm -f $(addprefix $(objpfx),$(bench-extra-objs))
|
||||||
|
|
||||||
bench: $(timing-type) $(gen-locales) bench-build bench-set bench-func \
|
bench: bench-build bench-set bench-func bench-malloc
|
||||||
bench-malloc
|
# Target to only build the benchmark without running it. We generate locales
|
||||||
# Target to only build the benchmark without running it.
|
# only if we're building natively.
|
||||||
bench-build: $(binaries-bench) $(binaries-benchset) $(binaries-bench-malloc)
|
ifeq (no,$(cross-compiling))
|
||||||
|
bench-build: $(gen-locales) $(timing-type) $(binaries-bench) \
|
||||||
|
$(binaries-benchset) $(binaries-bench-malloc)
|
||||||
|
else
|
||||||
|
bench-build: $(timing-type) $(binaries-bench) $(binaries-benchset) \
|
||||||
|
$(binaries-bench-malloc)
|
||||||
|
endif
|
||||||
|
|
||||||
bench-set: $(binaries-benchset)
|
bench-set: $(binaries-benchset)
|
||||||
for run in $^; do \
|
for run in $^; do \
|
||||||
|
@ -49,7 +49,9 @@ benchmarks from the build directory as usual:
|
|||||||
$ make bench
|
$ make bench
|
||||||
|
|
||||||
make sure the copy preserves timestamps by using either rsync or scp -p
|
make sure the copy preserves timestamps by using either rsync or scp -p
|
||||||
otherwise the above command may try to build the benchmark again.
|
otherwise the above command may try to build the benchmark again. Benchmarks
|
||||||
|
that require generated code to be executed during the build are skipped when
|
||||||
|
cross-building.
|
||||||
|
|
||||||
Adding a function to benchtests:
|
Adding a function to benchtests:
|
||||||
===============================
|
===============================
|
||||||
|
Loading…
Reference in New Issue
Block a user