Remove explicit uses of _GNU_SOURCE.
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 27 Mar 2016 02:22:40 +0000 (02:22 +0000)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 12 Jun 2016 11:00:50 +0000 (13:00 +0200)
The best way to add these flags is to use the autoconf helper
AC_USE_SYSTEM_EXTENSIONS. This macro adds defines to config.h, so we
must include config.h (via para.h) before anything else. The two files
for which this matters are fixed by moving the include directive for
para.h to the top.

The AC_USE_SYSTEM_EXTENSIONS macro was introduced in Autoconf 2.60,
which was released ten years ago. The existing AC_PREREQ([2.61])
check in configure.ac makes sure the macro is defined.

configure.ac
net.c
string.c

index 360d76c..953a9d2 100644 (file)
@@ -65,6 +65,7 @@ AC_DEFUN([LIB_SUBST_FLAGS], [
        AC_SUBST($1_ldflags)
 ])
 
+AC_USE_SYSTEM_EXTENSIONS
 AC_C_BIGENDIAN()
 
 AC_PATH_PROG([GENGETOPT], [gengetopt])
@@ -197,7 +198,6 @@ AC_SUBST(nsl_ldflags)
 ########################################################################### ucred
 AC_MSG_CHECKING(for struct ucred)
 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-       #define _GNU_SOURCE
        #include <sys/types.h>
        #include <sys/socket.h>
 ]], [[
diff --git a/net.c b/net.c
index 42418e5..1b142a3 100644 (file)
--- a/net.c
+++ b/net.c
@@ -6,11 +6,7 @@
 
 /** \file net.c Networking-related helper functions. */
 
-/*
- * Since glibc 2.8, the _GNU_SOURCE feature test macro must be defined in order
- * to obtain the definition of the ucred structure.
- */
-#define _GNU_SOURCE
+#include "para.h"
 
 #include <netinet/in.h>
 #include <arpa/inet.h>
@@ -32,7 +28,6 @@
 
 #include <regex.h>
 
-#include "para.h"
 #include "error.h"
 #include "net.h"
 #include "string.h"
index e731bb4..86e7753 100644 (file)
--- a/string.c
+++ b/string.c
@@ -6,19 +6,16 @@
 
 /** \file string.c Memory allocation and string handling functions. */
 
-#define _GNU_SOURCE
+#include "para.h"
 
 #include <pwd.h>
 #include <sys/utsname.h> /* uname() */
-
 #include <string.h>
 #include <regex.h>
-
 #include <langinfo.h>
 #include <wchar.h>
 #include <wctype.h>
 
-#include "para.h"
 #include "string.h"
 #include "error.h"