benchtests: Enable BIND_NOW if configured with --enable-bind-now
Commit Message
Benchmarks should reflect distribution build policies, so it makes
sense to honor the BIND_NOW configuration for them.
This commit keeps using $(+link-tests), so that the benchmarks are
linked according to the --enable-hardcoded-path-in-tests configure
option.
2019-04-24 Florian Weimer <fweimer@redhat.com>
benchtests: Enable BIND_NOW if configured with --enable-bind-now.
* benchtests/Makefile [$(bind-now)] (link-bench-bind-now): Set.
(bench-link-targets): New variable.
($(binaries-bench) …): Use it. Set LDFLAGS accordingly.
Comments
On 4/24/19 8:29 AM, Florian Weimer wrote:
> Benchmarks should reflect distribution build policies, so it makes
> sense to honor the BIND_NOW configuration for them.
I agree, by default it should follow the glibc build configuration.
> This commit keeps using $(+link-tests), so that the benchmarks are
> linked according to the --enable-hardcoded-path-in-tests configure
> option.
Agreed.
> 2019-04-24 Florian Weimer <fweimer@redhat.com>
>
> benchtests: Enable BIND_NOW if configured with --enable-bind-now.
> * benchtests/Makefile [$(bind-now)] (link-bench-bind-now): Set.
> (bench-link-targets): New variable.
> ($(binaries-bench) …): Use it. Set LDFLAGS accordingly.
>
LGTM.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> diff --git a/benchtests/Makefile b/benchtests/Makefile
> index cdc89488d6..d294bbbb7e 100644
> --- a/benchtests/Makefile
> +++ b/benchtests/Makefile
> @@ -236,13 +236,21 @@ bench-func: $(binaries-bench)
> scripts/benchout.schema.json; \
> fi
>
> -$(timing-type) $(binaries-bench) $(binaries-benchset) \
> - $(binaries-bench-malloc): %: %.o $(objpfx)json-lib.o \
> +ifeq ($(bind-now),yes)
> +link-bench-bind-now = -Wl,-z,now
> +endif
OK. Adds BIND_NOW.
> +
> +bench-link-targets = $(timing-type) $(binaries-bench) $(binaries-benchset) \
> + $(binaries-bench-malloc)
> +
OK. A cleanup.
> +$(bench-link-targets): %: %.o $(objpfx)json-lib.o \
OK.
> $(link-extra-libs-tests) \
> $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
> $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
> $(+link-tests)
>
> +$(bench-link-targets): LDFLAGS += $(link-bench-bind-now)
OK.
> +
> $(objpfx)bench-%.c: %-inputs $(bench-deps)
> { if [ -n "$($*-INCLUDE)" ]; then \
> cat $($*-INCLUDE); \
>
@@ -236,13 +236,21 @@ bench-func: $(binaries-bench)
scripts/benchout.schema.json; \
fi
-$(timing-type) $(binaries-bench) $(binaries-benchset) \
- $(binaries-bench-malloc): %: %.o $(objpfx)json-lib.o \
+ifeq ($(bind-now),yes)
+link-bench-bind-now = -Wl,-z,now
+endif
+
+bench-link-targets = $(timing-type) $(binaries-bench) $(binaries-benchset) \
+ $(binaries-bench-malloc)
+
+$(bench-link-targets): %: %.o $(objpfx)json-lib.o \
$(link-extra-libs-tests) \
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
$(+link-tests)
+$(bench-link-targets): LDFLAGS += $(link-bench-bind-now)
+
$(objpfx)bench-%.c: %-inputs $(bench-deps)
{ if [ -n "$($*-INCLUDE)" ]; then \
cat $($*-INCLUDE); \