package/lttng-tools: fix static build
authorSamuel Martin <s.martin49@gmail.com>
Tue, 8 Dec 2015 23:11:14 +0000 (00:11 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 9 Dec 2015 22:39:11 +0000 (23:39 +0100)
Some unit tests depend on objects from src/common/.
This patch makes sure to points to the location of the non-PIC object files.
Otherwise, in case of static only build, the PIC object are not built, so
the link will fail.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/lttng-tools/0003-tests-unit-fix-object-files-location.patch [new file with mode: 0644]

diff --git a/package/lttng-tools/0003-tests-unit-fix-object-files-location.patch b/package/lttng-tools/0003-tests-unit-fix-object-files-location.patch
new file mode 100644 (file)
index 0000000..9bfee4b
--- /dev/null
@@ -0,0 +1,94 @@
+Upstream status: Merged
+Fetched from: https://git.lttng.org/?p=lttng-tools.git;a=commit;h=3622d7c3931685fab8d1b2e5585a369b78cefd12
+From 3622d7c3931685fab8d1b2e5585a369b78cefd12 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Wed, 2 Dec 2015 00:36:45 +0100
+Subject: [PATCH] tests/unit: fix object files' location
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Referring to *.o files under a .libs/ directory is not recommended
+because this belongs to libtool's innards.
+
+Indeed, libtool decides to place the *.o files in an
+implementation-specific location:
+- PIC *.o files go into a .libs/ directory;
+- non-PIC *.o files are generated along side to their corresponding
+  source files.
+
+Using PIC objects to build executable is legit, thought it may
+introduce some minor overhead at runtime.
+
+However, hard-coding these PIC object files in the Makefile.am to build
+executables breaks the build in case of static only build.
+
+In this case, no PIC object files is generated, so the linker will not
+found some of the needed objects files.
+
+Changing these dependencies' path fixes the static build, keeping the
+shared one ok, though the non-PIC object files are now always built.
+
+Fixes #983.
+
+Fix tested on git master and v2.6 with no change needed.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+---
+ tests/unit/Makefile.am | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am
+index c0c9c45..7bfe65a 100644
+--- a/tests/unit/Makefile.am
++++ b/tests/unit/Makefile.am
+@@ -34,9 +34,9 @@ SESSIONS=$(top_builddir)/src/bin/lttng-sessiond/session.o    \
+        $(top_builddir)/src/bin/lttng-sessiond/consumer.o \
+        $(top_builddir)/src/bin/lttng-sessiond/utils.o \
+        $(top_builddir)/src/bin/lttng-sessiond/snapshot.o \
+-       $(top_builddir)/src/common/.libs/uri.o \
+-       $(top_builddir)/src/common/.libs/utils.o \
+-       $(top_builddir)/src/common/.libs/error.o \
++       $(top_builddir)/src/common/uri.o \
++       $(top_builddir)/src/common/utils.o \
++       $(top_builddir)/src/common/error.o \
+        $(top_builddir)/src/common/health/libhealth.la \
+        $(top_builddir)/src/common/sessiond-comm/libsessiond-comm.la
+@@ -60,8 +60,8 @@ UST_DATA_TRACE=$(top_builddir)/src/bin/lttng-sessiond/trace-ust.o \
+                  $(top_builddir)/src/bin/lttng-sessiond/session.o \
+                  $(top_builddir)/src/bin/lttng-sessiond/snapshot.o \
+                  $(top_builddir)/src/bin/lttng-sessiond/agent.o \
+-                 $(top_builddir)/src/common/.libs/uri.o \
+-                 $(top_builddir)/src/common/.libs/utils.o \
++                 $(top_builddir)/src/common/uri.o \
++                 $(top_builddir)/src/common/utils.o \
+                  $(top_builddir)/src/common/health/libhealth.la \
+                  $(top_builddir)/src/common/sessiond-comm/libsessiond-comm.la
+@@ -75,8 +75,8 @@ endif
+ KERN_DATA_TRACE=$(top_builddir)/src/bin/lttng-sessiond/trace-kernel.o \
+               $(top_builddir)/src/bin/lttng-sessiond/consumer.o       \
+               $(top_builddir)/src/bin/lttng-sessiond/utils.o \
+-              $(top_builddir)/src/common/.libs/uri.o \
+-              $(top_builddir)/src/common/.libs/utils.o \
++              $(top_builddir)/src/common/uri.o \
++              $(top_builddir)/src/common/utils.o \
+               $(top_builddir)/src/common/health/libhealth.la \
+               $(top_builddir)/src/common/sessiond-comm/libsessiond-comm.la
+@@ -86,8 +86,8 @@ test_kernel_data_LDADD = $(LIBTAP) $(LIBCOMMON) $(LIBRELAYD) $(LIBSESSIOND_COMM)
+ test_kernel_data_LDADD += $(KERN_DATA_TRACE)
+ # utils suffix for unit test
+-UTILS_SUFFIX=$(top_builddir)/src/common/.libs/utils.o \
+-              $(top_builddir)/src/common/.libs/runas.o
++UTILS_SUFFIX=$(top_builddir)/src/common/utils.o \
++              $(top_builddir)/src/common/runas.o
+ # parse_size_suffix unit test
+ test_utils_parse_size_suffix_SOURCES = test_utils_parse_size_suffix.c
+-- 
+2.6.3
+