aboutsummaryrefslogtreecommitdiff
path: root/winsup/mingw
diff options
context:
space:
mode:
authorEarnie Boyd <earnie@users.sf.net>2005-01-11 13:34:42 +0000
committerEarnie Boyd <earnie@users.sf.net>2005-01-11 13:34:42 +0000
commitaa67a4484ee30a61d1d12da8209308ab691f6bba (patch)
tree7b16cc06d341f390ba100a9c76f93ae74b7527be /winsup/mingw
parent0e054317990c5823307803588823bfd16117680c (diff)
downloadnewlib-aa67a4484ee30a61d1d12da8209308ab691f6bba.zip
newlib-aa67a4484ee30a61d1d12da8209308ab691f6bba.tar.gz
newlib-aa67a4484ee30a61d1d12da8209308ab691f6bba.tar.bz2
* include/sys/stat.h (_S_IFLNK, S_IFLNK, _S_ISLNK, S_ISLNK, _lstat,
lstat): Conditionalize defines for __STRICT_ANSI__.
Diffstat (limited to 'winsup/mingw')
-rw-r--r--winsup/mingw/ChangeLog5
-rw-r--r--winsup/mingw/include/sys/stat.h20
2 files changed, 24 insertions, 1 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index a1d193e..e1cff4a 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-11 Earnie Boyd <earnie@users.sf.net>
+
+ * include/sys/stat.h (_S_IFLNK, S_IFLNK, _S_ISLNK, S_ISLNK, _lstat,
+ lstat): Conditionalize defines for __STRICT_ANSI__.
+
2005-01-10 Earnie Boyd <earnie@users.sf.net>
* include/errno.h (ELOOP): Add definition.
diff --git a/winsup/mingw/include/sys/stat.h b/winsup/mingw/include/sys/stat.h
index 0908b49..8220e80 100644
--- a/winsup/mingw/include/sys/stat.h
+++ b/winsup/mingw/include/sys/stat.h
@@ -26,7 +26,9 @@
/*
* Constants for the stat st_mode member.
*/
+#ifndef __STRICT_ANSI__
#define _S_IFLNK 0xF000 /* Pretend */
+#endif
#define _S_IFIFO 0x1000 /* FIFO */
#define _S_IFCHR 0x2000 /* Character */
#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
@@ -49,11 +51,15 @@
#define _S_ISCHR(m) (((m) & _S_IFMT) == _S_IFCHR)
#define _S_ISBLK(m) (((m) & _S_IFMT) == _S_IFBLK)
#define _S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
-#define _S_ISLNK(m) (((m) & _S_IFMT) == _S_IFLNK) /* Should always be zero.*/
+#ifndef __STRICT_ANSI__
+# define _S_ISLNK(m) (((m) & _S_IFMT) == _S_IFLNK) /* Should always be zero.*/
+#endif
#ifndef _NO_OLDNAMES
+#ifndef __STRICT_ANSI__
#define S_IFLNK _S_IFLNK
+#endif
#define S_IFIFO _S_IFIFO
#define S_IFCHR _S_IFCHR
#define S_IFBLK _S_IFBLK
@@ -73,7 +79,9 @@
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+#ifndef __STRICT_ANSI__
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* Should always be zero.*/
+#endif
#endif /* Not _NO_OLDNAMES */
@@ -159,7 +167,15 @@ extern "C" {
_CRTIMP int __cdecl _fstat (int, struct _stat*);
_CRTIMP int __cdecl _chmod (const char*, int);
_CRTIMP int __cdecl _stat (const char*, struct _stat*);
+/*
+ * FIXME: Should we use something MinGW specific such as __NO_POSIX_EMULATION__
+ * instead of __STRICT_ANSI__? I.E.: Do other things break because of -ansi
+ * being specified to the compiler? Of particular interest is the ACE/TAO
+ * project which the lstat define broke the build of.
+ */
+#ifndef __STRICT_ANSI__
#define _lstat _stat
+#endif
#ifndef _NO_OLDNAMES
@@ -167,7 +183,9 @@ _CRTIMP int __cdecl _stat (const char*, struct _stat*);
_CRTIMP int __cdecl fstat (int, struct stat*);
_CRTIMP int __cdecl chmod (const char*, int);
_CRTIMP int __cdecl stat (const char*, struct stat*);
+#ifndef __STRICT_ANSI__
#define lstat stat
+#endif
#endif /* Not _NO_OLDNAMES */