From 24fd7f81f9966071717f6a0effe8190310f1b393 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 19 Aug 2016 22:39:17 +0200 Subject: [PATCH] Use autoconf checks for strndup and asprintf The current code in config.c can provide its own implementation of asprintf() and strndup() if not provided by the system. However, in order to decide if they should be provided, the check done is: #if !defined(name_of_function) which only works if the function is actually defined as a macro, which is not necessarily the case. Therefore, we replace this logic by a proper AC_CHECK_FUNCS() check in the configure script. Signed-off-by: Thomas Petazzoni --- config.c | 4 ++-- configure.ac | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config.c b/config.c index dbbf563..2209afd 100644 --- a/config.c +++ b/config.c @@ -45,7 +45,7 @@ #include "asprintf.c" #endif -#if !defined(asprintf) && !defined(_FORTIFY_SOURCE) +#if !defined(HAVE_ASPRINTF) && !defined(_FORTIFY_SOURCE) #include int asprintf(char **string_ptr, const char *format, ...) @@ -78,7 +78,7 @@ int asprintf(char **string_ptr, const char *format, ...) #endif -#if !defined(strndup) +#if !defined(HAVE_STRNDUP) char *strndup(const char *s, size_t n) { size_t nAvail; diff --git a/configure.ac b/configure.ac index e655b85..73b98da 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,8 @@ AC_STRUCT_ST_BLOCKS AC_CHECK_LIB([popt],[poptParseArgvString],, AC_MSG_ERROR([libpopt required but not found])) +AC_CHECK_FUNCS([strndup asprintf]) + AC_ARG_WITH([selinux], [AS_HELP_STRING([--with-selinux], [support handling SELinux contexts (yes,no,check) @<:@default=check@:>@])], -- 2.7.4