diff --git a/package/lttng-babeltrace/0003-fix-uuid-support-detection-on-static-build.patch b/package/lttng-babeltrace/0003-fix-uuid-support-detection-on-static-build.patch new file mode 100644 index 0000000000..875aa88f6e --- /dev/null +++ b/package/lttng-babeltrace/0003-fix-uuid-support-detection-on-static-build.patch @@ -0,0 +1,86 @@ +From 2741f55be80ae8af169ae795ea28d2a39c18fa60 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Wed, 1 Jun 2016 21:56:32 +0200 +Subject: [PATCH] configure: fix uuid support detection on static build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This change adds uuid detection using pkg-config helper before falling +back on the standard AC_CHECK_LIB detection for platforms missing +pkg-config. + +AC_CHECK_LIB function achieves its test by trying to link against the +requested library, without taking care of its dependency +requirements/flags that may differ between different targets. +Therefore, in case of static build, it can fail on the uuid detection +like [1], because the uuid's dependency flags (regarding gettext) are +missing. + +Instead, using pkg-config to do the check will take care of getting and +setting all required flags. + +This issue [1] has been triggered on Buildroot farms. + +[1] http://autobuild.buildroot.net/results/43b/43b98ddf9eb44152ed9ac4a98d887af14831d8da/build-end.log + +Signed-off-by: Samuel Martin +Signed-off-by: Jérémie Galarneau +[Philippe: grabbed from this upstream patch: + https://github.com/efficios/babeltrace/commit/2741f55be80ae8af169ae795ea28d2a39c18fa60.patch +] +Signed-off-by: Philippe Proulx +--- + configure.ac | 31 +++++++++++++++++++++---------- + 1 file changed, 21 insertions(+), 10 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 84f9000..2f5e3f8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -163,24 +163,35 @@ AC_CHECK_FUNCS([uuid_generate], + link_with_libuuid=no + ], + [ +- # Check for libuuid +- AC_CHECK_LIB([uuid], [uuid_generate], ++ # First, check the pkg-config module is available, otherwise explicitly check ++ # for libuuid, or uuid support in the C-library. ++ PKG_CHECK_MODULES([UUID], [uuid], + [ ++ LIBS="${UUID_LIBS} ${LIBS}" ++ CFLAGS="${CFLAGS} ${UUID_CFLAGS}" + AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.]) + link_with_libuuid=yes + ], + [ +- # libuuid not found, check for uuid_create in libc. +- AC_CHECK_LIB([c], [uuid_create], ++ # Check for libuuid ++ AC_CHECK_LIB([uuid], [uuid_generate], + [ +- AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) +- link_with_libc_uuid=yes ++ AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.]) ++ link_with_libuuid=yes + ], + [ +- # for MinGW32 we have our own internal implemenation of uuid using Windows functions. +- if test "x$MINGW32" = xno; then +- AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.]) +- fi ++ # libuuid not found, check for uuid_create in libc. ++ AC_CHECK_LIB([c], [uuid_create], ++ [ ++ AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) ++ link_with_libc_uuid=yes ++ ], ++ [ ++ # for MinGW32 we have our own internal implemenation of uuid using Windows functions. ++ if test "x$MINGW32" = xno; then ++ AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.]) ++ fi ++ ]) + ]) + ]) + ]) diff --git a/package/lttng-babeltrace/lttng-babeltrace.mk b/package/lttng-babeltrace/lttng-babeltrace.mk index 59327dbf5d..67b740656f 100644 --- a/package/lttng-babeltrace/lttng-babeltrace.mk +++ b/package/lttng-babeltrace/lttng-babeltrace.mk @@ -14,7 +14,9 @@ HOST_LTTNG_BABELTRACE_DEPENDENCIES = \ host-popt host-util-linux host-libglib2 host-pkgconf HOST_LTTNG_BABELTRACE_CONF_OPTS += --disable-debug-info -# For 0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch +# For: +# 0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch +# 0003-fix-uuid-support-detection-on-static-build.patch LTTNG_BABELTRACE_AUTORECONF = YES ifeq ($(BR2_PACKAGE_ELFUTILS),y)