[lttng-dev] [PATCH babeltrace] configure: fix uuid support detection on static build
Samuel Martin
s.martin49 at gmail.com
Wed Jun 1 19:56:32 UTC 2016
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 at gmail.com>
---
configure.ac | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/configure.ac b/configure.ac
index 63a7548..f923edb 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
+ ])
])
])
])
--
2.8.3
More information about the lttng-dev
mailing list