diff -urN source.old/configure source/configure --- source.old/configure 2008-11-20 14:45:08.000000000 +0000 +++ source/configure 2008-11-30 17:53:02.116791281 +0000 @@ -40777,11 +40777,10 @@ *linux*) # glibc <= 2.3.2 has a broken getgrouplist if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +# { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 +# 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 2008-11-18 15:17:17.000000000 +0000 +++ source/configure.in 2008-11-30 17:33:10.960791551 +0000 @@ -275,6 +275,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([ @@ -325,25 +327,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 @@ -1187,22 +1175,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])