diff --git a/mongoose.c b/mongoose.c
index a3a620128408947de4ba58f0209739f179bc365e..c500d293320b1df5bb94bacf82d8999a3e4ba67a 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -9485,7 +9485,7 @@ int mg_match_prefix(const char *pattern, int pattern_len, const char *str) {
   return mg_match_prefix_n(pstr, mg_mk_str(str));
 }
 
-MG_INTERNAL int mg_get_errno(void) {
+DO_NOT_WARN_UNUSED MG_INTERNAL int mg_get_errno(void) {
 #ifndef WINCE
   return errno;
 #else
diff --git a/mongoose.h b/mongoose.h
index 0d829fc967a849659c13cf289d2e0a045504eb82..3bdfb0d234b86c0bfd87759d42558fd3a905e832 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -129,11 +129,13 @@
 #define NOINLINE __attribute__((noinline))
 #define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
 #define NOINSTR __attribute__((no_instrument_function))
+#define DO_NOT_WARN_UNUSED __attribute__((unused))
 #else
 #define NORETURN
 #define NOINLINE
 #define WARN_UNUSED_RESULT
 #define NOINSTR
+#define DO_NOT_WARN_UNUSED
 #endif /* __GNUC__ */
 
 #ifndef ARRAY_SIZE
@@ -883,6 +885,10 @@ typedef struct stat cs_stat_t;
 #include <stdint.h>
 #include <string.h>
 #include <time.h>
+#include <sys/stat.h>
+#include <stdio.h>
+
+typedef struct stat cs_stat_t;
 
 #ifndef CS_ENABLE_STDIO
 #define CS_ENABLE_STDIO 1