From: Sebastian Andrzej Siewior Date: Wed, 29 Feb 2012 21:26:19 +0000 (+0100) Subject: build-sys: make the crosscompile path for scanf_cv_alloc_modifier clever X-Git-Tag: v2.22-rc1~650 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0202f1c5ab4e7a54256864484a59addb94625ab;p=thirdparty%2Futil-linux.git build-sys: make the crosscompile path for scanf_cv_alloc_modifier clever My earlier assumption was that scanf_cv_alloc_modifier is unused. This is not true as pointed out by Karel since it used befoe checking for libmount. Argh. So instead saying no I add a test to check for glibc >= 2.7 which provides %m. As of uClibc v0.9.32-rc3 the situation looks the following: | git grep _M_SPEC__ |libc/stdio/_vfprintf.c:/* #define __UCLIBC_HAS_PRINTF_M_SPEC__ */ |libc/stdio/_vfprintf.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/_vfprintf.c:# ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/_vfprintf.c:# endif /* __UCLIBC_HAS_PRINTF_M_SPEC__ */ |libc/stdio/_vfprintf.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/_vfprintf.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/_vfprintf.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/_vfprintf.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/old_vfprintf.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ |libc/stdio/perror.c:#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__ And other libc user have to bring their own stuff. Signed-off-by: Sebastian Andrzej Siewior --- diff --git a/configure.ac b/configure.ac index c7ebd4123d..0ae5b767d5 100644 --- a/configure.ac +++ b/configure.ac @@ -387,7 +387,23 @@ AC_CACHE_VAL([scanf_cv_alloc_modifier], [scanf_cv_alloc_modifier=no] ) , - [scanf_cv_alloc_modifier=no] + + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #include + + #ifdef __GLIBC__ + + #if !(__GLIBC_PREREQ(2, 7)) + #error %m is not available + #endif + + #else + + #error Your C-library is not supported. + #endif + ])], + [scanf_cv_alloc_modifier=ms], + [scanf_cv_alloc_modifier=no])] ) )