diff --git a/pkg/libcoap/Makefile b/pkg/libcoap/Makefile
index 1887f76b5e89e6959a0c1c737971557de9864942..e6cca7fcc50fa45b57a9ed624d79bfb394bc3749 100644
--- a/pkg/libcoap/Makefile
+++ b/pkg/libcoap/Makefile
@@ -12,3 +12,7 @@ all: git-download
 	"$(MAKE)" -C $(PKG_BUILDDIR)
 
 include $(RIOTBASE)/pkg/pkg.mk
+
+ifeq (llvm,$(TOOLCHAIN))
+  CFLAGS += -Wno-format-nonliteral
+endif
diff --git a/pkg/openthread/contrib/platform_logging.c b/pkg/openthread/contrib/platform_logging.c
index a3aed1db7d04d971376b5abed7dd43bda5c19abd..a7deade082bc957757e3674cd7988a0902579838 100644
--- a/pkg/openthread/contrib/platform_logging.c
+++ b/pkg/openthread/contrib/platform_logging.c
@@ -28,6 +28,7 @@
 
 /* adapted from OpenThread posix example:
  * See: https://github.com/openthread/openthread/blob/master/examples/platforms/posix/logging.c */
+__attribute__((__format__ (__printf__, 3, 4)))
 void otPlatLog(otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat, ...)
 {
     va_list args;
diff --git a/pkg/tinydtls/Makefile b/pkg/tinydtls/Makefile
index 8d5285c61914858f1dadb94c48129af7c111103e..dcf411273b7409bf031673f99444442fb96fb9c0 100644
--- a/pkg/tinydtls/Makefile
+++ b/pkg/tinydtls/Makefile
@@ -17,3 +17,7 @@ all: git-download
 	"$(MAKE)" -C $(PKG_BUILDDIR)
 
 include $(RIOTBASE)/pkg/pkg.mk
+
+ifeq (llvm,$(TOOLCHAIN))
+  CFLAGS += -Wno-format-nonliteral
+endif