Restructure the --enable-standards option.
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Tue, 5 May 2009 18:15:35 +0000 (20:15 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Tue, 5 May 2009 18:15:35 +0000 (20:15 +0200)
On Debian GNU/Linux (testing) this works. Let's see how other
systems hold up.

14 files changed:
configure.in
src/Makefile.am
src/collectd-nagios.c
src/collectd.h
src/dns.c
src/exec.c
src/iptables.c
src/libcollectdclient/client.c
src/load.c
src/memcached.c
src/network.c
src/ntpd.c
src/standards.h [deleted file]
src/utils_dns.c

index 45b8869..115ee21 100644 (file)
@@ -67,13 +67,27 @@ fi
 
 if test "x$ac_system" = "xSolaris"
 then
-       CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+       AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Define to enforce POSIX thread semantics under Solaris.])
 fi
 
 # Where to install .pc files.
 pkgconfigdir="${libdir}/pkgconfig"
 AC_SUBST(pkgconfigdir)
 
+# Check for standards compliance mode
+AC_ARG_ENABLE(standards,
+             AS_HELP_STRING([--enable-standards], [Enable standards compliance mode]),
+             [enable_standards="$enableval"],
+             [enable_standards="no"])
+if test "x$enable_standards" = "xyes"
+then
+       AC_DEFINE(_ISOC99_SOURCE,        1, [Define to enforce ISO C99 compliance.])
+       AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Define to enforce POSIX.1-2001 compliance.])
+       AC_DEFINE(_XOPEN_SOURCE,       600, [Define to enforce X/Open 6 (XSI) compliance.])
+       AC_DEFINE(_REENTRANT,            1, [Define to enable reentrancy interfaces.])
+fi
+AM_CONDITIONAL(BUILD_FEATURE_STANDARDS, test "x$enable_standards" = "xyes")
+
 #
 # Checks for header files.
 #
@@ -347,7 +361,7 @@ AC_CHECK_HEADERS(linux/un.h, [], [],
 #endif
 ])
 
-AC_CHECK_HEADERS(pwd.h grp.h sys/un.h ctype.h limits.h sys/quota.h xfs/xqm.h fs_info.h fshelp.h paths.h mntent.h mnttab.h sys/fstyp.h sys/fs_types.h sys/mntent.h sys/mnttab.h sys/statfs.h sys/statvfs.h sys/vfs.h sys/vfstab.h kvm.h wordexp.h)
+AC_CHECK_HEADERS(pwd.h grp.h sys/un.h ctype.h limits.h xfs/xqm.h fs_info.h fshelp.h paths.h mntent.h mnttab.h sys/fstyp.h sys/fs_types.h sys/mntent.h sys/mnttab.h sys/statfs.h sys/statvfs.h sys/vfs.h sys/vfstab.h kvm.h wordexp.h)
 
 # For the dns plugin
 AC_CHECK_HEADERS(arpa/nameser.h)
@@ -908,7 +922,8 @@ AC_CHECK_MEMBERS([struct kinfo_proc.kp_proc, struct kinfo_proc.kp_eproc],
        ])
 
 AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [],
