* libc/include/stdio.h (renameat): Declare for Cygwin.

(symlinkat): Ditto.
	* libc/include/sys/unistd.h (readlink): Align declaration to POSIX.
	(faccessat): Declare for Cygwin.
	(fchownat): Ditto.
	(linkat): Ditto.
	(readlinkat): Ditto.
	* libc/include/sys/_default_fcntl.h (AT_FDCWD): Define for Cygwin.
	(AT_EACCESS): Ditto.
	(AT_SYMLINK_NOFOLLOW): Ditto.
	(AT_SYMLINK_FOLLOW): Ditto.
	(AT_REMOVEDIR): Ditto.
	(futimesat): Declare for Cygwin.
	(openat): Ditto.
	(unlinkat): Ditto.
	* libc/include/sys/stat.h (fchmodat): Ditto.
	(fstatat): Ditto.
	(mkdirat): Ditto.
	(mkfifoat): Ditto.
	(mknodat): Ditto.
This commit is contained in:
Corinna Vinschen 2008-04-23 11:13:24 +00:00
parent 6182aac6f7
commit ca48eb65e9
5 changed files with 64 additions and 2 deletions

View File

@ -1,3 +1,26 @@
2008-04-23 Corinna Vinschen <corinna@vinschen.de>
* libc/include/stdio.h (renameat): Declare for Cygwin.
(symlinkat): Ditto.
* libc/include/sys/unistd.h (readlink): Align declaration to POSIX.
(faccessat): Declare for Cygwin.
(fchownat): Ditto.
(linkat): Ditto.
(readlinkat): Ditto.
* libc/include/sys/_default_fcntl.h (AT_FDCWD): Define for Cygwin.
(AT_EACCESS): Ditto.
(AT_SYMLINK_NOFOLLOW): Ditto.
(AT_SYMLINK_FOLLOW): Ditto.
(AT_REMOVEDIR): Ditto.
(futimesat): Declare for Cygwin.
(openat): Ditto.
(unlinkat): Ditto.
* libc/include/sys/stat.h (fchmodat): Ditto.
(fstatat): Ditto.
(mkdirat): Ditto.
(mkfifoat): Ditto.
(mknodat): Ditto.
2008-04-16 Patrick Mansfield <patmans@us.ibm.com> 2008-04-16 Patrick Mansfield <patmans@us.ibm.com>
* libc/machine/spu/sys/errno.h: Use _impure_data, not _reent_data. * libc/machine/spu/sys/errno.h: Use _impure_data, not _reent_data.

View File

@ -339,7 +339,10 @@ FILE * _EXFUN(fmemopen, (void *, size_t, const char *));
/* getdelim - see __getdelim for now */ /* getdelim - see __getdelim for now */
/* getline - see __getline for now */ /* getline - see __getline for now */
FILE * _EXFUN(open_memstream, (char **, size_t *)); FILE * _EXFUN(open_memstream, (char **, size_t *));
/* renameat - unimplemented for now */ #if defined (__CYGWIN__)
int _EXFUN(renameat, (int, const char *, int, const char *));
int _EXFUN(symlinkat, (const char *, int, const char *));
#endif
int _EXFUN(vdprintf, (int, const char *, __VALIST) int _EXFUN(vdprintf, (int, const char *, __VALIST)
_ATTRIBUTE ((__format__ (__printf__, 2, 0)))); _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
# endif # endif

View File

@ -131,6 +131,17 @@ extern "C" {
#define F_UNLKSYS 4 /* remove remote locks for a given system */ #define F_UNLKSYS 4 /* remove remote locks for a given system */
#endif /* !_POSIX_SOURCE */ #endif /* !_POSIX_SOURCE */
#ifdef __CYGWIN__
/* Special descriptor value to denote the cwd in calls to openat(2) etc. */
#define AT_FDCWD -2
/* Flag values for faccessat2) et al. */
#define AT_EACCESS 1
#define AT_SYMLINK_NOFOLLOW 2
#define AT_SYMLINK_FOLLOW 4
#define AT_REMOVEDIR 8
#endif
/*#include <sys/stdtypes.h>*/ /*#include <sys/stdtypes.h>*/
#ifndef __CYGWIN__ #ifndef __CYGWIN__
@ -166,6 +177,11 @@ struct eflock {
extern int open _PARAMS ((const char *, int, ...)); extern int open _PARAMS ((const char *, int, ...));
extern int creat _PARAMS ((const char *, mode_t)); extern int creat _PARAMS ((const char *, mode_t));
extern int fcntl _PARAMS ((int, int, ...)); extern int fcntl _PARAMS ((int, int, ...));
#ifdef __CYGWIN__
extern int futimesat _PARAMS ((int, const char *, const struct timeval *));
extern int openat _PARAMS ((int, const char *, int, ...));
extern int unlinkat _PARAMS ((int, const char *, int));
#endif
/* Provide _<systemcall> prototypes for functions provided by some versions /* Provide _<systemcall> prototypes for functions provided by some versions
of newlib. */ of newlib. */

View File

@ -129,6 +129,14 @@ int _EXFUN(lstat,( const char *__path, struct stat *__buf ));
int _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev )); int _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev ));
#endif #endif
#if defined (__CYGWIN__)
int _EXFUN(fchmodat, (int, const char *, mode_t, int));
int _EXFUN(fstatat, (int, const char *, struct __stat64 *, int));
int _EXFUN(mkdirat, (int, const char *, mode_t));
int _EXFUN(mkfifoat, (int, const char *, mode_t));
int _EXFUN(mknodat, (int, const char *, mode_t, dev_t));
#endif
/* Provide prototypes for most of the _<systemcall> names that are /* Provide prototypes for most of the _<systemcall> names that are
provided in newlib for some compilers. */ provided in newlib for some compilers. */
#ifdef _COMPILING_NEWLIB #ifdef _COMPILING_NEWLIB

