The _S_IFBLK macro, used to identify block special files in file systems, is
being updated from 0x3000 to 0x6000. This change aligns mingw-w64 with the more
commonly used value across Unix-like systems and other C libraries.

The old value of 0x3000 may have caused compatibility issues when working with
code that assumes the standard 0x6000 value for S_IFBLK.

This update improves cross-platform compatibility and consistency with other
systems, making it easier to write portable code that deals with file type
identification. It also reduces potential confusion and errors that might arise
from the non-standard value.

One of these is for example python. This is only an example. It does not change
the fact that python should be more careful about actual value implementation.

Note that the current value implies character device + FIFO instead of
character device + directory.

Link: 
https://github.com/python/cpython/blob/f81990024554a75e2ab31133a72d9f0954690435/Python/fileutils.c#L1197
Link: 
https://github.com/torvalds/linux/blob/81e4f8d68c66da301bb881862735bd74c6241a19/include/uapi/linux/stat.h#L13
Signed-off-by: Daniel Starke <daniel-em...@gmx.net>
---
 mingw-w64-headers/crt/sys/stat.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-headers/crt/sys/stat.h b/mingw-w64-headers/crt/sys/stat.h
index 5a85c2c483b5..06499bcb481f 100644
--- a/mingw-w64-headers/crt/sys/stat.h
+++ b/mingw-w64-headers/crt/sys/stat.h
@@ -130,7 +130,7 @@ extern "C" {
 #endif

 #ifndef        NO_OLDNAMES
-#define        _S_IFBLK        0x3000  /* Block: Is this ever set under w32? */
+#define        _S_IFBLK        0x6000  /* Block: Is this ever set under w32? */

 #define S_IFMT _S_IFMT
 #define S_IFDIR _S_IFDIR
--
2.39.5



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to