-[#if HAVE_STDINT_H
+[#define _BSD_SOURCE
+#if HAVE_STDINT_H
 # include <stdint.h>
 #endif
 #if HAVE_SYS_TYPES_H
@@ -928,7 +943,8 @@ AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [],
 #endif
 ])
 AC_CHECK_MEMBERS([struct udphdr.dest, struct udphdr.source], [], [],
-[#if HAVE_STDINT_H
+[#define _BSD_SOURCE
+#if HAVE_STDINT_H
 # include <stdint.h>
 #endif
 #if HAVE_SYS_TYPES_H
@@ -3181,7 +3197,6 @@ collectd features:])
 # FIXME: Remove these calls to `AC_COLLECTD' and then remove that macro.
 AC_COLLECTD([debug],     [enable],  [feature], [debugging])
 AC_COLLECTD([daemon],    [disable], [feature], [daemon mode])
-AC_COLLECTD([standards], [enable],  [feature], [enable strict standards compliance mode])
 AC_COLLECTD([getifaddrs],[enable],  [feature], [getifaddrs under Linux])
 
 dependency_error="no"
index 9c0b8e9..4896736 100644 (file)
@@ -43,9 +43,6 @@ collectd_SOURCES = collectd.c collectd.h \
                   utils_tail.c utils_tail.h \
                   utils_threshold.c utils_threshold.h \
                   types_list.c types_list.h
-if BUILD_FEATURE_STANDARDS
-collectd_SOURCES += standards.h
-endif
 
 collectd_CPPFLAGS =  $(AM_CPPFLAGS) $(LTDLINCL)
 collectd_CFLAGS = $(AM_CFLAGS)
index 0c480a0..29e34a4 100644 (file)
 # include "config.h"
 #endif
 
-/* Set to C99 and POSIX code */
-#if COLLECT_STANDARDS
-# include "standards.h"
-#endif /* COLLECT_STANDARDS */
-
 #if !defined(__GNUC__) || !__GNUC__
 # define __attribute__(x) /**/
 #endif
index 5a03919..18052ba 100644 (file)
 # include "config.h"
 #endif
 
-/* Set to C99 and POSIX code */
-#if COLLECT_STANDARDS
-# include "standards.h"
-#endif /* COLLECT_STANDARDS */
-
 #include <stdio.h>
 #if HAVE_SYS_TYPES_H
 # include <sys/types.h>
index 476b6dd..8339377 100644 (file)
--- a/src/dns.c
+++ b/src/dns.c
@@ -19,6 +19,8 @@
  *   Florian octo Forster <octo at verplant.org>
  **/
 
+#define _BSD_SOURCE
+
 #include "collectd.h"
 #include "common.h"
 #include "plugin.h"
index d2b2508..4405985 100644 (file)
@@ -23,6 +23,8 @@
  *   Peter Holik <peter at holik.at>
  **/
 
+#define _BSD_SOURCE /* For setgroups */
+
 #include "collectd.h"
 #include "common.h"
 #include "plugin.h"
index 3062a0c..6f1030f 100644 (file)
@@ -29,6 +29,8 @@
 #include "plugin.h"
 #include "configfile.h"
 
+#include <sys/socket.h>
+
 #if OWN_LIBIPTC
 # include "libiptc/libiptc.h"
 # include "libiptc/libip6tc.h"
index 134a5c4..e90b3b0 100644 (file)
 # include "config.h"
 #endif
 
-/* Set to C99 and POSIX code */
-#if COLLECT_STANDARDS
-# include "standards.h"
-#endif /* COLLECT_STANDARDS */
-
 #if !defined(__GNUC__) || !__GNUC__
 # define __attribute__(x) /**/
 #endif
index b7372a1..cf5221b 100644 (file)
@@ -19,6 +19,8 @@
  *   Florian octo Forster <octo at verplant.org>
  **/
 
+#define _BSD_SOURCE
+
 #include "collectd.h"
 #include "common.h"
 #include "plugin.h"
index 3421f82..06cf200 100644 (file)
@@ -67,7 +67,8 @@ static int memcached_query_daemon (char *buffer, int buffer_size) /* {{{ */
 
                memset (&serv_addr, 0, sizeof (serv_addr));
                serv_addr.sun_family = AF_UNIX;
-               sstrncpy (serv_addr.sun_path, memcached_socket, sizeof (serv_addr.sun_path));
+               sstrncpy (serv_addr.sun_path, memcached_socket,
+                               sizeof (serv_addr.sun_path));
 
                /* create our socket descriptor */
                fd = socket (AF_UNIX, SOCK_STREAM, 0);
@@ -80,7 +81,7 @@ static int memcached_query_daemon (char *buffer, int buffer_size) /* {{{ */
 
                /* connect to the memcached daemon */
                status = (ssize_t) connect (fd, (struct sockaddr *) &serv_addr,
-                               SUN_LEN (&serv_addr));
+                               sizeof (serv_addr));
                if (status != 0) {
                        shutdown (fd, SHUT_RDWR);
                        close (fd);
index 67a7c3c..274d2d8 100644 (file)
@@ -19,6 +19,8 @@
  *   Florian octo Forster <octo at verplant.org>
  **/
 
+#define _BSD_SOURCE /* For struct ip_mreq */
+
 #include "collectd.h"
 #include "plugin.h"
 #include "common.h"
index f51ef5a..9d716ad 100644 (file)
@@ -19,6 +19,8 @@
  *   Florian octo Forster <octo at verplant.org>
  **/
 
+#define _BSD_SOURCE /* For NI_MAXHOST */
+
 #include "collectd.h"
 #include "common.h"
 #include "plugin.h"
diff --git a/src/standards.h b/src/standards.h
deleted file mode 100644 (file)
index a01b414..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * collectd - src/collectd.h
- * Copyright (C) 2009  Florian octo Forster
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; only version 2 of the License is applicable.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- * Authors:
- *   Florian octo Forster <octo at verplant.org>
- **/
-
-#ifndef COLLECTD_STANDARDS_H
-#define COLLECTD_STANDARDS_H 1
-
-# ifndef _ISOC99_SOURCE
-#  define _ISOC99_SOURCE
-# endif
-# ifndef _POSIX_SOURCE
-#  define _POSIX_SOURCE
-# endif
-# ifndef _POSIX_C_SOURCE
-#  define _POSIX_C_SOURCE 200112L
-# endif
-# ifndef _XOPEN_SOURCE
-#  define _XOPEN_SOURCE 600
-# endif
-# ifndef _REENTRANT
-#  define _REENTRANT
-# endif
-
-#if 0
-/* Disable non-standard extensions */
-# ifdef _BSD_SOURCE
-#  undef _BSD_SOURCE
-# endif
-# ifdef _SVID_SOURCE
-#  undef _SVID_SOURCE
-# endif
-# ifdef _GNU_SOURCE
-#  undef _GNU_SOURCE
-# endif
-#endif /* 0 */
-
-#endif /* COLLECTD_STANDARDS_H */
index b7dc791..2348be2 100644 (file)
@@ -33,6 +33,8 @@
  *   Florian octo Forster <octo at verplant.org>
  */
 
+#define _BSD_SOURCE
+
 #include "collectd.h"
 #include "plugin.h"
 #include "common.h"