public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/maskray/unnest] benchtests: Building benchmarks as static executables
@ 2021-10-06  5:05 Fangrui Song
  0 siblings, 0 replies; only message in thread
From: Fangrui Song @ 2021-10-06  5:05 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=de0a7c5a0b2061c86441a1822d6c3a898b0b6ba2

commit de0a7c5a0b2061c86441a1822d6c3a898b0b6ba2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 30 12:15:27 2021 -0700

    benchtests: Building benchmarks as static executables
    
    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.

Diff:
---
 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)
 
 \f
 
@@ -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:
 ==============================


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-10-06  5:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-06  5:05 [glibc/maskray/unnest] benchtests: Building benchmarks as static executables Fangrui Song

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).