From d205c783278eea95143aa95443803c16882c3f5b Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Wed, 1 Mar 2017 22:27:11 +0100
Subject: util.pposix, configure: Move _GNU_SOURCE macro into source files

---
 configure         |  6 +++---
 util-src/crand.c  |  2 ++
 util-src/net.c    |  1 +
 util-src/pposix.c | 24 ++++++++++++------------
 util-src/signal.c |  2 ++
 5 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/configure b/configure
index 974823c3..126fee3d 100755
--- a/configure
+++ b/configure
@@ -113,7 +113,7 @@ do
          RUNWITH="lua$LUA_SUFFIX"
          LUA_INCDIR="/usr/include/lua$LUA_SUFFIX"
          LUA_INCDIR_SET=yes
-         CFLAGS="$CFLAGS -ggdb -D_GNU_SOURCE"
+         CFLAGS="$CFLAGS -ggdb"
       fi
       if [ "$OSTYPE" = "macosx" ]; then
          LUA_INCDIR=/usr/local/include;
@@ -128,7 +128,7 @@ do
          LUA_INCDIR_SET=yes
          LUA_LIBDIR=/usr/local/lib
          LUA_LIBDIR_SET=yes
-         CFLAGS="$CFLAGS -ggdb -D_GNU_SOURCE"
+         CFLAGS="$CFLAGS -ggdb"
       fi
       if [ "$OSTYPE" = "freebsd" -o "$OSTYPE" = "openbsd" ]; then
          LUA_INCDIR="/usr/local/include/lua51"
@@ -167,7 +167,7 @@ do
             LUA_INCDIR="$LUA_CF"
             LUA_INCDIR_SET=yes
          fi
-         CFLAGS="$CFLAGS -D_GNU_SOURCE"
+         CFLAGS="$CFLAGS"
       fi
       ;;
    --libdir=*)
diff --git a/util-src/crand.c b/util-src/crand.c
index f3fa00ea..8ac89a1f 100644
--- a/util-src/crand.c
+++ b/util-src/crand.c
@@ -19,6 +19,8 @@
 *
 */
 
+#define _DEFAULT_SOURCE
+
 #include "lualib.h"
 #include "lauxlib.h"
 
diff --git a/util-src/net.c b/util-src/net.c
index 32f69025..35f2c362 100644
--- a/util-src/net.c
+++ b/util-src/net.c
@@ -9,6 +9,7 @@
 --
 */
 
+#define _GNU_SOURCE
 #include <stddef.h>
 #include <string.h>
 #include <errno.h>
diff --git a/util-src/pposix.c b/util-src/pposix.c
index da47cac2..f9c07e54 100644
--- a/util-src/pposix.c
+++ b/util-src/pposix.c
@@ -15,6 +15,14 @@
 
 #define MODULE_VERSION "0.3.6"
 
+
+#if defined(__linux__)
+#define _GNU_SOURCE
+#else
+#define _DEFAULT_SOURCE
+#endif
+#define _POSIX_C_SOURCE 200809L
+
 #include <stdlib.h>
 #include <math.h>
 #include <unistd.h>
@@ -40,11 +48,11 @@
 #endif
 
 #include <fcntl.h>
-#if defined(__linux__) && defined(_GNU_SOURCE)
+#if defined(__linux__)
 #include <linux/falloc.h>
 #endif
 
-#if (defined(_SVID_SOURCE) && !defined(WITHOUT_MALLINFO))
+#if !defined(WITHOUT_MALLINFO)
 #include <malloc.h>
 #define WITH_MALLINFO
 #endif
@@ -663,7 +671,7 @@ int lc_uname(lua_State *L) {
 	lua_setfield(L, -2, "version");
 	lua_pushstring(L, uname_info.machine);
 	lua_setfield(L, -2, "machine");
-#ifdef _GNU_SOURCE
+#ifdef __USE_GNU
 	lua_pushstring(L, uname_info.domainname);
 	lua_setfield(L, -2, "domainname");
 #endif
@@ -726,7 +734,6 @@ int lc_meminfo(lua_State *L) {
  * https://github.com/rrthomas/luaposix/blob/master/lposix.c#L631
  * */
 
-#if _XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L || defined(_GNU_SOURCE)
 int lc_fallocate(lua_State *L) {
 	int ret;
 	off_t offset, len;
@@ -739,7 +746,7 @@ int lc_fallocate(lua_State *L) {
 	offset = luaL_checkinteger(L, 2);
 	len = luaL_checkinteger(L, 3);
 
-#if defined(__linux__) && defined(_GNU_SOURCE)
+#if defined(__linux__)
 	errno = 0;
 	ret = fallocate(fileno(f), FALLOC_FL_KEEP_SIZE, offset, len);
 
@@ -759,10 +766,6 @@ int lc_fallocate(lua_State *L) {
 		return 2;
 	}
 
-#else
-#warning Only using posix_fallocate() fallback.
-#warning Linux fallocate() is strongly recommended if available: recompile with -D_GNU_SOURCE
-#warning Note that posix_fallocate() will still be used on filesystems that dont support fallocate()
 #endif
 
 	ret = posix_fallocate(fileno(f), offset, len);
@@ -784,7 +787,6 @@ int lc_fallocate(lua_State *L) {
 		return 2;
 	}
 }
-#endif
 
 /* Register functions */
 
@@ -825,9 +827,7 @@ int luaopen_util_pposix(lua_State *L) {
 		{ "meminfo", lc_meminfo },
 #endif
 
-#if _XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L || defined(_GNU_SOURCE)
 		{ "fallocate", lc_fallocate },
-#endif
 
 		{ NULL, NULL }
 	};
diff --git a/util-src/signal.c b/util-src/signal.c
index a083df54..2cf68800 100644
--- a/util-src/signal.c
+++ b/util-src/signal.c
@@ -26,6 +26,8 @@
  * OTHER DEALINGS IN THE SOFTWARE.
 */
 
+#define _POSIX_C_SOURCE 200809L
+
 #include <signal.h>
 #include <stdlib.h>
 
-- 
cgit v1.2.3