OpenAFS Warning detection ------------------------- There's been a concerted effort over the last few years, by many developers, to reduce the number of warnings in the OpenAFS tree. In an attempt to prevent warnings from creeping back in, we now have the ability to break the build when new warnings appear. This is only available for systems with gcc 4.2 or later, and is disabled unless the --enable-checking option is supplied to configure. Because we can't remove all of the warnings, we permit file by file (and warning by warning) disabling of specific warnings. The --enable-checking=all prevents this, and errors for any file containing a warning. Disabling warnings ------------------ If warnings are unavoidable in a particular part of the build, they may be disabled in an number of ways. You can disable a single warning type in a particular file by using GCC pragmas. If a warning can be disabled with a pragma, then the switch to use will be listed in the error message you receive from the compiler. Pragmas should be wrapped in IGNORE_SOME_GCC_WARNINGS, so that they aren't used with non-gcc compilers, and can be disabled if desired. For example: #ifdef IGNORE_SOME_GCC_WARNINGS # pragma GCC diagnostic warning "-Wold-style-definition" #endif If a pragma isn't available for your particular warning, you will need to disable all warnings for the file in question. You can do this by supplying the autoconf macro @CFLAGS_NOERROR@ in the build options for the file. For example: lex.yy.o : lex.yy.c y.tab.c ${CC} -c ${CFLAGS} @CFLAGS_NOERROR@ lex.yy.c If you add a new warning inhibition, please also add it to the list below. Inhibited warnings ------------------ afs/afs_syscall.c : old-style : strict-proto : all (ukernel) : syscall pointer issues afsd/afsd.c : all : call_syscall nonsense afsd/afsd_kernel.c : deprecated : daemon() marked as deprecated on Darwin : strict-proto : call_syscall missing prototype auth/ktc.c : all (ukernel) : call_syscall doesn't have a prototype bozo/bosserver.c : deprecated : daemon() marked as deprecated on Darwin bucoord/ubik_db_if.c : strict-proto : Ubik_Call bucoord/commands.c : all : Ubik_Call : signed vs unsigned for dates butc/tcudbprocs.c : all : ubik_Call kauth/admin_tools.c : all : ubik_Call nonsense kauth/authclient.c : strict-proto : ubik_Call nonsense libadmin/kas/afs_kasAdmin.c: all : Ubik_Call nonsense libadmin/samples/rxstat_query_peer.c : all : util_RPCStatsStateGet types libadmin/samples/rxstat_query_process.c : all : util_RPCStatsStateGet types libadmin/test/client.c : all : util_RPCStatsStateGet types rx/rx.c : all (pthread) : rxkad_global_stats_init not proto'd ubik/ubikclient.c : strict-protos : ubik_Call uss/uss_kauth.c : all : ubik_Call viced/fsprobe.c : all : ubik_Call volser/vol-dump.c : format : afs_sfsize_t