View File

@ -46,6 +46,9 @@ int _EXFUN(execlp, (const char *__file, const char *, ... ));
int _EXFUN(execv, (const char *__path, char * const __argv[] )); int _EXFUN(execv, (const char *__path, char * const __argv[] ));
int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] )); int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] ));
int _EXFUN(execvp, (const char *__file, char * const __argv[] )); int _EXFUN(execvp, (const char *__file, char * const __argv[] ));
#if defined(__CYGWIN__)
int _EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags));
#endif
#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__) #if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
int _EXFUN(fchdir, (int __fildes)); int _EXFUN(fchdir, (int __fildes));
#endif #endif
@ -53,6 +56,9 @@ int _EXFUN(fchmod, (int __fildes, mode_t __mode ));
#if !defined(__INSIDE_CYGWIN__) #if !defined(__INSIDE_CYGWIN__)
int _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group )); int _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group ));
#endif #endif
#if defined(__CYGWIN__)
int _EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags));
#endif
pid_t _EXFUN(fork, (void )); pid_t _EXFUN(fork, (void ));
long _EXFUN(fpathconf, (int __fd, int __name )); long _EXFUN(fpathconf, (int __fd, int __name ));
int _EXFUN(fsync, (int __fd)); int _EXFUN(fsync, (int __fd));
@ -99,6 +105,9 @@ int _EXFUN(isatty, (int __fildes ));
int _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group )); int _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group ));
#endif #endif
int _EXFUN(link, (const char *__path1, const char *__path2 )); int _EXFUN(link, (const char *__path1, const char *__path2 ));
#if defined(__CYGWIN__)
int _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags ));
#endif
int _EXFUN(nice, (int __nice_value )); int _EXFUN(nice, (int __nice_value ));
#if !defined(__INSIDE_CYGWIN__) #if !defined(__INSIDE_CYGWIN__)
off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence ));
@ -226,7 +235,10 @@ void _EXFUN(sync, (void));
int _EXFUN(sync, (void)); int _EXFUN(sync, (void));
#endif #endif
int _EXFUN(readlink, (const char *__path, char *__buf, int __buflen)); ssize_t _EXFUN(readlink, (const char *__path, char *__buf, size_t __buflen));
#if defined(__CYGWIN__)
ssize_t _EXFUN(readlinkat, (int __dirfd1, const char *__path, char *__buf, size_t __buflen));
#endif
int _EXFUN(symlink, (const char *__name1, const char *__name2)); int _EXFUN(symlink, (const char *__name1, const char *__name2));
#define F_OK 0 #define F_OK 0