[lttng-dev] [PATCH babeltrace] configure: fix uuid support detection on static build

Samuel Martin s.martin49 at gmail.com
Sat Jun 11 09:14:10 UTC 2016


up!

On Wed, Jun 1, 2016 at 9:56 PM, Samuel Martin <s.martin49 at gmail.com> wrote:
> 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
>



-- 
Samuel


More information about the lttng-dev mailing list