X-Git-Url: http://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=README.WARNINGS;h=fa5fb8fb4fd96a14aa80222bcd1df58cea75d8d5;hp=60b2114eb4ddac1122fe6f455084ae33f37982b9;hb=1b674ae30925c8459e1a5614e19562af460850d8;hpb=8314001bdb305204467adfb27b3dfa2e6890a3b1 diff --git a/README.WARNINGS b/README.WARNINGS index 60b2114..fa5fb8f 100644 --- a/README.WARNINGS +++ b/README.WARNINGS @@ -6,7 +6,7 @@ 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 +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 @@ -21,15 +21,26 @@ 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 +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 +It would appear that when built with -Werror, the llvm clang compiler will +still upgrade warnings that are suppresed in this way to errors. In this case, +the fix is to mark that warning as ignored, but only for clang. For example: + #ifdef IGNORE_SOME_GCC_WARNINGS + # ifdef __clang__ + # pragma GCC diagnostic ignored "-Wdeprecated-declarations" + # else + # pragma GCC diagnostic warning "-Wdeprecated-declarations" + # endif + #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 +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 @@ -42,62 +53,21 @@ 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 +afsd/afsd_kernel.c : deprecated : daemon() marked as deprecated on Darwin 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 +external/heimdal/hcrypto/validate.c: all: statement with empty body +kauth/admin_tools.c : all : signed vs unsigned for dates kauth/authclient.c : strict-proto : ubik_Call nonsense - : implicit-func : 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/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/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/ticket5.c : implicit-func : CRC functions -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. +rxkad/ticket5.c : all : v5gen.c has set-but-unused variables 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 : implicit-func : ubik_Call_New volser/vol-dump.c : format : afs_sfsize_t -volser/vsprocs.c : format-extra : The ONERROR macro needs to be rethought