From af5760977d9a7f637cbe3a3f09c7da3bde95f226 Mon Sep 17 00:00:00 2001
From: Martine Lenders <m.lenders@fu-berlin.de>
Date: Mon, 23 Oct 2017 15:49:10 +0200
Subject: [PATCH] newlib: use RIOT dependency system for _GNU_SOURCE instead

---
 Makefile.dep                   | 10 ++++++++++
 makefiles/libc/newlib.mk       |  4 ++++
 makefiles/pseudomodules.inc.mk |  1 +
 3 files changed, 15 insertions(+)

diff --git a/Makefile.dep b/Makefile.dep
index 9992c38a1b..618042356c 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -8,6 +8,12 @@ OLD_USEPKG := $(sort $(USEPKG))
 # pull dependencies from drivers
 include $(RIOTBASE)/drivers/Makefile.dep
 
+ifneq (,$(filter cbor_ctime,$(USEMODULE)))
+  ifneq (,$(filter newlib,$(USEMODULE)))
+    USEMODULE += newlib_gnu_source
+  endif
+endif
+
 ifneq (,$(filter csma_sender,$(USEMODULE)))
   USEMODULE += random
   USEMODULE += xtimer
@@ -381,6 +387,10 @@ ifneq (,$(filter od,$(USEMODULE)))
   USEMODULE += fmt
 endif
 
+ifneq (,$(filter newlib_gnu_source,$(USEMODULE)))
+  USEMODULE += newlib
+endif
+
 ifneq (,$(filter newlib_nano,$(USEMODULE)))
   USEMODULE += newlib
 endif
diff --git a/makefiles/libc/newlib.mk b/makefiles/libc/newlib.mk
index c45b2a5a13..3d49cc42f0 100644
--- a/makefiles/libc/newlib.mk
+++ b/makefiles/libc/newlib.mk
@@ -9,6 +9,10 @@ ifneq (,$(filter newlib_nano,$(USEMODULE)))
   endif
 endif
 
+ifneq (,$(filter newlib_gnu_source,$(USEMODULE)))
+  CFLAGS += -D_GNU_SOURCE=1
+endif
+
 ifeq (1,$(USE_NEWLIB_NANO))
   export LINKFLAGS += -specs=nano.specs
 endif
diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk
index 458ea356e9..7317231e63 100644
--- a/makefiles/pseudomodules.inc.mk
+++ b/makefiles/pseudomodules.inc.mk
@@ -52,6 +52,7 @@ PSEUDOMODULES += netstats_l2
 PSEUDOMODULES += netstats_ipv6
 PSEUDOMODULES += netstats_rpl
 PSEUDOMODULES += newlib
+PSEUDOMODULES += newlib_gnu_source
 PSEUDOMODULES += newlib_nano
 PSEUDOMODULES += openthread
 PSEUDOMODULES += pktqueue
-- 
GitLab