diff --git a/newlib/libc/include/strings.h b/newlib/libc/include/strings.h
index 131d81d20..fdccfca30 100644
--- a/newlib/libc/include/strings.h
+++ b/newlib/libc/include/strings.h
@@ -9,12 +9,12 @@
 
 #include "_ansi.h"
 #include <sys/reent.h>
-
+#include <sys/cdefs.h>
 #include <sys/types.h> /* for size_t */
 
 _BEGIN_STD_C
 
-#if !defined __STRICT_ANSI__ && _POSIX_VERSION < 200809L
+#if __BSD_VISIBLE || (__POSIX_VISIBLE && __POSIX_VISIBLE < 200809)
 /* 
  * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004
  * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008
@@ -24,7 +24,7 @@ void	 _EXFUN(bcopy,(const void *, void *, size_t));
 void	 _EXFUN(bzero,(void *, size_t));
 char 	*_EXFUN(index,(const char *, int));
 char 	*_EXFUN(rindex,(const char *, int));
-#endif /* ! __STRICT_ANSI__ */
+#endif /* __BSD_VISIBLE || (__POSIX_VISIBLE && __POSIX_VISIBLE < 200809) */
 
 int	 _EXFUN(ffs,(int));
 int	 _EXFUN(strcasecmp,(const char *, const char *));