benchtests: Enable BIND_NOW if configured with --enable-bind-now

Message ID 87zhofmvr1.fsf@oldenburg2.str.redhat.com
State New
Headers show
Series
  • benchtests: Enable BIND_NOW if configured with --enable-bind-now
Related show

Commit Message

Florian Weimer April 24, 2019, 12:29 p.m.
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

Carlos O'Donell April 24, 2019, 5:40 p.m. | #1
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); \

> 



-- 
Cheers,
Carlos.

Patch

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
+
+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); \