mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
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
|
||
|
|