From 3a9a3ad8f9ead7ec963103f8ee0fe905f3982913 Mon Sep 17 00:00:00 2001 From: Derrell Lipman Date: Mon, 7 May 2007 03:02:24 +0000 Subject: r22731: - Fix bug #4594. configure.in determines if -Werror-implicit-function-declaration is available, and if so it enables that flag if --enable-developer is specified. Since the configure tests themselves did not use that flag, it was possible for a configure test to succeed, followed by a failed compilation due to a facility being available but not having a proper declaration in a header file. (This bit me with readahead().) This patch ensures that if implicit function declarations will kill the build, the feature being tested is deselected so the build will succeed. The autoconf manual suggests using return instead of exit in configure tests because the declaration for exit is often missing. We require this now, since we error if prototypes are missing. See section 5.5.1 of http://www.gnu.org/software/autoconf/manual/autoconf.html. This patch makes these changes, because in fact, an external declaration for exit is missing here (and likely elsewhere). I've verified that the features selected (here) with the original configure.in and the new one are the same except for, in my case, readahead. I've also confirmed that the generated Makefile is identical. These changes are not being applied to the 3.0.26 branch because it does not exhibit the initial problem this patch is supposed to solve since it doesn't attempt to use -Werror-implicit-function-declaration. (This used to be commit 4d42720915b8f65842147171f689127e94d1b973) --- source3/configure.in | 158 +++++++++++++++++++++++++------------------ source3/tests/crypttest.c | 6 +- source3/tests/fcntl_lock.c | 10 +-- source3/tests/fcntl_lock64.c | 12 ++-- source3/tests/ftruncate.c | 4 +- source3/tests/getgroups.c | 14 ++-- source3/tests/shared_mmap.c | 16 ++--- source3/tests/summary.c | 1 + source3/tests/trivial.c | 1 + source3/tests/unixsock.c | 21 +++--- 10 files changed, 141 insertions(+), 102 deletions(-) (limited to 'source3') diff --git a/source3/configure.in b/source3/configure.in index 19f0a2e511..497c4ac624 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -412,6 +412,7 @@ AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings a samba_cv_HAVE_Wdeclaration_after_statement=yes, samba_cv_HAVE_Wdeclaration_after_statement=no, samba_cv_HAVE_Wdeclaration_after_statement=cross) + ]) if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Wdeclaration-after-statement" @@ -807,11 +808,11 @@ case "$host_os" in CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" AC_TRY_RUN([ #include -main () { +int main () { #if _LFS64_LARGEFILE == 1 -exit(0); +return 0; #else -exit(1); +return 1; #endif }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross]) CPPFLAGS="$old_CPPFLAGS" @@ -846,7 +847,7 @@ exit(1); #include #include #include -main() { +int main() { #if _LFS64_LARGEFILE == 1 struct utsname uts; char *release; @@ -858,9 +859,9 @@ main() { int libc_minor = __GLIBC_MINOR__; if (libc_major < 2) - exit(1); + return 1; if (libc_minor < 2) - exit(1); + return 1; #endif /* Ensure this is kernel 2.4 or higher */ @@ -871,10 +872,10 @@ main() { minor = atoi(strsep(&release, ".")); if (major > 2 || (major == 2 && minor > 3)) - exit(0); - exit(1); + return 0; + return 1; #else - exit(1); + return 1; #endif } ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross]) @@ -907,9 +908,9 @@ main() { #include main () { #if _LFS64_LARGEFILE == 1 -exit(0); +return 0; #else -exit(1); +return 1; #endif }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross]) CPPFLAGS="$old_CPPFLAGS" @@ -1161,7 +1162,7 @@ AC_HAVE_DECL(snprintf, [#include ]) # nothing until kernel 2.1.44! very dumb. AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[ AC_TRY_RUN([#include -main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}], +int main() { setresuid(1,1,1); setresuid(2,2,2); return errno==EPERM?0:1;}], samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)]) if test x"$samba_cv_have_setresuid" = x"yes"; then AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid]) @@ -1172,7 +1173,7 @@ fi AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[ AC_TRY_RUN([#include #include -main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}], +int main() { errno = 0; setresgid(1,1,1); return errno != 0 ? (errno==EPERM ? 0 : 1) : 0;}], samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)]) if test x"$samba_cv_have_setresgid" = x"yes"; then AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid]) @@ -1332,6 +1333,23 @@ AC_CHECK_HEADERS(execinfo.h libexc.h libunwind.h) AC_CHECK_FUNCS(backtrace_symbols) AC_CHECK_LIB(exc, trace_back_stack) +# Save the original CFLAGS for a few tests that we want to allow +# implicit declaration warnings without failing the test (in developer mode) +ac_no_error_on_warning_CFLAGS="${CFLAGS}" + +# Since --enable-developer causes warnings to be treated as errors during +# compilation, we should avoid using features that will fail to compile. +# +# We don't want to enable this earlier because the built-in functions such as +# memset fail to configure properly. + +if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes" -a \ + x"$developer" = xyes; then + CFLAGS="${CFLAGS} -Werror-implicit-function-declaration" + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +fi + echo -n "checking for GPFS GPL libs... " save_LIBS="$LIBS" LIBS="$LIBS -lgpfs_gpl" @@ -1467,18 +1485,18 @@ case "$host_os" in #include #include - main() { + int 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); + return 1; if ((libc_major == 2) && (libc_minor <= 3)) - exit(1); + return 1; #endif - exit(0); + return 0; } ], @@ -1507,7 +1525,7 @@ if test x$ac_cv_func_stat64 = xno ; then #include #endif #include -], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes]) +], [struct stat64 st64; return stat64(".",&st64);], [ac_cv_func_stat64=yes]) AC_MSG_RESULT([$ac_cv_func_stat64]) if test x$ac_cv_func_stat64 = xyes ; then AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available]) @@ -1521,7 +1539,7 @@ if test x$ac_cv_func_lstat64 = xno ; then #include #endif #include -], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes]) +], [struct stat64 st64; return lstat64(".",&st64);], [ac_cv_func_lstat64=yes]) AC_MSG_RESULT([$ac_cv_func_lstat64]) if test x$ac_cv_func_lstat64 = xyes ; then AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available]) @@ -1535,7 +1553,7 @@ if test x$ac_cv_func_fstat64 = xno ; then #include #endif #include -], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes]) +], [struct stat64 st64; return fstat64(0,&st64);], [ac_cv_func_fstat64=yes]) AC_MSG_RESULT([$ac_cv_func_fstat64]) if test x$ac_cv_func_fstat64 = xyes ; then AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available]) @@ -2021,7 +2039,7 @@ AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension]) AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[ AC_TRY_RUN([#include -main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }], +int main() { long long x = 1000000; x *= x; return ((x/1000000) == 1000000)? 0: 1; }], samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)]) if test x"$samba_cv_have_longlong" = x"yes"; then AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's]) @@ -2045,7 +2063,7 @@ fi AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[ AC_TRY_RUN([#include #include -main() { exit((sizeof(off_t) == 8) ? 0 : 1); }], +int main() { return (sizeof(off_t) == 8) ? 0 : 1; }], samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)]) if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type]) @@ -2058,7 +2076,7 @@ AC_TRY_RUN([ #endif #include #include -main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }], +int main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) return 1; return (lstat64("/dev/null", &st)==0)?0:1; }], samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)]) if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available]) @@ -2071,7 +2089,7 @@ AC_TRY_RUN([ #endif #include #include -main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }], +int main() { return (sizeof(ino_t) == 8) ? 0 : 1; }], samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)]) if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type]) @@ -2084,7 +2102,7 @@ AC_TRY_RUN([ #endif #include #include -main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }], +int main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) return 1; return (lstat64("/dev/null", &st)==0)?0:1; }], samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)]) if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available]) @@ -2097,7 +2115,7 @@ AC_TRY_RUN([ #endif #include #include -main() { exit((sizeof(dev_t) == 8) ? 0 : 1); }], +int main() { return (sizeof(dev_t) == 8) ? 0 : 1; }], samba_cv_SIZEOF_DEV_T=yes,samba_cv_SIZEOF_DEV_T=no,samba_cv_SIZEOF_DEV_T=cross)]) if test x"$samba_cv_SIZEOF_DEV_T" = x"yes"; then AC_DEFINE(SIZEOF_DEV_T,8,[The size of the 'dev_t' type]) @@ -2110,7 +2128,7 @@ AC_TRY_RUN([ #endif #include #include -main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }], +int main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) return 1; return (lstat64("/dev/null", &st)==0)?0:1; }], samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)]) if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available]) @@ -2148,7 +2166,7 @@ AC_TRY_RUN([ #include #endif #include -main() { dev_t dev; int i = major(dev); return 0; }], +int main() { dev_t dev; int i = major(dev); return 0; }], samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)]) if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available]) @@ -2160,7 +2178,7 @@ AC_TRY_RUN([ #include #endif #include -main() { dev_t dev; int i = minor(dev); return 0; }], +int main() { dev_t dev; int i = minor(dev); return 0; }], samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)]) if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available]) @@ -2172,7 +2190,7 @@ AC_TRY_RUN([ #include #endif #include -main() { dev_t dev = makedev(1,2); return 0; }], +int main() { dev_t dev = makedev(1,2); return 0; }], samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)]) if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available]) @@ -2180,7 +2198,7 @@ fi AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[ AC_TRY_RUN([#include -main() { char c; c=250; exit((c > 0)?0:1); }], +int main() { char c; c=250; return (c > 0)?0:1; }], samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)]) if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available]) @@ -2216,7 +2234,7 @@ AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ AC_TRY_RUN([ #include #include -main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}], +int main() { struct timeval tv; return gettimeofday(&tv, NULL);}], samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)]) if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available]) @@ -2270,18 +2288,18 @@ void foo(const char *format, ...) { va_start(ap, format); len = vsnprintf(buf, 0, format, ap); va_end(ap); - if (len != 5) exit(1); + if (len != 5) return 1; va_start(ap, format); len = vsnprintf(0, 0, format, ap); va_end(ap); - if (len != 5) exit(1); + if (len != 5) return 1; - if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1); + if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) return 1; - exit(0); + return 0; } -main() { foo("hello"); } +int main() { foo("hello"); } ], samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)]) if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then @@ -2291,9 +2309,9 @@ fi AC_CACHE_CHECK([for broken readdir name],samba_cv_HAVE_BROKEN_READDIR_NAME,[ AC_TRY_RUN([#include #include -main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d); +int main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d); if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 && -di->d_name[0] == 0) exit(0); exit(1);} ], +di->d_name[0] == 0) return 0; return 1;} ], samba_cv_HAVE_BROKEN_READDIR_NAME=yes,samba_cv_HAVE_BROKEN_READDIR_NAME=no,samba_cv_HAVE_BROKEN_READDIR_NAME=cross)]) if test x"$samba_cv_HAVE_BROKEN_READDIR_NAME" = x"yes"; then AC_DEFINE(HAVE_BROKEN_READDIR_NAME,1,[Whether readdir() returns the wrong name offset]) @@ -2302,7 +2320,7 @@ fi AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[ AC_TRY_COMPILE([#include #include ], -[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));], +[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; return utime("foo.c",&tbuf);], samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)]) if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available]) @@ -2591,7 +2609,7 @@ AC_TRY_RUN([ #ifndef F_GETLEASE #define F_GETLEASE 1025 #endif -main() { +int main() { int fd = open("/dev/null", O_RDONLY); return fcntl(fd, F_GETLEASE, 0) == -1; } @@ -2609,8 +2627,8 @@ AC_TRY_RUN([ #ifndef F_NOTIFY #define F_NOTIFY 1026 #endif -main() { - exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0); +int main() { + return fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0; } ], samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)]) @@ -2685,8 +2703,8 @@ AC_TRY_RUN([ #define LOCK_MAND 32 #define LOCK_READ 64 #endif -main() { - exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0); +int main() { + return flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0; } ], samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)]) @@ -2722,15 +2740,15 @@ if test x"$samba_cv_HAVE_SYS_CAPABILITY_H" = x"yes"; then AC_TRY_RUN([ #include #include -main() { +int main() { cap_t cap; cap_value_t vals[1]; if (!(cap = cap_get_proc())) - exit(1); + return 1; vals[0] = CAP_CHOWN; cap_set_flag(cap, CAP_INHERITABLE, 1, vals, CAP_CLEAR); cap_set_proc(cap); - exit(0); + return 0; }], samba_cv_HAVE_POSIX_CAPABILITIES=yes, samba_cv_HAVE_POSIX_CAPABILITIES=no, @@ -2852,15 +2870,15 @@ AC_TRY_RUN([#include #include #include #include -main() { +int main() { struct stat st; char tpl[20]="/tmp/test.XXXXXX"; int fd = mkstemp(tpl); - if (fd == -1) exit(1); + if (fd == -1) return 1; unlink(tpl); - if (fstat(fd, &st) != 0) exit(1); - if ((st.st_mode & 0777) != 0600) exit(1); - exit(0); + if (fstat(fd, &st) != 0) return 1; + if ((st.st_mode & 0777) != 0600) return 1; + return 0; }], samba_cv_HAVE_SECURE_MKSTEMP=yes, samba_cv_HAVE_SECURE_MKSTEMP=no, @@ -3048,11 +3066,11 @@ dnl #ifdef HAVE_SYS_FCNTL_H #include #endif -main() { struct flock64 fl64; +int main() { struct flock64 fl64; #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64) -exit(0); +return 0; #else -exit(1); +return 1; #endif }], samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)]) @@ -3133,10 +3151,11 @@ fi AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[ AC_TRY_RUN([ #include +#include #include -main() { +int main() { char *newpath = realpath("/tmp", NULL); - exit ((newpath != NULL) ? 0 : 1); + return (newpath != NULL) ? 0 : 1; } ], samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)]) @@ -3980,7 +3999,7 @@ if test x"$with_ads_support" != x"no"; then samba_cv_HAVE_WRFILE_KEYTAB,[ AC_TRY_RUN([ #include - main() + int main() { krb5_context context; krb5_keytab keytab; @@ -4722,6 +4741,8 @@ if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[ SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}" +SAVE_CFLAGS="$CFLAGS" +CFLAGS="${ac_no_error_on_warning_CFLAGS}" AC_TRY_COMPILE([ #include "confdefs.h" #define NO_PROTO_H 1 @@ -4731,6 +4752,7 @@ AC_TRY_COMPILE([ #include "${srcdir-.}/lib/sysquotas.c" ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no) CPPFLAGS="$SAVE_CPPFLAGS" +CFLAGS="$SAVE_CFLAGS" ]) if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface) @@ -4769,6 +4791,8 @@ fi AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[ SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}" +SAVE_CFLAGS="$CFLAGS" +CFLAGS="${ac_no_error_on_warning_CFLAGS}" AC_TRY_COMPILE([ #include "confdefs.h" #define NO_PROTO_H 1 @@ -4776,6 +4800,7 @@ AC_TRY_COMPILE([ #include "${srcdir-.}/smbd/quotas.c" ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no) CPPFLAGS="$SAVE_CPPFLAGS" +CFLAGS="$SAVE_CFLAGS" ]) if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then AC_MSG_CHECKING(whether to use the old quota support) @@ -5042,7 +5067,7 @@ if test $space = no; then main () { struct statvfs64 fsd; - exit (statvfs64 (".", &fsd)); + return statvfs64 (".", &fsd); }], fu_cv_sys_stat_statvfs64=yes, fu_cv_sys_stat_statvfs64=no, @@ -5095,7 +5120,7 @@ if test $space = no; then { struct statfs fsd; fsd.f_fsize = 0; - exit (statfs (".", &fsd, sizeof (struct statfs))); + return statfs (".", &fsd, sizeof (struct statfs)); }], fu_cv_sys_stat_statfs3_osf1=yes, fu_cv_sys_stat_statfs3_osf1=no, @@ -5126,7 +5151,7 @@ member (AIX, 4.3BSD)]) { struct statfs fsd; fsd.f_bsize = 0; - exit (statfs (".", &fsd)); + return statfs (".", &fsd); }], fu_cv_sys_stat_statfs2_bsize=yes, fu_cv_sys_stat_statfs2_bsize=no, @@ -5147,7 +5172,7 @@ if test $space = no; then main () { struct statfs fsd; - exit (statfs (".", &fsd, sizeof fsd, 0)); + return statfs (".", &fsd, sizeof fsd, 0); }], fu_cv_sys_stat_statfs4=yes, fu_cv_sys_stat_statfs4=no, @@ -5175,7 +5200,7 @@ member (4.4BSD and NetBSD)]) { struct statfs fsd; fsd.f_fsize = 0; - exit (statfs (".", &fsd)); + return statfs (".", &fsd); }], fu_cv_sys_stat_statfs2_fsize=yes, fu_cv_sys_stat_statfs2_fsize=no, @@ -5206,7 +5231,7 @@ if test $space = no; then struct fs_data fsd; /* Ultrix's statfs returns 1 for success, 0 for not mounted, -1 for failure. */ - exit (statfs (".", &fsd) != 1); + return statfs (".", &fsd) != 1; }], fu_cv_sys_stat_fs_data=yes, fu_cv_sys_stat_fs_data=no, @@ -5801,6 +5826,7 @@ samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)]) AC_CACHE_CHECK([for Linux readahead], samba_cv_HAVE_LINUX_READAHEAD,[ + AC_TRY_LINK([ #if defined(HAVE_UNISTD_H) #include @@ -6364,7 +6390,7 @@ AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"], dnl Merge in developer cflags from now on if test x"$developer" = x"yes"; then - CFLAGS="${CFLAGS} ${DEVELOPER_CFLAGS}" + CFLAGS="${ac_no_error_on_warning_CFLAGS} ${DEVELOPER_CFLAGS}" fi builddir=`pwd` diff --git a/source3/tests/crypttest.c b/source3/tests/crypttest.c index efee2e593d..8bed1c74d1 100644 --- a/source3/tests/crypttest.c +++ b/source3/tests/crypttest.c @@ -814,7 +814,7 @@ main() if((strcmp(c_out1, expected_out) != 0) && (strcmp(c_out2, expected_out) == 0)) - exit(1); + return 1; #ifdef HAVE_BIGCRYPT /* @@ -843,10 +843,10 @@ main() if((strcmp(big_c_out1, big_expected_out) != 0) && (strcmp(big_c_out2, big_expected_out) == 0)) - exit(1); + return 1; } #endif - exit(0); + return 0; } diff --git a/source3/tests/fcntl_lock.c b/source3/tests/fcntl_lock.c index 3dc12a3897..728f94b612 100644 --- a/source3/tests/fcntl_lock.c +++ b/source3/tests/fcntl_lock.c @@ -57,7 +57,7 @@ int main(int argc, char *argv[]) if (fd == -1) { fprintf(stderr,"ERROR: failed to open %s (errno=%d)\n", DATA, (int)errno); - exit(1); + return 1; } lock.l_type = F_WRLCK; @@ -74,9 +74,9 @@ int main(int argc, char *argv[]) if ((ret == -1) || (lock.l_type == F_UNLCK)) { fprintf(stderr,"ERROR: lock test failed (ret=%d errno=%d)\n", ret, (int)errno); - exit(1); + return 1; } else { - exit(0); + return 0; } } @@ -86,7 +86,7 @@ int main(int argc, char *argv[]) if (fd == -1) { fprintf(stderr,"ERROR: failed to open %s (errno=%d)\n", DATA, (int)errno); - exit(1); + return 1; } lock.l_type = F_WRLCK; @@ -117,5 +117,5 @@ int main(int argc, char *argv[]) status); } - exit(status); + return status; } diff --git a/source3/tests/fcntl_lock64.c b/source3/tests/fcntl_lock64.c index e5ecd88fd0..b218fa9282 100644 --- a/source3/tests/fcntl_lock64.c +++ b/source3/tests/fcntl_lock64.c @@ -16,6 +16,10 @@ #include #endif +#ifdef HAVE_SYS_WAIT_H +#include +#endif + #include static int sys_waitpid(pid_t pid,int *status,int options) @@ -40,7 +44,7 @@ int main(int argc, char *argv[]) sleep(2); fd = open64(DATA, O_RDONLY); - if (fd == -1) exit(1); + if (fd == -1) return 1; lock.l_type = F_WRLCK; lock.l_whence = SEEK_SET; @@ -56,10 +60,10 @@ int main(int argc, char *argv[]) if ((ret == -1) || (lock.l_type == F_UNLCK)) { /* printf("No lock conflict\n"); */ - exit(1); + return 1; } else { /* printf("lock conflict\n"); */ - exit(0); + return 0; } } @@ -92,5 +96,5 @@ int main(int argc, char *argv[]) unlink(DATA); - exit(status); + return status; } diff --git a/source3/tests/ftruncate.c b/source3/tests/ftruncate.c index 93282782ee..700d5c8ce5 100644 --- a/source3/tests/ftruncate.c +++ b/source3/tests/ftruncate.c @@ -21,7 +21,7 @@ main() unlink(DATA); if (lseek(fd, 0, SEEK_END) == LEN) { - exit(0); + return 0; } - exit(1); + return 1; } diff --git a/source3/tests/getgroups.c b/source3/tests/getgroups.c index 343fd5a184..c73cd21650 100644 --- a/source3/tests/getgroups.c +++ b/source3/tests/getgroups.c @@ -11,6 +11,10 @@ #include #endif +#if defined(HAVE_STDLIB_H) +#include +#endif + #include #include #include @@ -26,7 +30,7 @@ main() if (sizeof(gid_t) == sizeof(int)) { fprintf(stderr,"gid_t and int are the same size\n"); - exit(1); + return 1; } if (ngroups <= 0) @@ -44,7 +48,7 @@ main() if (ngroups == 0) { printf("WARNING: can't determine getgroups return type\n"); - exit(1); + return 1; } cgroups = (char *)igroups; @@ -52,15 +56,15 @@ main() if (ngroups == 1 && cgroups[2] == 0x42 && cgroups[3] == 0x42) { fprintf(stderr,"getgroups returns gid_t\n"); - exit(1); + return 1; } for (i=0;i 0) exit(0); - exit(1); + if (count > 0) return 0; + return 1; } diff --git a/source3/tests/summary.c b/source3/tests/summary.c index 79a530b013..735f93e116 100644 --- a/source3/tests/summary.c +++ b/source3/tests/summary.c @@ -1,3 +1,4 @@ +#include #include main() diff --git a/source3/tests/trivial.c b/source3/tests/trivial.c index 2723637a0f..ae368a1398 100644 --- a/source3/tests/trivial.c +++ b/source3/tests/trivial.c @@ -1,3 +1,4 @@ +#include main() { exit(0); diff --git a/source3/tests/unixsock.c b/source3/tests/unixsock.c index f2765d68f6..ba384ae362 100644 --- a/source3/tests/unixsock.c +++ b/source3/tests/unixsock.c @@ -1,4 +1,5 @@ -/* -*- c-file-style: "linux" -*- +/* + * -*- c-file-style: "linux" -*- * * Try creating a Unix-domain socket, opening it, and reading from it. * The POSIX name for these is AF_LOCAL/PF_LOCAL. @@ -8,15 +9,17 @@ * on which they are broken under some conditions, such as RedHat 7.0 * (unpatched). We can't build WinBind there at the moment. * - * Coding standard says to always use exit() for this, not return, so - * we do. - * - * Martin Pool , June 2000. */ + * Martin Pool , June 2000. + */ /* TODO: Look for AF_LOCAL (most standard), AF_UNIX, and AF_FILE. */ #include +#if defined(HAVE_UNISTD_H) +#include +#endif + #ifdef HAVE_SYS_SOCKET_H # include #endif @@ -48,7 +51,7 @@ static int bind_socket(char const *filename) /* Create the socket. */ if ((sock_fd = socket(PF_LOCAL, SOCK_STREAM, 0)) < 0) { perror ("socket(PF_LOCAL, SOCK_STREAM)"); - exit(1); + return 1; } /* Bind a name to the socket. */ @@ -67,7 +70,7 @@ static int bind_socket(char const *filename) if (bind(sock_fd, (struct sockaddr *) &name, size) < 0) { perror ("bind"); - exit(1); + return 1; } return sock_fd; @@ -84,10 +87,10 @@ int main(void) alarm(15); /* secs */ if ((sock_fd = bind_socket(filename)) < 0) - exit(1); + return 1; /* the socket will be deleted when autoconf cleans up these files. */ - exit(0); + return 0; } -- cgit