diff --git a/Makefile.dep b/Makefile.dep index 9992c38a1b5b7..618042356c1ce 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 c45b2a5a1393b..3d49cc42f06b8 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 458ea356e902c..7317231e63acc 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 diff --git a/sys/cbor/Makefile b/sys/cbor/Makefile index 20001ffcadada..bd0de579634d1 100644 --- a/sys/cbor/Makefile +++ b/sys/cbor/Makefile @@ -1,10 +1,5 @@ MODULE = cbor -ifneq (,$(filter cbor_ctime,$(USEMODULE))) - # Some toolchains need to set this for strptime, specially on OSX - CFLAGS += -D_GNU_SOURCE=1 -endif - ifneq ($(shell uname -s),Darwin) CFLAGS += -D_XOPEN_SOURCE=600 endif