configure: fix uuid support detection on static build
A message that is not in the archive (sent off-list or not yet received): [email protected]
up!
Quoted 76 lines · Samuel Martin
This change adds uuid detection using pkg-config helper before falling back on the standard
AC_CHECK_LIBdetection for platforms missing pkg-config.
AC_CHECK_LIBfunction 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 <[email protected]>--- configure.ac | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-)configure.ac +21
-11@@ -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
Signature · 5 lines
Samuel _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
Quoted 10 lines · Samuel Martin
This change adds uuid detection using pkg-config helper before falling back on the standard
AC_CHECK_LIBdetection for platforms missing pkg-config.
AC_CHECK_LIBfunction 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.
Hi Samuel,
The same requirements seem to exist for glib (gettext), does the change need to be made for it also?
Jérémie
Quoted 70 lines
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 <[email protected]>--- configure.ac | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-)configure.ac +21
-11@@ -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
_______________________________________________
lttng-dev mailing list
[email protected]
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
Signature · 7 lines
Jérémie Galarneau EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
A message that is not in the archive (sent off-list or not yet received): CA+jJMxuRg7U-TuA5sWgW+e8mRf3ebO1BjcQ+1caqHT6ecUOTNw@mail.gmail.com
Hi Jérémie,
Quoted 12 lines · Jérémie Galarneau
Quoted 10 lines · Samuel Martin
This change adds uuid detection using pkg-config helper before falling back on the standard
AC_CHECK_LIBdetection for platforms missing pkg-config.
AC_CHECK_LIBfunction 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.
Quoted 4 lines
Hi Samuel,
The same requirements seem to exist for glib (gettext), does the change need to be made for it also?
Maybe, I did not trigger this in my test (certainly because fix the first error was enough to provide all deps the others need...) I'll check it and report back here.
Regards,
Signature · 5 lines
Samuel _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
A message that is not in the archive (sent off-list or not yet received): CAHXCMMLfmjew0zJPzvdfW5nT2GWrJ=WpZkbo8oAB4660EqPgAQ@mail.gmail.com
Hi Jérémie,
Quoted 16 lines · Samuel Martin
Hi Jérémie,
Quoted 12 lines · Jérémie Galarneau
Quoted 10 lines · Samuel Martin
This change adds uuid detection using pkg-config helper before falling back on the standard
AC_CHECK_LIBdetection for platforms missing pkg-config.
AC_CHECK_LIBfunction 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.
Quoted 7 lines
Quoted 4 lines
Hi Samuel,
The same requirements seem to exist for glib (gettext), does the change need to be made for it also?
Maybe, I did not trigger this in my test (certainly because fix the first error was enough to provide all deps the others need...) I'll check it and report back here.
Sorry for being so long :-/
AFAICS, the glib dependency is already correctly handle since it already and unconditionally uses PKG_CHECK_MODULES to set its LIBS and CFLAGS variables [1]; so, the gettext/libintl dependency flags are already and properly set when it is needed.
BR,
Signature · 5 lines
Samuel _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
A message that is not in the archive (sent off-list or not yet received): CAHXCMMLp5tBMbo3oEzbY1yqnpGphKYMid+UTfwtr8zdYQvbfKQ@mail.gmail.com
Merged in master and stable-1.4, thanks!
Jérémie
Quoted 40 lines · Samuel Martin
Hi Jérémie,
Quoted 16 lines · Samuel Martin
Hi Jérémie,
Quoted 12 lines · Jérémie Galarneau
Quoted 10 lines · Samuel Martin
This change adds uuid detection using pkg-config helper before falling back on the standard
AC_CHECK_LIBdetection for platforms missing pkg-config.
AC_CHECK_LIBfunction 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.Quoted 7 lines
Quoted 4 lines
Hi Samuel,
The same requirements seem to exist for glib (gettext), does the change need to be made for it also?
Maybe, I did not trigger this in my test (certainly because fix the first error was enough to provide all deps the others need...) I'll check it and report back here.
Sorry for being so long :-/
AFAICS, the glib dependency is already correctly handle since it already and unconditionally uses
PKG_CHECK_MODULESto set its LIBS and CFLAGS variables [1]; so, the gettext/libintl dependency flags are already and properly set when it is needed.BR,
--
Samuel
Signature · 7 lines
Jérémie Galarneau EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev