OSDN Git Service

Preserve kludge to evade GCC build failure on S_ISBLK misuse.
[mingw/mingw-org-wsl.git] / mingwrt / include / sys / stat.h
index fb84d90..f81bfb4 100644 (file)
 
 #ifndef _S_IFBLK
 /* When the _S_IFBLK kludge is NOT enabled, (as it ideally should not be),
- * ensure that any attempt to use its dependent macros is firmly denied.
+ * ensure that any attempt to use its dependent macros is denied...
  */
 # pragma GCC poison _S_ISBLK
-# pragma GCC poison S_ISBLK
 
+# if defined _NO_UNSUPPORTED || defined _NO_OLDNAMES
+  /* ...including that for the standard POSIX macro, when unsupported
+   * features, or Microsoft's old names, are explicitly forbidden...
+   */
+#  pragma GCC poison S_ISBLK
+
+# else /* !(_NO_UNSUPPORTED || _NO_OLDNAMES) */
+  /* ...otherwise assume that the kludge is automatically enabled with
+   * respect to S_ISBLK, (because GCC gratuitously misuses it).
+   */
+#  define S_IFBLK      0x3001  /* Block: unsupported on Win32 */
+
+# endif /* !(_NO_UNSUPPORTED || _NO_OLDNAMES) */
 #endif /* !_S_IFBLK */
 #endif /* !__WCHAR_H_SOURCED__ */