mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
readme: move README.WARNINGS to CODING
Move the information about compiler warnings to the CODING readme file. Change-Id: I0be752c76ddee809fe80bd1f97048953eeee89ee Reviewed-on: http://gerrit.openafs.org/10975 Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: D Brashear <shadow@your-file-system.com>
This commit is contained in:
parent
eff41a2e53
commit
18511623f2
77
CODING
77
CODING
@ -188,3 +188,80 @@ change. One workflow to do this:
|
||||
2) In your editor, delete the existing Change-ID line. Save and quit.
|
||||
3) Run "git commit --amend", saving and quitting again. Git will run
|
||||
the commit hook and generate a new Change-ID for Gerrit.
|
||||
|
||||
Warnings
|
||||
========
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
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_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
|
||||
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
|
||||
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
|
||||
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
|
||||
rxkad/ticket5.c : all : v5gen.c has set-but-unused variables
|
||||
ubik/ubikclient.c : strict-protos : ubik_Call
|
||||
volser/vol-dump.c : format : afs_sfsize_t
|
||||
|
||||
|
@ -1,73 +0,0 @@
|
||||
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
|
||||
|
||||
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
|
||||
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_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
|
||||
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
|
||||
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
|
||||
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
|
||||
rxkad/ticket5.c : all : v5gen.c has set-but-unused variables
|
||||
ubik/ubikclient.c : strict-protos : ubik_Call
|
||||
volser/vol-dump.c : format : afs_sfsize_t
|
||||
|
Loading…
Reference in New Issue
Block a user