lttng-babeltrace: fix static build again

I accidentally removed the static build patch when bumping to v1.4.0,
thinking it was merged upstream as of this version, but it's not the
case (it's merged in master), so let's keep the patch file.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Philippe Proulx 2016-11-04 12:41:37 -04:00 committed by Thomas Petazzoni
parent 97e8db6868
commit ac607c85a7
2 changed files with 89 additions and 1 deletions

View File

@ -0,0 +1,86 @@
From 2741f55be80ae8af169ae795ea28d2a39c18fa60 Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
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 <s.martin49@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
[Philippe: grabbed from this upstream patch:
https://github.com/efficios/babeltrace/commit/2741f55be80ae8af169ae795ea28d2a39c18fa60.patch
]
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
---
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
+ ])
])
])
])

View File

@ -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)