build: add configure-time --enable-gcc-warnings option; avoid warnings
authorJim Meyering <meyering@redhat.com>
Wed, 12 Nov 2008 10:11:54 +0000 (11:11 +0100)
committerJim Meyering <meyering@redhat.com>
Sun, 21 Dec 2008 16:49:58 +0000 (17:49 +0100)
* bootstrap.conf (gnulib_modules): Add "warnings" module.
* configure.ac: Add --enable-gcc-warnings, derived from code in bison.
* src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS)
* lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS)
Don't use $(WERROR_CFLAGS), yet.
* src/system.h (usage): Declare.
* src/base64.c (usage): Declare to be global, for consistency.
* src/timeout.c (usage): Likewise.
* src/truncate.c (usage): Likewise.
* src/getlimits.c (usage): Likewise.
* src/pinky.c (ttyname): Declare with prototype, rather than an
empty argument list.
* src/who.c (ttyname): Likewise.
* src/su.c (crypt, getusershell, setusershell, endusershell): Likewise.

12 files changed:
bootstrap.conf
configure.ac
lib/Makefile.am
src/Makefile.am
src/base64.c
src/getlimits.c
src/pinky.c
src/su.c
src/system.h
src/timeout.c
src/truncate.c
src/who.c

index a3687d0..2fa7f0d 100644 (file)
@@ -100,6 +100,7 @@ gnulib_modules="
        vasprintf-posix
        vc-list-files
        verify version-etc-fsf
+       warnings
        wcwidth winsz-ioctl winsz-termios write-any-file
        xalloc
        xfreopen
index 549c7ee..f165893 100644 (file)
@@ -44,6 +44,39 @@ gl_EARLY
 gl_INIT
 coreutils_MACROS
 
+AC_ARG_ENABLE([gcc-warnings],
+  [AS_HELP_STRING([--enable-gcc-warnings],
+                 [turn on lots of GCC warnings (not recommended)])],
+  [case $enableval in
+     yes|no) ;;
+     *)      AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
+   esac
+   gl_gcc_warnings=$enableval],
+  [gl_gcc_warnings=no]
+)
+
+if test "$gl_gcc_warnings" = yes; then
+  gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
+  AC_SUBST([WERROR_CFLAGS])
+  gl_WARN_ADD([-Wall])
+  gl_WARN_ADD([-Wextra])
+  gl_WARN_ADD([-Wshadow])
+  gl_WARN_ADD([-Wno-sign-compare])
+  gl_WARN_ADD([-Wformat])
+  gl_WARN_ADD([-Wformat-security])
+  gl_WARN_ADD([-Wcast-align])
+  gl_WARN_ADD([-Wpointer-arith])
+  gl_WARN_ADD([-Wwrite-strings])
+  gl_WARN_ADD([-Wbad-function-cast])
+  gl_WARN_ADD([-Wmissing-declarations])
+  gl_WARN_ADD([-Wmissing-prototypes])
+  gl_WARN_ADD([-Wstrict-prototypes])
+  AC_SUBST([WARN_CFLAGS])
+  AC_DEFINE([lint], 1, [Define to 1 if the compiler is checking for lint.])
+  AC_DEFINE([_FORTIFY_SOURCE], 2,
+    [enable compile-time and run-time bounds-checking, and some warnings])
+fi
+
 AC_FUNC_FORK
 
 optional_bin_progs=
index 6b9a6b0..15ec0ea 100644 (file)
@@ -17,7 +17,7 @@
 
 include gnulib.mk
 
-AM_CFLAGS = $(WARNING_CFLAGS) $(WERROR_CFLAGS)
+AM_CFLAGS = $(WARN_CFLAGS) # $(WERROR_CFLAGS)
 
 libcoreutils_a_SOURCES += \
   buffer-lcm.c buffer-lcm.h \
index a6bc229..68c5f75 100644 (file)
@@ -26,6 +26,8 @@ no_install__progs = \
 build_if_possible__progs = \
   chroot df hostid nice pinky stty su uname uptime users who
 
+AM_CFLAGS = $(WARN_CFLAGS) # $(WERROR_CFLAGS)
+
 EXTRA_PROGRAMS = \
   $(no_install__progs) \
   $(build_if_possible__progs) \
index bfbd9e0..b5c0f71 100644 (file)
@@ -48,7 +48,7 @@ static struct option const long_options[] =
   {NULL, 0, NULL, 0}
 };
 
-static void
+void
 usage (int status)
 {
   if (status != EXIT_SUCCESS)
index 2b2bbfe..2fd6e39 100644 (file)
@@ -55,7 +55,7 @@
 #define UID_T_MIN 0
 #define GID_T_MIN 0
 
-static void
+void
 usage (int status)
 {
   if (status != EXIT_SUCCESS)
index 136abc5..9575923 100644 (file)
@@ -40,7 +40,7 @@
 # define MAXHOSTNAMELEN 64
 #endif
 
-char *ttyname ();
+char *ttyname (int);
 
 /* If true, display the hours:minutes since each user has touched
    the keyboard, or blank if within the last minute, or days followed
index f6b61f7..9f99b78 100644 (file)
--- a/src/su.c
+++ b/src/su.c
 /* The user to become if none is specified.  */
 #define DEFAULT_USER "root"
 
-char *crypt ();
-char *getusershell ();
-void endusershell ();
-void setusershell ();
+char *crypt (char const *key, char const *salt);
+char *getusershell (void);
+void endusershell (void);
+void setusershell (void);
 
 extern char **environ;
 
index 21182a4..020f83b 100644 (file)
@@ -655,3 +655,5 @@ bad_cast (char const *s)
 {
   return (char *) s;
 }
+
+void usage (int status);
index 8b506f0..e8ecf62 100644 (file)
@@ -122,7 +122,7 @@ cleanup (int sig)
     _exit (128 + sig);
 }
 
-static void
+void
 usage (int status)
 {
   if (status != EXIT_SUCCESS)
index 3bc52ca..c6f12b7 100644 (file)
@@ -91,7 +91,7 @@ parse_len (char const *str, off_t *size)
   return -1;
 }
 
-static void
+void
 usage (int status)
 {
   if (status != EXIT_SUCCESS)
index 3bc680b..692b661 100644 (file)
--- a/src/who.c
+++ b/src/who.c
@@ -95,7 +95,7 @@
 # define UT_ID(U) "??"
 #endif
 
-char *ttyname ();
+char *ttyname (int);
 
 /* If true, attempt to canonicalize hostnames via a DNS lookup. */
 static bool do_lookup;