diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h index 56ad5ab..54843ea 100644 --- a/newlib/libc/include/ctype.h +++ b/newlib/libc/include/ctype.h @@ -2,6 +2,7 @@ #define _CTYPE_H_ #include "_ansi.h" +#include _BEGIN_STD_C @@ -19,11 +20,11 @@ int _EXFUN(isxdigit,(int __c)); int _EXFUN(tolower, (int __c)); int _EXFUN(toupper, (int __c)); -#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L +#if __ISOC99_VISIBLE int _EXFUN(isblank, (int __c)); #endif -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE || __XOPEN_VISIBLE int _EXFUN(isascii, (int __c)); int _EXFUN(toascii, (int __c)); #define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a') @@ -68,8 +69,7 @@ extern __IMPORT char *__ctype_ptr__; #define isgraph(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N)) #define iscntrl(__c) (__ctype_lookup(__c)&_C) -#if defined(__GNUC__) && \ - (!defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L) +#if defined(__GNUC__) && __ISOC99_VISIBLE #define isblank(__c) \ __extension__ ({ __typeof__ (__c) __x = (__c); \ (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';}) @@ -98,13 +98,14 @@ extern __IMPORT char *__ctype_ptr__; (void) __ctype_ptr__[__x]; (tolower) (__x);}) # endif /* _MB_EXTENDED_CHARSETS* */ # endif /* __GNUC__ */ -#endif /* !__cplusplus */ -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE || __XOPEN_VISIBLE #define isascii(__c) ((unsigned)(__c)<=0177) #define toascii(__c) ((__c)&0177) #endif +#endif /* !__cplusplus */ + /* For C++ backward-compatibility only. */ extern __IMPORT _CONST char _ctype_[]; diff --git a/newlib/libc/include/dirent.h b/newlib/libc/include/dirent.h index 6fefc03..6135b9f 100644 --- a/newlib/libc/include/dirent.h +++ b/newlib/libc/include/dirent.h @@ -3,9 +3,10 @@ #ifdef __cplusplus extern "C" { #endif +#include #include -#if !defined(MAXNAMLEN) && !defined(_POSIX_SOURCE) +#if !defined(MAXNAMLEN) && __BSD_VISIBLE #define MAXNAMLEN 1024 #endif diff --git a/newlib/libc/include/fnmatch.h b/newlib/libc/include/fnmatch.h index 06311fc..a94e923 100644 --- a/newlib/libc/include/fnmatch.h +++ b/newlib/libc/include/fnmatch.h @@ -33,21 +33,21 @@ #ifndef _FNMATCH_H_ #define _FNMATCH_H_ +#include + #define FNM_NOMATCH 1 /* Match failed. */ #define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ #define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ #define FNM_PERIOD 0x04 /* Period must be matched by period. */ -#if defined(_GNU_SOURCE) || !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#if __GNU_VISIBLE #define FNM_LEADING_DIR 0x08 /* Ignore / after Imatch. */ #define FNM_CASEFOLD 0x10 /* Case insensitive search. */ #define FNM_IGNORECASE FNM_CASEFOLD #define FNM_FILE_NAME FNM_PATHNAME #endif -#include - __BEGIN_DECLS int fnmatch(const char *, const char *, int); __END_DECLS diff --git a/newlib/libc/include/grp.h b/newlib/libc/include/grp.h index ee75d3f..8971400 100644 --- a/newlib/libc/include/grp.h +++ b/newlib/libc/include/grp.h @@ -49,7 +49,7 @@ #include #endif -#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) +#if __BSD_VISIBLE #define _PATH_GROUP "/etc/group" #endif @@ -67,15 +67,17 @@ extern "C" { #ifndef __INSIDE_CYGWIN__ struct group *getgrgid (gid_t); struct group *getgrnam (const char *); +#if __MISC_VISIBLE || __POSIX_VISIBLE int getgrnam_r (const char *, struct group *, char *, size_t, struct group **); int getgrgid_r (gid_t, struct group *, char *, size_t, struct group **); -#if __BSD_VISIBLE || __XSI_VISIBLE >= 500 +#endif /* __MISC_VISIBLE || __POSIX_VISIBLE */ +#if __MISC_VISIBLE || __XOPEN2_VISIBLE struct group *getgrent (void); void setgrent (void); void endgrent (void); -#endif /* __BSD_VISIBLE || __XSI_VISIBLE >= 500 */ +#endif /* __MISC_VISIBLE || __XOPEN2_VISIBLE */ #if __BSD_VISIBLE int initgroups (const char *, gid_t); #endif /* __BSD_VISIBLE */ diff --git a/newlib/libc/include/limits.h b/newlib/libc/include/limits.h index 190f1f7..f601fea 100644 --- a/newlib/libc/include/limits.h +++ b/newlib/libc/include/limits.h @@ -2,6 +2,7 @@ # define _LIBC_LIMITS_H_ 1 #include +#include # ifdef _MB_LEN_MAX # define MB_LEN_MAX _MB_LEN_MAX @@ -96,8 +97,7 @@ # define __LONG_LONG_MAX__ 9223372036854775807LL # endif -# if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +# if __ISOC99_VISIBLE /* Minimum and maximum values a `signed long long int' can hold. */ # undef LLONG_MIN # define LLONG_MIN (-LLONG_MAX-1) @@ -109,7 +109,7 @@ # define ULLONG_MAX (LLONG_MAX * 2ULL + 1) # endif -# if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) +# if __GNU_VISIBLE /* Minimum and maximum values a `signed long long int' can hold. */ # undef LONG_LONG_MIN # define LONG_LONG_MIN (-LONG_LONG_MAX-1) diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h index 3f6766a..27972ad 100644 --- a/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h @@ -3,6 +3,7 @@ #define _MATH_H_ #include +#include #include #include "_ansi.h" @@ -136,9 +137,7 @@ extern double fmod _PARAMS((double, double)); #endif /* ! defined (__math_68881) */ #endif /* ! defined (_REENT_ONLY) */ -#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) - +#if __ISOC99_VISIBLE /* ISO C99 types and macros. */ /* FIXME: FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard, @@ -468,35 +467,39 @@ extern long long int llrintl _PARAMS((_LONG_DOUBLE)); #endif /* __i386__ */ #endif /* !_LDBL_EQ_DBL */ -#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) */ - -#if !defined (__STRICT_ANSI__) || defined(__cplusplus) +#endif /* __ISOC99_VISIBLE */ +#if __MISC_VISIBLE extern double drem _PARAMS((double, double)); -extern void sincos _PARAMS((double, double *, double *)); +extern float dremf _PARAMS((float, float)); extern double gamma_r _PARAMS((double, int *)); extern double lgamma_r _PARAMS((double, int *)); +extern float gammaf_r _PARAMS((float, int *)); +extern float lgammaf_r _PARAMS((float, int *)); +#endif +#if __MISC_VISIBLE || __XOPEN_VISIBLE extern double y0 _PARAMS((double)); extern double y1 _PARAMS((double)); extern double yn _PARAMS((int, double)); extern double j0 _PARAMS((double)); extern double j1 _PARAMS((double)); extern double jn _PARAMS((int, double)); +#endif -extern float dremf _PARAMS((float, float)); -extern void sincosf _PARAMS((float, float *, float *)); -extern float gammaf_r _PARAMS((float, int *)); -extern float lgammaf_r _PARAMS((float, int *)); - +#if __MISC_VISIBLE || __XOPEN6_VISIBLE extern float y0f _PARAMS((float)); extern float y1f _PARAMS((float)); extern float ynf _PARAMS((int, float)); extern float j0f _PARAMS((float)); extern float j1f _PARAMS((float)); extern float jnf _PARAMS((int, float)); +#endif /* GNU extensions */ +#if __GNU_VISIBLE +extern void sincos _PARAMS((double, double *, double *)); +extern void sincosf _PARAMS((float, float *, float *)); # ifndef exp10 extern double exp10 _PARAMS((double)); # endif @@ -509,11 +512,9 @@ extern float exp10f _PARAMS((float)); # ifndef pow10f extern float pow10f _PARAMS((float)); # endif +#endif /* __GNU_VISIBLE */ -#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */ - -#ifndef __STRICT_ANSI__ - +#if __MISC_VISIBLE || __XOPEN_VISIBLE /* The gamma functions use a global variable, signgam. */ #ifndef _REENT_ONLY #define signgam (*__signgam()) @@ -521,7 +522,9 @@ extern int *__signgam _PARAMS((void)); #endif /* ! defined (_REENT_ONLY) */ #define __signgam_r(ptr) _REENT_SIGNGAM(ptr) +#endif /* __MISC_VISIBLE || __XOPEN_VISIBLE */ +#if __SVID_VISIBLE /* The exception structure passed to the matherr routine. */ /* We have a problem when using C++ since `exception' is a reserved name in C++. */ @@ -554,11 +557,11 @@ extern int matherr _PARAMS((struct exception *e)); #define TLOSS 5 #define PLOSS 6 -#endif /* ! defined (__STRICT_ANSI__) */ +#endif /* __SVID_VISIBLE */ /* Useful constants. */ -#if !defined(__STRICT_ANSI__) || ((_XOPEN_SOURCE - 0) >= 500) +#if __BSD_VISIBLE || __XOPEN5_VISIBLE #define MAXFLOAT 3.40282347e+38F @@ -578,7 +581,7 @@ extern int matherr _PARAMS((struct exception *e)); #endif -#ifndef __STRICT_ANSI__ +#if __BSD_VISIBLE #define M_TWOPI (M_PI * 2.0) #define M_3PI_4 2.3561944901923448370E0 @@ -610,7 +613,7 @@ extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION; #define _XOPEN_ __fdlibm_xopen #define _POSIX_ __fdlibm_posix -#endif /* ! defined (__STRICT_ANSI__) */ +#endif /* __BSD_VISIBLE */ _END_STD_C diff --git a/newlib/libc/include/pthread.h b/newlib/libc/include/pthread.h index 907970f..d30bfc7 100644 --- a/newlib/libc/include/pthread.h +++ b/newlib/libc/include/pthread.h @@ -329,7 +329,7 @@ void _EXFUN(_pthread_cleanup_pop, _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \ } while (0) -#if defined(_GNU_SOURCE) +#if __GNU_VISIBLE void _EXFUN(_pthread_cleanup_push_defer, (struct _pthread_cleanup_context *_context, void (*_routine)(void *), void *_arg)); @@ -347,7 +347,7 @@ void _EXFUN(_pthread_cleanup_pop_restore, #define pthread_cleanup_pop_restore_np(_execute) \ _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \ } while (0) -#endif /* defined(_GNU_SOURCE) */ +#endif /* __GNU_VISIBLE */ #if defined(_POSIX_THREAD_CPUTIME) diff --git a/newlib/libc/include/pwd.h b/newlib/libc/include/pwd.h index 3dea4ee..727c60c 100644 --- a/newlib/libc/include/pwd.h +++ b/newlib/libc/include/pwd.h @@ -63,14 +63,14 @@ struct passwd { struct passwd *getpwuid (uid_t); struct passwd *getpwnam (const char *); -#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 +#if __POSIX2001_VISIBLE int getpwnam_r (const char *, struct passwd *, char *, size_t , struct passwd **); int getpwuid_r (uid_t, struct passwd *, char *, size_t, struct passwd **); #endif -#if __XSI_VISIBLE >= 500 +#if __XOPEN5_VISIBLE struct passwd *getpwent (void); void setpwent (void); void endpwent (void); diff --git a/newlib/libc/include/signal.h b/newlib/libc/include/signal.h index 8c50a2e..0324ae7 100644 --- a/newlib/libc/include/signal.h +++ b/newlib/libc/include/signal.h @@ -2,15 +2,18 @@ #define _SIGNAL_H_ #include "_ansi.h" +#include #include _BEGIN_STD_C typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ -#ifndef _POSIX_SOURCE +#if __BSD_VISIBLE typedef _sig_func_ptr sig_t; /* BSD naming */ +#endif +#if __GNU_VISIBLE typedef _sig_func_ptr sighandler_t; /* glibc naming */ -#endif /* !_POSIX_SOURCE */ +#endif #define SIG_DFL ((_sig_func_ptr)0) /* Default action */ #define SIG_IGN ((_sig_func_ptr)1) /* Ignore action */ diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h index 9d8fd86..5fed1a2 100644 --- a/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h @@ -128,7 +128,7 @@ typedef _fpos64_t fpos64_t; #define L_tmpnam FILENAME_MAX #endif -#ifndef __STRICT_ANSI__ +#if __BSD_VISIBLE #define P_tmpdir "/tmp" #endif @@ -166,7 +166,7 @@ typedef _fpos64_t fpos64_t; FILE * _EXFUN(tmpfile, (void)); char * _EXFUN(tmpnam, (char *)); -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +#if __BSD_VISIBLE || __POSIX2001_VISIBLE char * _EXFUN(tempnam, (const char *, const char *)); #endif int _EXFUN(fclose, (FILE *)); @@ -230,7 +230,7 @@ int _EXFUN(rename, (const char *, const char *)); int _EXFUN(_rename, (const char *, const char *)); #endif #endif -#if !defined(__STRICT_ANSI__) || defined(__USE_XOPEN2K) +#if __LARGEFILE_VISIBLE #ifdef _COMPILING_NEWLIB int _EXFUN(fseeko, (FILE *, _off_t, int)); _off_t _EXFUN(ftello, ( FILE *)); @@ -242,16 +242,32 @@ off_t _EXFUN(ftello, ( FILE *)); #if __GNU_VISIBLE int _EXFUN(fcloseall, (_VOID)); #endif -#if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 201103L) #ifndef _REENT_ONLY +#if __ISOC99_VISIBLE +int _EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); +int _EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); +int _EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); +int _EXFUN(vscanf, (const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); +int _EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); +#endif +#if __GNU_VISIBLE +int _EXFUN(asprintf, (char **__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); +int _EXFUN(vasprintf, (char **, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); +#endif +#if __MISC_VISIBLE /* Newlib-specific */ int _EXFUN(asiprintf, (char **, const char *, ...) _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); char * _EXFUN(asniprintf, (char *, size_t *, const char *, ...) _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); char * _EXFUN(asnprintf, (char *__restrict, size_t *__restrict, const char *__restrict, ...) _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(asprintf, (char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); #ifndef diprintf int _EXFUN(diprintf, (int, const char *, ...) _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); @@ -268,8 +284,6 @@ int _EXFUN(siprintf, (char *, const char *, ...) _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); int _EXFUN(siscanf, (const char *, const char *, ...) _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); int _EXFUN(sniprintf, (char *, size_t, const char *, ...) _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); int _EXFUN(vasiprintf, (char **, const char *, __VALIST) @@ -278,50 +292,48 @@ char * _EXFUN(vasniprintf, (char *, size_t *, const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); char * _EXFUN(vasnprintf, (char *, size_t *, const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vasprintf, (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); int _EXFUN(vdiprintf, (int, const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); int _EXFUN(vfiprintf, (FILE *, const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); int _EXFUN(vfiscanf, (FILE *, const char *, __VALIST) _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); int _EXFUN(viprintf, (const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 1, 0)))); int _EXFUN(viscanf, (const char *, __VALIST) _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); -int _EXFUN(vscanf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); int _EXFUN(vsiprintf, (char *, const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); int _EXFUN(vsiscanf, (const char *, const char *, __VALIST) _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); int _EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); +#endif /* __MISC_VISIBLE */ #endif /* !_REENT_ONLY */ -#endif /* !__STRICT_ANSI__ */ /* * Routines in POSIX 1003.1:2001. */ -#ifndef __STRICT_ANSI__ +#if __POSIX_VISIBLE #ifndef _REENT_ONLY FILE * _EXFUN(fdopen, (int, const char *)); #endif int _EXFUN(fileno, (FILE *)); +#endif +#if __MISC_VISIBLE || (__XOPEN_VISIBLE && !__POSIX2001_VISIBLE) int _EXFUN(getw, (FILE *)); +int _EXFUN(putw, (int, FILE *)); +#endif +#if __MISC_VISIBLE || __POSIX2_VISIBLE int _EXFUN(pclose, (FILE *)); FILE * _EXFUN(popen, (const char *, const char *)); -int _EXFUN(putw, (int, FILE *)); +#endif +#if __BSD_VISIBLE void _EXFUN(setbuffer, (FILE *, char *, int)); int _EXFUN(setlinebuf, (FILE *)); +#endif +#if __MISC_VISIBLE || __POSIX_VISIBLE int _EXFUN(getc_unlocked, (FILE *)); int _EXFUN(getchar_unlocked, (void)); void _EXFUN(flockfile, (FILE *)); @@ -329,13 +341,13 @@ int _EXFUN(ftrylockfile, (FILE *)); void _EXFUN(funlockfile, (FILE *)); int _EXFUN(putc_unlocked, (int, FILE *)); int _EXFUN(putchar_unlocked, (int)); -#endif /* ! __STRICT_ANSI__ */ +#endif /* __MISC_VISIBLE || __POSIX_VISIBLE */ /* * Routines in POSIX 1003.1:200x. */ -#ifndef __STRICT_ANSI__ +#if __POSIX2008_VISIBLE # ifndef _REENT_ONLY # ifndef dprintf int _EXFUN(dprintf, (int, const char *__restrict, ...) @@ -345,13 +357,13 @@ FILE * _EXFUN(fmemopen, (void *__restrict, size_t, const char *__restrict)); /* getdelim - see __getdelim for now */ /* getline - see __getline for now */ FILE * _EXFUN(open_memstream, (char **, size_t *)); -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -int _EXFUN(renameat, (int, const char *, int, const char *)); -#endif int _EXFUN(vdprintf, (int, const char *__restrict, __VALIST) _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); # endif #endif +#if __ATFILE_VISIBLE +int _EXFUN(renameat, (int, const char *, int, const char *)); +#endif /* * Recursive versions of the above. @@ -495,7 +507,7 @@ int _EXFUN(fpurge, (FILE *)); ssize_t _EXFUN(__getdelim, (char **, size_t *, int, FILE *)); ssize_t _EXFUN(__getline, (char **, size_t *, FILE *)); -#if __BSD_VISIBLE +#if __MISC_VISIBLE void _EXFUN(clearerr_unlocked, (FILE *)); int _EXFUN(feof_unlocked, (FILE *)); int _EXFUN(ferror_unlocked, (FILE *)); @@ -545,7 +557,7 @@ int _EXFUN(__swbuf_r, (struct _reent *, int, FILE *)); * Stdio function-access interface. */ -#ifndef __STRICT_ANSI__ +#if __BSD_VISIBLE # ifdef __LARGE64_FILES FILE *_EXFUN(funopen,(const _PTR __cookie, int (*__readfn)(_PTR __c, char *__buf, @@ -582,7 +594,9 @@ FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie, (fpos_t (*)())0, (int (*)())0) # define fwopen(__cookie, __fn) funopen(__cookie, (int (*)())0, __fn, \ (fpos_t (*)())0, (int (*)())0) +#endif /* __BSD_VISIBLE */ +#if __GNU_VISIBLE typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n); typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf, size_t __n); @@ -606,7 +620,7 @@ FILE *_EXFUN(fopencookie,(void *__cookie, const char *__mode, cookie_io_functions_t __functions)); FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie, const char *__mode, cookie_io_functions_t __functions)); -#endif /* ! __STRICT_ANSI__ */ +#endif /* __GNU_VISIBLE */ #ifndef __CUSTOM_FILE_IO__ /* @@ -686,14 +700,14 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define ferror(p) __sferror(p) #define clearerr(p) __sclearerr(p) -#if __BSD_VISIBLE +#if __MISC_VISIBLE #define feof_unlocked(p) __sfeof(p) #define ferror_unlocked(p) __sferror(p) #define clearerr_unlocked(p) __sclearerr(p) -#endif /* __BSD_VISIBLE */ +#endif /* __MISC_VISIBLE */ #endif /* _REENT_SMALL */ -#if 0 /*ndef __STRICT_ANSI__ - FIXME: must initialize stdio first, use fn */ +#if 0 /* __POSIX_VISIBLE - FIXME: must initialize stdio first, use fn */ #define fileno(p) __sfileno(p) #endif @@ -704,11 +718,13 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #endif /* lint */ #endif /* __CYGWIN__ */ -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE /* fast always-buffered version, true iff error */ #define fast_putc(x,p) (--(p)->_w < 0 ? \ __swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0)) +#endif +#if __XOPEN_VISIBLE #define L_cuserid 9 /* posix says it goes in stdio.h :( */ #ifdef __CYGWIN__ #define L_ctermid 16 @@ -720,7 +736,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define getchar() getc(stdin) #define putchar(x) putc(x, stdout) -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE || __POSIX_VISIBLE #define getchar_unlocked() getc_unlocked(stdin) #define putchar_unlocked(x) putc_unlocked(x, stdout) #endif diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h index fd6315b..eb6e898 100644 --- a/newlib/libc/include/stdlib.h +++ b/newlib/libc/include/stdlib.h @@ -40,9 +40,7 @@ typedef struct long rem; /* remainder */ } ldiv_t; -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#if __ISOC99_VISIBLE typedef struct { long long int quot; /* quotient */ @@ -68,7 +66,7 @@ _VOID _EXFUN(abort,(_VOID) _ATTRIBUTE ((__noreturn__))); int _EXFUN(abs,(int)); int _EXFUN(atexit,(_VOID (*__func)(_VOID))); double _EXFUN(atof,(const char *__nptr)); -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE float _EXFUN(atoff,(const char *__nptr)); #endif int _EXFUN(atoi,(const char *__nptr)); @@ -88,7 +86,7 @@ char * _EXFUN(getenv,(const char *__string)); char * _EXFUN(_getenv_r,(struct _reent *, const char *__string)); char * _EXFUN(_findenv,(_CONST char *, int *)); char * _EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *)); -#ifndef __STRICT_ANSI__ +#if __POSIX2008_VISIBLE extern char *suboptarg; /* getsubopt(3) external variable */ int _EXFUN(getsubopt,(char **, char * const *, char **)); #endif @@ -105,41 +103,52 @@ size_t _EXFUN(mbstowcs,(wchar_t *__restrict, const char *__restrict, size_t)); size_t _EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *)); size_t _EXFUN(wcstombs,(char *__restrict, const wchar_t *__restrict, size_t)); size_t _EXFUN(_wcstombs_r,(struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *)); -#ifndef __STRICT_ANSI__ #ifndef _REENT_ONLY +#if __BSD_VISIBLE || __POSIX2008_VISIBLE char * _EXFUN(mkdtemp,(char *)); +#endif +#if __GNU_VISIBLE int _EXFUN(mkostemp,(char *, int)); int _EXFUN(mkostemps,(char *, int, int)); +#endif +#if __MISC_VISIBLE || __POSIX2001_VISIBLE || __XOPEN2_VISIBLE int _EXFUN(mkstemp,(char *)); +#endif +#if __MISC_VISIBLE int _EXFUN(mkstemps,(char *, int)); +#endif +#if __BSD_VISIBLE || (__XOPEN2_VISIBLE && !__POSIX2001_VISIBLE) char * _EXFUN(mktemp,(char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead")))); #endif +#endif /* !_REENT_ONLY */ char * _EXFUN(_mkdtemp_r, (struct _reent *, char *)); int _EXFUN(_mkostemp_r, (struct _reent *, char *, int)); int _EXFUN(_mkostemps_r, (struct _reent *, char *, int, int)); int _EXFUN(_mkstemp_r, (struct _reent *, char *)); int _EXFUN(_mkstemps_r, (struct _reent *, char *, int)); char * _EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead")))); -#endif _VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar)); int _EXFUN(rand,(_VOID)); _PTR _EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size)); -#ifndef __STRICT_ANSI__ +#if __BSD_VISIBLE _PTR _EXFUN(reallocf,(_PTR __r, size_t __size)); +_PTR _EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t)); +#endif +#if __BSD_VISIBLE || __XOPEN2_VISIBLE char * _EXFUN(realpath, (const char *__restrict path, char *__restrict resolved_path)); +#endif +#if __BSD_VISIBLE int _EXFUN(rpmatch, (const char *response)); #endif _VOID _EXFUN(srand,(unsigned __seed)); double _EXFUN(strtod,(const char *__restrict __n, char **__restrict __end_PTR)); double _EXFUN(_strtod_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR)); -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#if __ISOC99_VISIBLE float _EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR)); #endif -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE /* the following strtodf interface is deprecated...use strtof instead */ -# ifndef strtodf +# ifndef strtodf # define strtodf strtof # endif #endif @@ -150,24 +159,27 @@ unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *__restrict __n, cha int _EXFUN(system,(const char *__string)); -#ifndef __STRICT_ANSI__ +#if __SVID_VISIBLE || __XOPEN2_VISIBLE long _EXFUN(a64l,(const char *__input)); char * _EXFUN(l64a,(long __input)); char * _EXFUN(_l64a_r,(struct _reent *,long __input)); +#endif +#if __MISC_VISIBLE int _EXFUN(on_exit,(_VOID (*__func)(int, _PTR),_PTR __arg)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#endif +#if __ISOC99_VISIBLE _VOID _EXFUN(_Exit,(int __status) _ATTRIBUTE ((__noreturn__))); #endif -#ifndef __STRICT_ANSI__ +#if __SVID_VISIBLE || __XOPEN_VISIBLE int _EXFUN(putenv,(char *__string)); int _EXFUN(_putenv_r,(struct _reent *, char *__string)); -_PTR _EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t)); +#endif +#if __BSD_VISIBLE || __POSIX2001_VISIBLE int _EXFUN(setenv,(const char *__string, const char *__value, int __overwrite)); int _EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite)); +#endif +#if __XOPEN2_VISIBLE && !__POSIX2001_VISIBLE char * _EXFUN(gcvt,(double,int,char *)); char * _EXFUN(gcvtf,(float,int,char *)); char * _EXFUN(fcvt,(double,int,int *,int *)); @@ -176,15 +188,19 @@ char * _EXFUN(ecvt,(double,int,int *,int *)); char * _EXFUN(ecvtbuf,(double, int, int*, int*, char *)); char * _EXFUN(fcvtbuf,(double, int, int*, int*, char *)); char * _EXFUN(ecvtf,(float,int,int *,int *)); -char * _EXFUN(dtoa,(double, int, int, int *, int*, char**)); #endif char * _EXFUN(__itoa,(int, char *, int)); char * _EXFUN(__utoa,(unsigned, char *, int)); -#ifndef __STRICT_ANSI__ +#if __MISC_VISIBLE +char * _EXFUN(dtoa,(double, int, int, int *, int*, char**)); char * _EXFUN(itoa,(int, char *, int)); char * _EXFUN(utoa,(unsigned, char *, int)); +#endif +#if __POSIX_VISIBLE int _EXFUN(rand_r,(unsigned *__seed)); +#endif +#if __SVID_VISIBLE || __XOPEN_VISIBLE double _EXFUN(drand48,(_VOID)); double _EXFUN(_drand48_r,(struct _reent *)); double _EXFUN(erand48,(unsigned short [3])); @@ -205,44 +221,37 @@ unsigned short * _EXFUN(_seed48_r,(struct _reent *, unsigned short [3])); _VOID _EXFUN(srand48,(long)); _VOID _EXFUN(_srand48_r,(struct _reent *, long)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#endif /* __SVID_VISIBLE || __XOPEN_VISIBLE */ +#if __ISOC99_VISIBLE long long _EXFUN(atoll,(const char *__nptr)); #endif -#ifndef __STRICT_ANSI__ long long _EXFUN(_atoll_r,(struct _reent *, const char *__nptr)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#if __ISOC99_VISIBLE long long _EXFUN(llabs,(long long)); lldiv_t _EXFUN(lldiv,(long long __numer, long long __denom)); long long _EXFUN(strtoll,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); #endif -#ifndef __STRICT_ANSI__ long long _EXFUN(_strtoll_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#if __ISOC99_VISIBLE unsigned long long _EXFUN(strtoull,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); #endif -#ifndef __STRICT_ANSI__ unsigned long long _EXFUN(_strtoull_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base)); #ifndef __CYGWIN__ +#if __MISC_VISIBLE _VOID _EXFUN(cfree,(_PTR)); +#endif +#if __BSD_VISIBLE || __POSIX2001_VISIBLE int _EXFUN(unsetenv,(const char *__string)); int _EXFUN(_unsetenv_r,(struct _reent *, const char *__string)); #endif +#endif /* !__CYGWIN__ */ #ifdef __rtems__ +#if __POSIX2001_VISIBLE int _EXFUN(posix_memalign,(void **, size_t, size_t)); #endif - -#endif /* ! __STRICT_ANSI__ */ +#endif char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**)); #ifndef __CYGWIN__ @@ -260,7 +269,9 @@ _VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *)) _BSD_SOURCE, you get the BSD version; otherwise you get the GNU version. We want that #undef qsort_r will still let you invoke the underlying function, but that requires gcc support. */ -#ifdef _BSD_SOURCE +#if __GNU_VISIBLE +_VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk)); +#elif __BSD_VISIBLE # ifdef __GNUC__ _VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR))) __asm__ (__ASMNAME ("__bsd_qsort_r")); @@ -268,16 +279,12 @@ _VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, _VOID _EXFUN(__bsd_qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR))); # define qsort_r __bsd_qsort_r # endif -#elif __GNU_VISIBLE -_VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk)); #endif /* On platforms where long double equals double. */ #ifdef _HAVE_LONG_DOUBLE extern long double _strtold_r (struct _reent *, const char *__restrict, char **__restrict); -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) +#if __ISOC99_VISIBLE extern long double strtold (const char *__restrict, char **__restrict); #endif #endif /* _HAVE_LONG_DOUBLE */ @@ -285,13 +292,13 @@ extern long double strtold (const char *__restrict, char **__restrict); /* * If we're in a mode greater than C99, expose C11 functions. */ -#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L +#if __ISOC11_VISIBLE void * aligned_alloc(size_t, size_t) __malloc_like __alloc_align(1) __alloc_size(2); int at_quick_exit(void (*)(void)); _Noreturn void quick_exit(int); -#endif /* __ISO_C_VISIBLE >= 2011 */ +#endif /* __ISOC11_VISIBLE */ _END_STD_C diff --git a/newlib/libc/include/string.h b/newlib/libc/include/string.h index 84dd6b0..b2de8ea 100644 --- a/newlib/libc/include/string.h +++ b/newlib/libc/include/string.h @@ -43,28 +43,30 @@ char *_EXFUN(strtok,(char *__restrict, const char *__restrict)); #endif size_t _EXFUN(strxfrm,(char *__restrict, const char *__restrict, size_t)); -#if __POSIX_VISIBLE +#if __MISC_VISIBLE || __POSIX_VISIBLE char *_EXFUN(strtok_r,(char *__restrict, const char *__restrict, char **__restrict)); #endif -#if __BSD_VISIBLE +#if __BSD_VISIBLE || (__POSIX_VISIBLE && !__POSIX2008_VISIBLE) int _EXFUN(bcmp,(const void *, const void *, size_t)); void _EXFUN(bcopy,(const void *, void *, size_t)); void _EXFUN(bzero,(void *, size_t)); +#endif +#if __MISC_VISIBLE || __POSIX2008_VISIBLE int _EXFUN(ffs,(int)); +#endif +#if __BSD_VISIBLE || (__POSIX_VISIBLE && !__POSIX2008_VISIBLE) char *_EXFUN(index,(const char *, int)); #endif -#if __BSD_VISIBLE || __XSI_VISIBLE +#if __MISC_VISIBLE || __POSIX_VISIBLE _PTR _EXFUN(memccpy,(_PTR __restrict, const _PTR __restrict, int, size_t)); #endif #if __GNU_VISIBLE _PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t)); _PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t)); -#endif _PTR _EXFUN(memrchr,(const _PTR, int, size_t)); -#if __GNU_VISIBLE _PTR _EXFUN(rawmemchr,(const _PTR, int)); #endif -#if __BSD_VISIBLE +#if __BSD_VISIBLE || (__POSIX_VISIBLE && !__POSIX2008_VISIBLE) char *_EXFUN(rindex,(const char *, int)); #endif char *_EXFUN(stpcpy,(char *__restrict, const char *__restrict)); @@ -76,17 +78,12 @@ int _EXFUN(strcasecmp,(const char *, const char *)); char *_EXFUN(strcasestr,(const char *, const char *)); char *_EXFUN(strchrnul,(const char *, int)); #endif -#if __XSI_VISIBLE >= 500 +#if __MISC_VISIBLE || __POSIX2008_VISIBLE || __XOPEN2_VISIBLE char *_EXFUN(strdup,(const char *)); -#endif -#ifndef __STRICT_ANSI__ char *_EXFUN(_strdup_r,(struct _reent *, const char *)); #endif -#if __XSI_VISIBLE >= 700 +#if __POSIX2008_VISIBLE char *_EXFUN(strndup,(const char *, size_t)); -#endif - -#ifndef __STRICT_ANSI__ char *_EXFUN(_strndup_r,(struct _reent *, const char *, size_t)); #endif @@ -101,7 +98,7 @@ int _EXFUN(ffsll, (long long)); invoke the underlying function, but that requires gcc support. */ #if __GNU_VISIBLE char *_EXFUN(strerror_r,(int, char *, size_t)); -#else +#elif __POSIX2001_VISIBLE # ifdef __GNUC__ int _EXFUN(strerror_r,(int, char *, size_t)) #ifdef __ASMNAME @@ -124,19 +121,14 @@ size_t _EXFUN(strlcpy,(char *, const char *, size_t)); #if __BSD_VISIBLE || __POSIX_VISIBLE int _EXFUN(strncasecmp,(const char *, const char *, size_t)); #endif -#if !defined(__STRICT_ANSI__) || __POSIX_VISIBLE >= 200809 || \ - __XSI_VISIBLE >= 700 +#if __POSIX2008_VISIBLE size_t _EXFUN(strnlen,(const char *, size_t)); #endif #if __BSD_VISIBLE char *_EXFUN(strsep,(char **, const char *)); #endif -/* - * The origin of these is unknown to me so I am conditionalizing them - * on __STRICT_ANSI__. Finetuning this is definitely needed. --joel - */ -#if !defined(__STRICT_ANSI__) +#if __MISC_VISIBLE char *_EXFUN(strlwr,(char *)); char *_EXFUN(strupr,(char *)); #endif @@ -149,7 +141,7 @@ char *_EXFUN(strsignal, (int __signo)); int _EXFUN(strtosigno, (const char *__name)); #endif -#if defined _GNU_SOURCE && defined __GNUC__ +#if __GNU_VISIBLE && defined __GNUC__ #define strdupa(__s) \ (__extension__ ({const char *__in = (__s); \ size_t __len = strlen (__in) + 1; \ @@ -161,7 +153,7 @@ int _EXFUN(strtosigno, (const char *__name)); char *__out = (char *) __builtin_alloca (__len); \ __out[__len-1] = '\0'; \ (char *) memcpy (__out, __in, __len-1);})) -#endif /* _GNU_SOURCE && __GNUC__ */ +#endif /* __GNU_VISIBLE && __GNUC__ */ /* There are two common basename variants. If you do NOT #include and you do diff --git a/newlib/libc/include/strings.h b/newlib/libc/include/strings.h index 131d81d..95c492e 100644 --- a/newlib/libc/include/strings.h +++ b/newlib/libc/include/strings.h @@ -9,12 +9,12 @@ #include "_ansi.h" #include - +#include #include /* for size_t */ _BEGIN_STD_C -#if !defined __STRICT_ANSI__ && _POSIX_VERSION < 200809L +#if __BSD_VISIBLE || (__POSIX_VISIBLE && !__POSIX2008_VISIBLE) /* * 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 && !__POSIX2008_VISIBLE) */ int _EXFUN(ffs,(int)); int _EXFUN(strcasecmp,(const char *, const char *)); diff --git a/newlib/libc/include/sys/_default_fcntl.h b/newlib/libc/include/sys/_default_fcntl.h index eb674ae..44357e5 100644 --- a/newlib/libc/include/sys/_default_fcntl.h +++ b/newlib/libc/include/sys/_default_fcntl.h @@ -65,7 +65,7 @@ extern "C" { #define O_SEARCH _FEXECSRCH #endif -#ifndef _POSIX_SOURCE +#if __MISC_VISIBLE /* * Flags that work for fcntl(fd, F_SETFL, FXXXX) @@ -97,7 +97,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 */ @@ -108,20 +108,20 @@ 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 || __POSIX2001_VISIBLE #define F_GETOWN 5 /* Get owner - for ASYNC */ #define F_SETOWN 6 /* Set owner - for ASYNC */ -#endif /* !_POSIX_SOURCE */ +#endif /* __BSD_VISIBLE || __POSIX2001_VISIBLE */ #define F_GETLK 7 /* Get record-locking information */ #define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ #define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ -#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 */ -#ifdef __CYGWIN__ +#endif /* __MISC_VISIBLE */ +#if __POSIX2008_VISIBLE #define F_DUPFD_CLOEXEC 14 /* As F_DUPFD, but set close-on-exec flag */ #endif @@ -129,11 +129,11 @@ extern "C" { #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 */ -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__) +#if __BSD_VISIBLE || __POSIX2008_VISIBLE /* Special descriptor value to denote the cwd in calls to openat(2) etc. */ #define AT_FDCWD -2 @@ -166,7 +166,7 @@ struct flock { }; #endif /* __CYGWIN__ */ -#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 */ @@ -178,13 +178,13 @@ 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 #include /* sigh. for the mode bits for open/creat */ extern int open _PARAMS ((const char *, int, ...)); -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__) +#if __ATFILE_VISIBLE extern int openat _PARAMS ((int, const char *, int, ...)); #endif extern int creat _PARAMS ((const char *, mode_t)); @@ -192,7 +192,7 @@ extern int fcntl _PARAMS ((int, int, ...)); #if __BSD_VISIBLE extern int flock _PARAMS ((int, int)); #endif -#ifdef __CYGWIN__ +#ifdef __CYGWIN__ /* __GNU_VISIBLE */ #include extern int futimesat _PARAMS ((int, const char *, const struct timeval *)); #endif diff --git a/newlib/libc/include/sys/_timeval.h b/newlib/libc/include/sys/_timeval.h index 0a4c539..fe37eed 100644 --- a/newlib/libc/include/sys/_timeval.h +++ b/newlib/libc/include/sys/_timeval.h @@ -29,6 +29,7 @@ #ifndef _SYS__TIMEVAL_H_ #define _SYS__TIMEVAL_H_ +#include #include #ifndef _SUSECONDS_T_DECLARED diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h index 5297bef..c536698 100644 --- a/newlib/libc/include/sys/config.h +++ b/newlib/libc/include/sys/config.h @@ -232,9 +232,6 @@ #if defined(__CYGWIN__) #include -#if !defined (__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) -#define __USE_XOPEN2K 1 -#endif #endif #if defined(__rtems__) diff --git a/newlib/libc/include/sys/select.h b/newlib/libc/include/sys/select.h index de779e6..7b4776b 100644 --- a/newlib/libc/include/sys/select.h +++ b/newlib/libc/include/sys/select.h @@ -19,10 +19,9 @@ details. */ includes the W32api winsock[2].h header must know what it is doing; it must not call the Cygwin select function. */ -# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) +# if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) #include - #include #include #include @@ -73,14 +72,16 @@ __BEGIN_DECLS int select __P ((int __n, fd_set *__readfds, fd_set *__writefds, fd_set *__exceptfds, struct timeval *__timeout)); +#if __POSIX2001_VISIBLE int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds, fd_set *__exceptfds, const struct timespec *__timeout, const sigset_t *__set)); +#endif __END_DECLS -#endif +#endif /* !__INSIDE_CYGWIN_NET__ */ -#endif /* !_POSIX_SOURCE, !__INSIDE_CYGWIN_NET__ */ +#endif /* !(_WINSOCK_H || _WINSOCKAPI_ || __USE_W32_SOCKETS) */ #endif /* sys/select.h */ diff --git a/newlib/libc/include/sys/signal.h b/newlib/libc/include/sys/signal.h index 3ff0eb7..1a271e3 100644 --- a/newlib/libc/include/sys/signal.h +++ b/newlib/libc/include/sys/signal.h @@ -13,8 +13,6 @@ extern "C" { #include #include -/* #ifndef __STRICT_ANSI__*/ - #if !defined(_SIGSET_T_DECLARED) #define _SIGSET_T_DECLARED typedef __sigset_t sigset_t; @@ -77,7 +75,8 @@ typedef struct { #define SA_NOCLDSTOP 0x1 /* Do not generate SIGCHLD when children stop */ #define SA_SIGINFO 0x2 /* Invoke the signal catching function with */ /* three arguments instead of one. */ -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 + +#if __BSD_VISIBLE || __POSIX2008_VISIBLE || __XOPEN2_VISIBLE #define SA_ONSTACK 0x4 /* Signal delivery will be on a separate stack. */ #endif @@ -125,7 +124,7 @@ struct sigaction }; #endif /* defined(__rtems__) */ -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +#if __BSD_VISIBLE || __POSIX2008_VISIBLE || __XOPEN2_VISIBLE /* * Minimum and default signal stack constants. Allow for target overrides * from . @@ -187,7 +186,7 @@ int _EXFUN(_kill, (pid_t, int)); int _EXFUN(kill, (pid_t, int)); -#if defined(__CYGWIN__) || defined(__rtems__) +#if __BSD_VISIBLE || __XOPEN2_VISIBLE int _EXFUN(killpg, (pid_t, int)); int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *)); int _EXFUN(sigaddset, (sigset_t *, const int)); @@ -198,12 +197,11 @@ int _EXFUN(sigemptyset, (sigset_t *)); int _EXFUN(sigpending, (sigset_t *)); int _EXFUN(sigsuspend, (const sigset_t *)); int _EXFUN(sigpause, (int)); +#endif -#if defined(__CYGWIN__) || defined(__rtems__) -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +#if __BSD_VISIBLE || __POSIX2008_VISIBLE || __XOPEN2_VISIBLE int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict)); #endif -#endif #if defined(_POSIX_THREADS) #ifdef __CYGWIN__ @@ -230,10 +228,6 @@ int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value)); #endif /* defined(_POSIX_REALTIME_SIGNALS) */ -#endif /* defined(__CYGWIN__) || defined(__rtems__) */ - -/* #endif __STRICT_ANSI__ */ - #if defined(___AM29K__) /* These all need to be defined for ANSI C, but I don't think they are meaningful. */ @@ -354,7 +348,7 @@ int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value)); #endif #if defined(__CYGWIN__) -#if __POSIX_VISIBLE >= 200809 +#if __POSIX2008_VISIBLE #include #endif #endif diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h index 47caf1c..7574820 100644 --- a/newlib/libc/include/sys/stat.h +++ b/newlib/libc/include/sys/stat.h @@ -82,12 +82,12 @@ struct stat #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ #define S_ISVTX 0001000 /* save swapped text even after use */ -#ifndef _POSIX_SOURCE +#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 /* !_POSIX_SOURCE */ +#endif /* !_BSD_VISIBLE */ #define S_IFMT _IFMT #define S_IFDIR _IFDIR @@ -124,7 +124,7 @@ struct stat #define S_IWOTH 0000002 /* write permission, other */ #define S_IXOTH 0000001/* execute/search permission, other */ -#ifndef _POSIX_SOURCE +#if __BSD_VISIBLE #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */ #define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */ #define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */ @@ -157,19 +157,15 @@ int _EXFUN(lstat,( const char *__restrict __path, struct stat *__restrict __buf int _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev )); #endif -#if (__POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) +#if __ATFILE_VISIBLE && !defined(__INSIDE_CYGWIN__) int _EXFUN(fchmodat, (int, const char *, mode_t, int)); -#endif -#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) int _EXFUN(fstatat, (int, const char *__restrict , struct stat *__restrict, int)); int _EXFUN(mkdirat, (int, const char *, mode_t)); int _EXFUN(mkfifoat, (int, const char *, mode_t)); -#endif -#if (__BSD_VISIBLE || __XSI_VISIBLE >= 700 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) int _EXFUN(mknodat, (int, const char *, mode_t, dev_t)); -#endif -#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) int _EXFUN(utimensat, (int, const char *, const struct timespec *, int)); +#endif +#if __POSIX2008_VISIBLE && !defined(__INSIDE_CYGWIN__) int _EXFUN(futimens, (int, const struct timespec *)); #endif diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h index 521be68..e24ffa5 100644 --- a/newlib/libc/include/sys/time.h +++ b/newlib/libc/include/sys/time.h @@ -416,24 +416,27 @@ int tvtohz(struct timeval *tv); #include __BEGIN_DECLS -int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value, - struct itimerval *__restrict __ovalue)); int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp)); #if __BSD_VISIBLE int _EXFUN(adjtime, (const struct timeval *, struct timeval *)); int _EXFUN(futimes, (int, const struct timeval *)); -int _EXFUN(futimesat, (int, const char *, const struct timeval [2])); int _EXFUN(lutimes, (const char *, const struct timeval *)); int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *)); #endif -#if __XSI_VISIBLE +#if __MISC_VISIBLE || (__POSIX2001_VISIBLE && !__POSIX2008_VISIBLE) int _EXFUN(getitimer, (int __which, struct itimerval *__value)); +int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value, + struct itimerval *__restrict __ovalue)); int _EXFUN(gettimeofday, (struct timeval *__restrict __p, void *__restrict __tz)); #endif +#if __GNU_VISIBLE +int _EXFUN(futimesat, (int, const char *, const struct timeval [2])); +#endif + #ifdef _COMPILING_NEWLIB int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz)); #endif diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h index 5dd6c75..10926da 100644 --- a/newlib/libc/include/sys/types.h +++ b/newlib/libc/include/sys/types.h @@ -84,11 +84,13 @@ typedef quad_t * qaddr_t; #define _ST_INT32 #endif -# if __BSD_VISIBLE - +#if __BSD_VISIBLE # define physadr physadr_t # define quad quad_t +#endif +/* These types are required by netinet/*.h on Cygwin */ +#if __BSD_VISIBLE || defined(__CYGWIN__) #ifndef _BSDTYPES_DEFINED /* also defined in mingw/gmon.h and in w32api/winsock[2].h */ #ifndef __u_char_defined @@ -109,11 +111,13 @@ typedef unsigned long u_long; #endif #define _BSDTYPES_DEFINED #endif +#endif /*__BSD_VISIBLE || __CYGWIN__ */ +#if __MISC_VISIBLE typedef unsigned short ushort; /* System V compatibility */ typedef unsigned int uint; /* System V compatibility */ typedef unsigned long ulong; /* System V compatibility */ -# endif /*__BSD_VISIBLE */ +#endif #ifndef __clock_t_defined typedef _CLOCK_T_ clock_t; diff --git a/newlib/libc/include/sys/unistd.h b/newlib/libc/include/sys/unistd.h index a1ad12e..6672a01 100644 --- a/newlib/libc/include/sys/unistd.h +++ b/newlib/libc/include/sys/unistd.h @@ -24,63 +24,67 @@ int _EXFUN(chmod, (const char *__path, mode_t __mode )); #if !defined(__INSIDE_CYGWIN__) int _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group )); #endif -#if defined(__CYGWIN__) || defined(__rtems__) +#if __BSD_VISIBLE || (__XOPEN2_VISIBLE && !__POSIX2001_VISIBLE) int _EXFUN(chroot, (const char *__path )); #endif int _EXFUN(close, (int __fildes )); -#if defined(__CYGWIN__) +#if __POSIX2_VISIBLE size_t _EXFUN(confstr, (int __name, char *__buf, size_t __len)); #endif char * _EXFUN(ctermid, (char *__s )); char * _EXFUN(cuserid, (char *__s )); -#if defined(__CYGWIN__) +#if __BSD_VISIBLE || (__XOPEN_VISIBLE && !__XOPEN5_VISIBLE) int _EXFUN(daemon, (int nochdir, int noclose)); #endif int _EXFUN(dup, (int __fildes )); int _EXFUN(dup2, (int __fildes, int __fildes2 )); -#if defined(__CYGWIN__) +#if __GNU_VISIBLE int _EXFUN(dup3, (int __fildes, int __fildes2, int flags)); int _EXFUN(eaccess, (const char *__path, int __mode)); +#endif +#if __BSD_VISIBLE || (__XOPEN_VISIBLE && !__XOPEN5_VISIBLE) void _EXFUN(endusershell, (void)); +#endif +#if __GNU_VISIBLE int _EXFUN(euidaccess, (const char *__path, int __mode)); #endif int _EXFUN(execl, (const char *__path, const char *, ... )); int _EXFUN(execle, (const char *__path, const char *, ... )); int _EXFUN(execlp, (const char *__file, const char *, ... )); -#if defined(__CYGWIN__) +#if defined(__CYGWIN__) /* QNX */ int _EXFUN(execlpe, (const char *__file, const char *, ... )); #endif int _EXFUN(execv, (const char *__path, char * const __argv[] )); int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] )); int _EXFUN(execvp, (const char *__file, char * const __argv[] )); -#if defined(__CYGWIN__) +#if __GNU_VISIBLE int _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const __envp[] )); #endif -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) +#if __ATFILE_VISIBLE int _EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags)); #endif -#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__) +#if __BSD_VISIBLE || __XOPEN2_VISIBLE int _EXFUN(fchdir, (int __fildes)); #endif int _EXFUN(fchmod, (int __fildes, mode_t __mode )); #if !defined(__INSIDE_CYGWIN__) int _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group )); #endif -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) +#if __ATFILE_VISIBLE int _EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags)); #endif -#if defined(__CYGWIN__) +#if __POSIX2008_VISIBLE int _EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] )); #endif pid_t _EXFUN(fork, (void )); long _EXFUN(fpathconf, (int __fd, int __name )); int _EXFUN(fsync, (int __fd)); int _EXFUN(fdatasync, (int __fd)); -#if defined(__CYGWIN__) +#if __GNU_VISIBLE char * _EXFUN(get_current_dir_name, (void)); #endif char * _EXFUN(getcwd, (char *__buf, size_t __size )); -#if defined(__CYGWIN__) +#if __BSD_VISIBLE || (__XOPEN_VISIBLE && !__XOPEN5_VISIBLE) int _EXFUN(getdomainname ,(char *__name, size_t __len)); #endif #if !defined(__INSIDE_CYGWIN__) @@ -89,31 +93,35 @@ uid_t _EXFUN(geteuid, (void )); gid_t _EXFUN(getgid, (void )); #endif int _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] )); -#if defined(__CYGWIN__) +#if __BSD_VISIBLE || __XOPEN2_VISIBLE long _EXFUN(gethostid, (void)); #endif char * _EXFUN(getlogin, (void )); -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) +#if defined(POSIX_THREAD_SAFE_FUNCTIONS) int _EXFUN(getlogin_r, (char *name, size_t namesize) ); #endif char * _EXFUN(getpass, (const char *__prompt)); int _EXFUN(getpagesize, (void)); -#if defined(__CYGWIN__) +#if __BSD_VISIBLE int _EXFUN(getpeereid, (int, uid_t *, gid_t *)); #endif pid_t _EXFUN(getpgid, (pid_t)); pid_t _EXFUN(getpgrp, (void )); pid_t _EXFUN(getpid, (void )); pid_t _EXFUN(getppid, (void )); -#if defined(__CYGWIN__) || defined(__rtems__) +#if __POSIX2008_VISIBLE || __XOPEN2_VISIBLE pid_t _EXFUN(getsid, (pid_t)); #endif #if !defined(__INSIDE_CYGWIN__) uid_t _EXFUN(getuid, (void )); #endif -#ifdef __CYGWIN__ +#if __BSD_VISIBLE || (__XOPEN_VISIBLE && !__XOPEN5_VISIBLE) char * _EXFUN(getusershell, (void)); +#endif +#if __BSD_VISIBLE || (__XOPEN2_VISIBLE && !__POSIX2008_VISIBLE) char * _EXFUN(getwd, (char *__buf )); +#endif +#if __BSD_VISIBLE int _EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser)); #endif int _EXFUN(isatty, (int __fildes )); @@ -124,14 +132,14 @@ int _EXFUN(issetugid, (void)); int _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group )); #endif int _EXFUN(link, (const char *__path1, const char *__path2 )); -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) +#if __ATFILE_VISIBLE int _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags )); #endif int _EXFUN(nice, (int __nice_value )); #if !defined(__INSIDE_CYGWIN__) off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); #endif -#if defined(__SPU__) || defined(__CYGWIN__) +#if __MISC_VISIBLE || __XOPEN2_VISIBLE #define F_ULOCK 0 #define F_LOCK 1 #define F_TLOCK 2 @@ -140,41 +148,41 @@ int _EXFUN(lockf, (int __fd, int __cmd, off_t __len)); #endif long _EXFUN(pathconf, (const char *__path, int __name )); int _EXFUN(pause, (void )); -#ifdef __CYGWIN__ +#if __POSIX1C_VISIBLE int _EXFUN(pthread_atfork, (void (*)(void), void (*)(void), void (*)(void))); #endif int _EXFUN(pipe, (int __fildes[2] )); -#ifdef __CYGWIN__ +#if __GNU_VISIBLE int _EXFUN(pipe2, (int __fildes[2], int flags)); #endif ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset)); ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset)); _READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte )); -#if defined(__CYGWIN__) +#if __BSD_VISIBLE int _EXFUN(rresvport, (int *__alport)); int _EXFUN(revoke, (char *__path)); #endif int _EXFUN(rmdir, (const char *__path )); -#if defined(__CYGWIN__) +#if __BSD_VISIBLE int _EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser)); #endif void * _EXFUN(sbrk, (ptrdiff_t __incr)); #if !defined(__INSIDE_CYGWIN__) -#if defined(__CYGWIN__) || defined(__rtems__) +#if __BSD_VISIBLE || __POSIX2001_VISIBLE int _EXFUN(setegid, (gid_t __gid )); int _EXFUN(seteuid, (uid_t __uid )); #endif int _EXFUN(setgid, (gid_t __gid )); #endif -#if defined(__CYGWIN__) +#if __BSD_VISIBLE int _EXFUN(setgroups, (int ngroups, const gid_t *grouplist )); #endif -#if __BSD_VISIBLE || (defined(_XOPEN_SOURCE) && __XSI_VISIBLE < 500) +#if __BSD_VISIBLE || (__XOPEN_VISIBLE && !__XOPEN5_VISIBLE) int _EXFUN(sethostname, (const char *, size_t)); #endif int _EXFUN(setpgid, (pid_t __pid, pid_t __pgid )); int _EXFUN(setpgrp, (void )); -#if defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__) +#if !defined(__INSIDE_CYGWIN__) && (__BSD_VISIBLE || __XOPEN2_VISIBLE) int _EXFUN(setregid, (gid_t __rgid, gid_t __egid)); int _EXFUN(setreuid, (uid_t __ruid, uid_t __euid)); #endif @@ -182,7 +190,7 @@ pid_t _EXFUN(setsid, (void )); #if !defined(__INSIDE_CYGWIN__) int _EXFUN(setuid, (uid_t __uid )); #endif -#if defined(__CYGWIN__) +#if __BSD_VISIBLE || (__XOPEN_VISIBLE && !__XOPEN5_VISIBLE) void _EXFUN(setusershell, (void)); #endif unsigned _EXFUN(sleep, (unsigned int __seconds )); @@ -191,9 +199,7 @@ long _EXFUN(sysconf, (int __name )); pid_t _EXFUN(tcgetpgrp, (int __fildes )); int _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id )); char * _EXFUN(ttyname, (int __fildes )); -#if defined(__CYGWIN__) || defined(__rtems__) int _EXFUN(ttyname_r, (int, char *, size_t)); -#endif int _EXFUN(unlink, (const char *__path )); int _EXFUN(usleep, (useconds_t __useconds)); int _EXFUN(vhangup, (void )); @@ -210,9 +216,9 @@ int getopt(int, char * const [], const char *); extern int optreset; /* getopt(3) external variable */ #endif -#ifndef _POSIX_SOURCE +#if __BSD_VISIBLE || (__XOPEN2_VISIBLE && !__POSIX2008_VISIBLE) pid_t _EXFUN(vfork, (void )); -#endif /* _POSIX_SOURCE */ +#endif #ifdef _COMPILING_NEWLIB /* Provide prototypes for most of the _ names that are @@ -255,14 +261,14 @@ char * _EXFUN(mktemp, (char *)); void _EXFUN(sync, (void)); #endif +#if __BSD_VISIBLE || __POSIX2001_VISIBLE || __XOPEN2_VISIBLE ssize_t _EXFUN(readlink, (const char *__restrict __path, char *__restrict __buf, size_t __buflen)); -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) +int _EXFUN(symlink, (const char *__name1, const char *__name2)); +#endif +#if __ATFILE_VISIBLE ssize_t _EXFUN(readlinkat, (int __dirfd1, const char *__restrict __path, char *__restrict __buf, size_t __buflen)); -#endif -int _EXFUN(symlink, (const char *__name1, const char *__name2)); -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) int _EXFUN(symlinkat, (const char *, int, const char *)); int _EXFUN(unlinkat, (int, const char *, int)); #endif diff --git a/newlib/libc/include/time.h b/newlib/libc/include/time.h index b9d1f20..07d009b 100644 --- a/newlib/libc/include/time.h +++ b/newlib/libc/include/time.h @@ -8,6 +8,7 @@ #define _TIME_H_ #include "_ansi.h" +#include #include #define __need_size_t @@ -76,11 +77,14 @@ _END_STD_C extern "C" { #endif -#ifndef __STRICT_ANSI__ +#if __XOPEN_VISIBLE char *_EXFUN(strptime, (const char *__restrict, const char *__restrict, struct tm *__restrict)); +#endif +#if __POSIX_VISIBLE _VOID _EXFUN(tzset, (_VOID)); +#endif _VOID _EXFUN(_tzset_r, (struct _reent *)); typedef struct __tzrule_struct @@ -106,6 +110,7 @@ __tzinfo_type *_EXFUN (__gettzinfo, (_VOID)); /* getdate functions */ #ifdef HAVE_GETDATE +#if __XOPEN2_VISIBLE #ifndef _REENT_ONLY #define getdate_err (*__getdate_err()) int *_EXFUN(__getdate_err,(_VOID)); @@ -121,21 +126,27 @@ struct tm * _EXFUN(getdate, (const char *)); 7 there is no line in the template that matches the input, 8 invalid input specification */ #endif /* !_REENT_ONLY */ +#endif /* __XOPEN2_VISIBLE */ +#if __GNU_VISIBLE /* getdate_r returns the error code as above */ int _EXFUN(getdate_r, (const char *, struct tm *)); +#endif /* __GNU_VISIBLE */ #endif /* HAVE_GETDATE */ /* defines for the opengroup specifications Derived from Issue 1 of the SVID. */ +#if __SVID_VISIBLE || __XOPEN_VISIBLE extern __IMPORT long _timezone; extern __IMPORT int _daylight; +#endif +#if __POSIX_VISIBLE extern __IMPORT char *_tzname[2]; /* POSIX defines the external tzname being defined in time.h */ #ifndef tzname #define tzname _tzname #endif -#endif /* !__STRICT_ANSI__ */ +#endif /* __POSIX_VISIBLE */ #ifdef __cplusplus }