From f049607eb01e2ca1cb949f6ffa0ee5665e41fc22 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Fri, 18 Mar 2016 14:08:07 -0500 Subject: [PATCH] Feature test macros overhaul: sparc64 sparc64 has a number of its own headers which override the generic ones. These too need to use feature test macros properly. These changes correspond to the generic fcntl.h and sys/stat.h changes in commit d2df6d381b36f3f76420bc3bab965fbbdc3c3a8c and commit 069e400c913659432c5d1953c4fa9a696b06e340. Signed-off-by: Yaakov Selkowitz Acked-by: Corinna Vinschen --- newlib/libc/sys/sparc64/sys/fcntl.h | 24 ++++++++++++------------ newlib/libc/sys/sparc64/sys/stat.h | 7 ++++--- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/newlib/libc/sys/sparc64/sys/fcntl.h b/newlib/libc/sys/sparc64/sys/fcntl.h index 940649ac7..b52932b3f 100644 --- a/newlib/libc/sys/sparc64/sys/fcntl.h +++ b/newlib/libc/sys/sparc64/sys/fcntl.h @@ -12,6 +12,7 @@ extern "C" { #endif #include <_ansi.h> +#include #define _FOPEN (-1) /* from sys/file.h, kernel use only */ #define _FREAD 0x0001 /* read enabled */ @@ -58,11 +59,10 @@ extern "C" { /* O_NDELAY _FNBIO set in 5include/fcntl.h */ #define O_NONBLOCK _FNONBLOCK #define O_NOCTTY _FNOCTTY - -#ifndef _POSIX_SOURCE - #define O_SYNC _FSYNC +#if __MISC_VISIBLE + /* * Flags that work for fcntl(fd, F_SETFL, FXXXX) */ @@ -93,7 +93,7 @@ extern "C" { #define FEXCL _FEXCL #define FNOCTTY _FNOCTTY -#endif !_POSIX_SOURCE +#endif /* __MISC_VISIBLE */ /* XXX close on exec request; must match UF_EXCLOSE in user.h */ #define FD_CLOEXEC 1 /* posix */ @@ -104,7 +104,7 @@ extern "C" { #define F_SETFD 2 /* Set fildes flags (close on exec) */ #define F_GETFL 3 /* Get file flags */ #define F_SETFL 4 /* Set file flags */ -#ifndef _POSIX_SOURCE +#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 #ifdef __svr4__ #define F_GETOWN 23 /* Get owner - for ASYNC */ #define F_SETOWN 24 /* Set owner - for ASYNC */ @@ -112,7 +112,7 @@ extern "C" { #define F_GETOWN 5 /* Get owner - for ASYNC */ #define F_SETOWN 6 /* Set owner - for ASYNC */ #endif -#endif /* !_POSIX_SOURCE */ +#endif /* __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 */ #ifdef __svr4__ #define F_GETLK 14 /* Get record-locking information */ #define F_SETLK 6 /* Set or Clear a record-lock (Non-Blocking) */ @@ -122,20 +122,20 @@ extern "C" { #define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ #define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ #endif -#ifndef _POSIX_SOURCE +#if __MISC_VISIBLE #define F_RGETLK 10 /* Test a remote lock to see if it is blocked */ #define F_RSETLK 11 /* Set or unlock a remote lock */ #define F_CNVT 12 /* Convert a fhandle to an open fd */ #define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */ -#endif /* !_POSIX_SOURCE */ +#endif /* __MISC_VISIBLE */ /* fcntl(2) flags (l_type field of flock structure) */ #define F_RDLCK 1 /* read lock */ #define F_WRLCK 2 /* write lock */ #define F_UNLCK 3 /* remove lock(s) */ -#ifndef _POSIX_SOURCE +#if __MISC_VISIBLE #define F_UNLKSYS 4 /* remove remote locks for a given system */ -#endif /* !_POSIX_SOURCE */ +#endif /* __MISC_VISIBLE */ /*#include */ @@ -149,7 +149,7 @@ struct flock { short l_xxx; /* reserved for future use */ }; -#ifndef _POSIX_SOURCE +#if __MISC_VISIBLE /* extended file segment locking set data type */ struct eflock { short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ @@ -161,7 +161,7 @@ struct eflock { long l_rpid; /* Remote process id wanting this lock */ long l_rsys; /* Remote system id wanting this lock */ }; -#endif /* !_POSIX_SOURCE */ +#endif /* __MISC_VISIBLE */ #include diff --git a/newlib/libc/sys/sparc64/sys/stat.h b/newlib/libc/sys/sparc64/sys/stat.h index 26ed53f59..746406737 100644 --- a/newlib/libc/sys/sparc64/sys/stat.h +++ b/newlib/libc/sys/sparc64/sys/stat.h @@ -78,14 +78,15 @@ struct stat #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ -#ifndef _POSIX_SOURCE #define S_ISVTX 0001000 /* save swapped text even after use */ +#if __BSD_VISIBLE #define S_IREAD 0000400 /* read permission, owner */ #define S_IWRITE 0000200 /* write permission, owner */ #define S_IEXEC 0000100 /* execute/search permission, owner */ - #define S_ENFMT 0002000 /* enforcement-mode locking */ +#endif /* __BSD_VISIBLE */ +#if __POSIX_VISIBLE >= 200112 #define S_IFMT _IFMT #define S_IFDIR _IFDIR #define S_IFCHR _IFCHR @@ -94,7 +95,7 @@ struct stat #define S_IFLNK _IFLNK #define S_IFSOCK _IFSOCK #define S_IFIFO _IFIFO -#endif /* !_POSIX_SOURCE */ +#endif /* __POSIX_VISIBLE >= 200112 */ #define S_IRWXU 0000700 /* rwx, owner */