benchtests: Link against objects in build directory
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Tue, 15 Apr 2014 09:03:06 +0000 (14:33 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Tue, 15 Apr 2014 09:03:06 +0000 (14:33 +0530)
Using -lm and -lpthread results in the shared objects in the system
being used to link against.  This happened to work for libm because
there haven't been any changes to the libm ABI recently that could
break the existing benchmarks.  This doesn't always work for the
pthread benchmarks.  The correct way to build against libraries in the
build directory is to have the binaries explicitly depend on them so
that $(+link) can pick them up.

ChangeLog
benchtests/Makefile

index d16da4e..2a8cc57 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-04-15  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+       * benchtests/Makefile: Depend on libraries in build directory.
+       (bench-math): Separate out math tests.
+       (bench-pthread): Separate out pthread tests.
+       (bench): Include math and pthread tests.
+
 2014-04-14  Carlos O'Donell  <carlos@redhat.com>
 
        [BZ #16831]
index 4989794..a0954cd 100644 (file)
 subdir := benchtests
 
 include ../Makeconfig
-bench := acos acosh asin asinh atan atanh cos cosh exp exp2 ffs ffsll \
-       log log2 modf pow pthread_once rint sin sincos sinh sqrt tan tanh
+bench-math := acos acosh asin asinh atan atanh cos cosh exp exp2 ffs ffsll \
+             log log2 modf pow rint sin sincos sinh sqrt tan tanh
+
+bench-pthread := pthread_once
+
+bench := $(bench-math) $(bench-pthread)
 
 # String function benchmarks.
 string-bench := bcopy bzero memccpy memchr memcmp memcpy memmem memmove \
@@ -40,27 +44,9 @@ benchset := $(string-bench-all) $(stdlib-bench)
 CFLAGS-bench-ffs.c += -fno-builtin
 CFLAGS-bench-ffsll.c += -fno-builtin
 
-LDLIBS-bench-acos = -lm
-LDLIBS-bench-acosh = -lm
-LDLIBS-bench-asin = -lm
-LDLIBS-bench-asinh = -lm
-LDLIBS-bench-atan = -lm
-LDLIBS-bench-atanh = -lm
-LDLIBS-bench-cos = -lm
-LDLIBS-bench-cosh = -lm
-LDLIBS-bench-exp = -lm
-LDLIBS-bench-exp2 = -lm
-LDLIBS-bench-log = -lm
-LDLIBS-bench-log2 = -lm
-LDLIBS-bench-pow = -lm
-LDLIBS-bench-pthread_once = -lpthread
-LDLIBS-bench-rint = -lm
-LDLIBS-bench-sin = -lm
-LDLIBS-bench-sinh = -lm
-LDLIBS-bench-sqrt = -lm
-LDLIBS-bench-tan = -lm
-LDLIBS-bench-tanh = -lm
-LDLIBS-bench-sincos = -lm
+$(addprefix $(objpfx)bench-,$(bench-math)): $(common-objpfx)math/libm.so
+$(addprefix $(objpfx)bench-,$(bench-pthread)): \
+       $(common-objpfx)nptl/libpthread.so
 
 \f