diff -urN source.old//configure source//configure --- source.old//configure 2009-01-27 07:53:11.000000000 +0000 +++ source//configure 2009-01-31 21:07:25.811887936 +0000 @@ -43860,13 +43860,7 @@ *linux*) # glibc <= 2.3.2 has a broken getgrouplist if test "$cross_compiling" = yes; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +linux_getgrouplist_ok=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ diff -urN source.old//configure.in source//configure.in --- source.old//configure.in 2009-01-26 13:56:34.000000000 +0000 +++ source//configure.in 2009-01-31 21:04:39.051889949 +0000 @@ -280,6 +280,8 @@ fi AC_SUBST(BROKEN_CC) +AC_TRY_COMPILE([],[(void)sizeof(char[-1])],AC_MSG_ERROR([configure's compilation assert doesn't work with $CC])) + dnl Check if the C compiler understands -Werror AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [ AC_TRY_RUN_STRICT([ @@ -330,25 +332,11 @@ # a runtime test is needed here AC_SUBST(PIDL_ARGS) AC_CACHE_CHECK([that the C compiler understands negative enum values],samba_cv_CC_NEGATIVE_ENUM_VALUES, [ - AC_TRY_RUN( + AC_TRY_COMPILE([], [ - #include enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF }; - int main(void) { - enum negative_values v1 = NEGATIVE_VALUE; - unsigned v2 = NEGATIVE_VALUE; - - if (v1 != 0xFFFFFFFF) { - printf("%u != 0xFFFFFFFF\n", v1); - return 1; - } - if (v2 != 0xFFFFFFFF) { - printf("%u != 0xFFFFFFFF\n", v2); - return 1; - } - - return 0; - } + (void)sizeof(char[1-2*( (unsigned)NEGATIVE_VALUE != 0xFFFFFFFF)]); + (void)sizeof(char[1-2*((enum negative_values)NEGATIVE_VALUE != 0xFFFFFFFF)]); ], samba_cv_CC_NEGATIVE_ENUM_VALUES=yes,samba_cv__CC_NEGATIVE_ENUM_VALUES=no)]) if test x"$samba_cv_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then @@ -1224,22 +1212,12 @@ case "$host_os" in *linux*) # glibc <= 2.3.2 has a broken getgrouplist - AC_TRY_RUN([ -#include + AC_TRY_COMPILE([ #include -main() { - /* glibc up to 2.3 has a broken getgrouplist */ +],[ #if defined(__GLIBC__) && defined(__GLIBC_MINOR__) - int libc_major = __GLIBC__; - int libc_minor = __GLIBC_MINOR__; - - if (libc_major < 2) - exit(1); - if ((libc_major == 2) && (libc_minor <= 3)) - exit(1); + (void)sizeof(char[1-2*(__GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ <= 3)]); #endif - exit(0); -} ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no]) if test x"$linux_getgrouplist_ok" = x"yes"; then AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])