[v2,2/2] benchtests: Building benchmarks as static executables
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
dj/TryBot-32bit |
success
|
Build for i686
|
Commit Message
Building benchmarks as static executables:
=========================================
To build benchmarks as static executables, on the build system, run:
$ make STATIC-BENCHTESTS=yes bench-build
You can copy benchmark executables to another machine and run them
without copying the source nor build directories.
---
benchtests/Makefile | 26 +++++++++++++++++++-------
benchtests/README | 10 ++++++++++
2 files changed, 29 insertions(+), 7 deletions(-)
Comments
On Mon, Aug 9, 2021 at 7:17 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> Building benchmarks as static executables:
> =========================================
>
> To build benchmarks as static executables, on the build system, run:
>
> $ make STATIC-BENCHTESTS=yes bench-build
>
> You can copy benchmark executables to another machine and run them
> without copying the source nor build directories.
> ---
> benchtests/Makefile | 26 +++++++++++++++++++-------
> benchtests/README | 10 ++++++++++
> 2 files changed, 29 insertions(+), 7 deletions(-)
>
> diff --git a/benchtests/Makefile b/benchtests/Makefile
> index 1530939a8c..4fcd73131a 100644
> --- a/benchtests/Makefile
> +++ b/benchtests/Makefile
> @@ -110,11 +110,23 @@ else
> bench-malloc := $(filter malloc-%,${BENCHSET})
> endif
>
> -$(addprefix $(objpfx)bench-,$(bench-math)): $(libm)
> -$(addprefix $(objpfx)bench-,$(math-benchset)): $(libm)
> -$(addprefix $(objpfx)bench-,$(bench-pthread)): $(shared-thread-library)
> -$(addprefix $(objpfx)bench-,$(bench-malloc)): $(shared-thread-library)
> -$(addprefix $(objpfx)bench-,pthread-locks): $(libm)
> +ifeq (${STATIC-BENCHTESTS},yes)
> ++link-benchtests = $(+link-static-tests)
> +link-libc-benchtests = $(link-libc-static)
> +libm-benchtests = $(common-objpfx)math/libm.a
> +thread-library-benchtests = $(static-thread-library)
> +else
> +link-libc-benchtests = $(link-libc)
> ++link-benchtests = $(+link-tests)
> +thread-library-benchtests = $(shared-thread-library)
> +libm-benchtests = $(libm)
> +endif
> +
> +$(addprefix $(objpfx)bench-,$(bench-math)): $(libm-benchtests)
> +$(addprefix $(objpfx)bench-,$(math-benchset)): $(libm-benchtests)
> +$(addprefix $(objpfx)bench-,$(bench-pthread)): $(thread-library-benchtests)
> +$(addprefix $(objpfx)bench-,$(bench-malloc)): $(thread-library-benchtests)
> +$(addprefix $(objpfx)bench-,pthread-locks): $(libm-benchtests)
>
>
>
> @@ -270,9 +282,9 @@ bench-link-targets = $(timing-type) $(binaries-bench) $(binaries-benchset) \
>
> $(bench-link-targets): %: %.o $(objpfx)json-lib.o \
> $(link-extra-libs-tests) \
> - $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
> + $(sort $(filter $(common-objpfx)lib%,$(link-libc-benchtests))) \
> $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
> - $(+link-tests)
> + $(+link-benchtests)
>
> $(bench-link-targets): LDFLAGS += $(link-bench-bind-now)
>
> diff --git a/benchtests/README b/benchtests/README
> index 44736d7e63..4d83a05b4b 100644
> --- a/benchtests/README
> +++ b/benchtests/README
> @@ -62,6 +62,16 @@ 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.
>
> +Building benchmarks as static executables:
> +=========================================
> +
> +To build benchmarks as static executables, on the build system, run:
> +
> + $ make STATIC-BENCHTESTS=yes bench-build
> +
> +You can copy benchmark executables to another machine and run them
> +without copying the source nor build directories.
> +
> Running subsets of benchmarks:
> ==============================
>
> --
> 2.31.1
>
I am checking it if there are no comments.
Thanks.
@@ -110,11 +110,23 @@ else
bench-malloc := $(filter malloc-%,${BENCHSET})
endif
-$(addprefix $(objpfx)bench-,$(bench-math)): $(libm)
-$(addprefix $(objpfx)bench-,$(math-benchset)): $(libm)
-$(addprefix $(objpfx)bench-,$(bench-pthread)): $(shared-thread-library)
-$(addprefix $(objpfx)bench-,$(bench-malloc)): $(shared-thread-library)
-$(addprefix $(objpfx)bench-,pthread-locks): $(libm)
+ifeq (${STATIC-BENCHTESTS},yes)
++link-benchtests = $(+link-static-tests)
+link-libc-benchtests = $(link-libc-static)
+libm-benchtests = $(common-objpfx)math/libm.a
+thread-library-benchtests = $(static-thread-library)
+else
+link-libc-benchtests = $(link-libc)
++link-benchtests = $(+link-tests)
+thread-library-benchtests = $(shared-thread-library)
+libm-benchtests = $(libm)
+endif
+
+$(addprefix $(objpfx)bench-,$(bench-math)): $(libm-benchtests)
+$(addprefix $(objpfx)bench-,$(math-benchset)): $(libm-benchtests)
+$(addprefix $(objpfx)bench-,$(bench-pthread)): $(thread-library-benchtests)
+$(addprefix $(objpfx)bench-,$(bench-malloc)): $(thread-library-benchtests)
+$(addprefix $(objpfx)bench-,pthread-locks): $(libm-benchtests)
@@ -270,9 +282,9 @@ bench-link-targets = $(timing-type) $(binaries-bench) $(binaries-benchset) \
$(bench-link-targets): %: %.o $(objpfx)json-lib.o \
$(link-extra-libs-tests) \
- $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
+ $(sort $(filter $(common-objpfx)lib%,$(link-libc-benchtests))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
- $(+link-tests)
+ $(+link-benchtests)
$(bench-link-targets): LDFLAGS += $(link-bench-bind-now)
@@ -62,6 +62,16 @@ 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.
+Building benchmarks as static executables:
+=========================================
+
+To build benchmarks as static executables, on the build system, run:
+
+ $ make STATIC-BENCHTESTS=yes bench-build
+
+You can copy benchmark executables to another machine and run them
+without copying the source nor build directories.
+
Running subsets of benchmarks:
==============================