mirror of
https://git.openafs.org/openafs.git
synced 2025-01-20 07:51:00 +00:00
6d51ebd6c8
This patch adds a '--enable-checking' configuration option. When this option is supplied, and gcc is in use, the compiler will treat any warnings as errors. This will hopefully help stop new warnings from creeping into the tree. In order to still be able to build, all of the currently existing warnings are accepted (these are documented in README.WARNINGS). With this set of warning inhibitions, the tree is known to build on 32bit Leopard - other systems may vary. Warning inhibition may be disabled by supplying --enable-checking=all - in this case the tree will definitely not build! If --enabled-checking is not specified, the existing compilation behaviour is maintained, so there is no user-visible change. Gcc 4.2, or later, is required to use the pragma sets contained within this patch. Again, they are not visible unless --enable-checking is given. Reviewed-on: http://gerrit.openafs.org/526 Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
105 lines
5.2 KiB
Plaintext
105 lines
5.2 KiB
Plaintext
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 : deprecated : daemon() marked as deprecated on Darwin
|
|
: all : 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
|
|
bozo/bosoprocs.c : all : ExtendedCellInfo and des key types
|
|
bozo/bos.c : all : DES key types & string consts
|
|
bozo/bos_util.c : all : DES key types
|
|
bubasics/bumon.ss.c : all : BC_Print collision betwen client & server
|
|
bucoord/ubik_db_if.c : strict-proto : Ubik_Call
|
|
: all : Public version of volser_prototypes req
|
|
bucoord/volstub.c : all : Public version of volser_prototypes req
|
|
bucoord/commands.c : all : Ubik_Call
|
|
: signed vs unsigned for dates
|
|
budb/server.c : all : ExtendedCellInfo
|
|
butc/lwps.c : all : Public version of volser_prototypes req
|
|
butc/tcmain.c : all : prototypes / signed warnings (XXX)
|
|
butc/recoverDb.c : all : pointer target issues (XXX)
|
|
butc/tcudbprocs.c : all : ubik_Call
|
|
butc/dump.c : all : pointer types (XXX)
|
|
comerr/error_table.c : all : Autogenerated file with unused labels
|
|
fsint/afsint.xdr.c : all : rxgen opaque vectors problem
|
|
fsprobe/fsprobe.c : all : Public version of volser_prototypes req
|
|
kauth/kaprocs.c : all : XXX
|
|
kauth/kaserver.c : all : ExtendedCellInfo
|
|
kauth/krb_udp.c : all : XXX
|
|
kauth/admin_tools.c : all : ubik_Call nonsense
|
|
kauth/authclient.c : all : ubik_Call nonsense
|
|
kauth/kas.c : all : XXX
|
|
kauth/klog.c : all : XXX
|
|
kauth/ka-forwarder.c : all : XXX
|
|
libadmin/bos/afs_bosAdmin.c: all : DES keys, time types, and const
|
|
libadmin/kas/afs_kasAdmin.c: all : Ubik_Call nonsense, DES keys
|
|
libadmin/samples/rxstat_query_peer.c : all : util_RPCStatsStateGet types
|
|
libadmin/samples/rxstat_query_process.c : all : util_RPCStatsStateGet types
|
|
libadmin/samples/rxdebug_peers.c : format : struct clock vs unsigned int
|
|
libadmin/test/client.c : all : util_RPCStatsStateGet types
|
|
ptserver/ptserver.c : all : ExtendedCellInfo
|
|
rxkad/rxkad_server.c : all : Des key nonsense
|
|
rxkad/ticket.c : all : Des key nonsense
|
|
rxkad/ticket5.c : all : Des key nonsense
|
|
rxkad/v5der.c : all (pthread) : Des key nonsense
|
|
rx/rx.c : all (pthread) : rxkad_global_stats_init not proto'd
|
|
rx/xdr_rx.c : all (ukernel) : Prototypes don't match due to AFS_XDR_T
|
|
not being used in the xdr header
|
|
ubik/utst_int_ss.c : all : Client / Server symbol collisions
|
|
ubik/beacon.c : all : Ubik uses signed/unsigned
|
|
interchangably for IP addresses, a
|
|
fix will require API changes.
|
|
ubik/ubikclient.c : strict-protos : ubik_Call
|
|
uss/uss_vol.c : all : Public version of volser_prototypes req
|
|
Format issues
|
|
uss/uss_kauth.c : all : Des keys, ubik_Call
|
|
uss/lex.yy.c : all : Unused symbols
|
|
viced/fsprobe.c : all : ubik_Call
|
|
vlserver/vlserver.c : all : GetExtendedCellInfo
|
|
vol/salvager.c : all : consts & undefined variable from header
|
|
volser/vos.c : all : ubik_Call_New, signedness and const
|
|
volser/vol-dump.c : format : afs_sfsize_t
|
|
volser/vsprocs.c : format-extra : The ONERROR macro needs to be rethought
|
|
|