[lttng-dev] [PATCH 1/1] Fix: disable liblttng-ust-dl if dlinfo is not available in C library
Romain Naour
romain.naour at openwide.fr
Wed Apr 9 17:55:07 EDT 2014
According to uClibc commit [1], dlinfo is not available in recent uClibc (>0.9.33),
but available in older version of uClibc (<=0.9.33) whith a different prototype than glibc.
dlinfo used by liblttng-ust-dl require RTLD_DI_LINKMAP that is not available in uClibc.
To be able to use LTTng UST with uClibc, we need to disable
the Dynamic Linker Tracing functionality [2] if RTLD_DI_LINKMAP is not detected.
[1] http://git.uclibc.org/uClibc/commit/?id=f3c9dc499c5c787ddd8c4320f2d44d2ae6e40c22
[2] http://lists.lttng.org/pipermail/lttng-dev/2014-February/022423.html
Signed-off-by: Romain Naour <romain.naour at openwide.fr>
---
Makefile.am | 5 ++++-
configure.ac | 10 ++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index b79d2dd..c907ff1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,11 +4,14 @@ SUBDIRS = . include snprintf libringbuffer liblttng-ust-comm \
liblttng-ust \
liblttng-ust-ctl \
liblttng-ust-fork \
- liblttng-ust-dl \
liblttng-ust-libc-wrapper \
liblttng-ust-cyg-profile \
tools
+if HAVE_DLINFO
+SUBDIRS += liblttng-ust-dl
+endif
+
if BUILD_JNI_INTERFACE
SUBDIRS += liblttng-ust-java liblttng-ust-jul
endif
diff --git a/configure.ac b/configure.ac
index b04d4e3..b315d54 100644
--- a/configure.ac
+++ b/configure.ac
@@ -124,6 +124,16 @@ AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"])
AC_CHECK_LIB([pthread], [pthread_create])
+# Check for dlfcn.h
+AC_CHECK_HEADER([dlfcn.h])
+AS_IF([test "${ac_cv_header_dlfcn_h}" = "yes"],
+ [AC_CHECK_DECLS([RTLD_DI_LINKMAP],,,
+ [#define _GNU_SOURCE /* Required on Linux to get GNU extensions */
+ #include <dlfcn.h>])
+ ],
+ [ac_cv_have_decl_RTLD_DI_LINKMAP="no"])
+AM_CONDITIONAL([HAVE_DLINFO], [test "${ac_cv_have_decl_RTLD_DI_LINKMAP}" = "yes"])
+
# Checks for header files.
#AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
--
1.9.0
More information about the lttng-dev
mailing list