|  | @@ -206,7 +206,7 @@ __BEGIN_DECLS
 | 
	
		
			
				|  |  |  #include <bits/uClibc_posix_opt.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Get the environment definitions from Unix98.  */
 | 
	
		
			
				|  |  | -#ifdef __USE_UNIX98
 | 
	
		
			
				|  |  | +#if defined __USE_UNIX98 || defined __USE_XOPEN2K
 | 
	
		
			
				|  |  |  # include <bits/environments.h>
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -266,7 +266,7 @@ typedef __pid_t pid_t;
 | 
	
		
			
				|  |  |  # endif
 | 
	
		
			
				|  |  |  #endif	/* X/Open */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  | +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K
 | 
	
		
			
				|  |  |  # ifndef __intptr_t_defined
 | 
	
		
			
				|  |  |  typedef __intptr_t intptr_t;
 | 
	
		
			
				|  |  |  #  define __intptr_t_defined
 | 
	
	
		
			
				|  | @@ -387,7 +387,7 @@ extern __typeof(write) __write_nocancel attribute_hidden;
 | 
	
		
			
				|  |  |  libc_hidden_proto(write)
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#ifdef __USE_UNIX98
 | 
	
		
			
				|  |  | +#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
 | 
	
		
			
				|  |  |  # ifndef __USE_FILE_OFFSET64
 | 
	
		
			
				|  |  |  /* Read NBYTES into BUF from FD at the given position OFFSET without
 | 
	
		
			
				|  |  |     changing the file pointer.  Return the number read, -1 for errors
 | 
	
	
		
			
				|  | @@ -469,8 +469,9 @@ libc_hidden_proto(alarm)
 | 
	
		
			
				|  |  |  extern unsigned int sleep (unsigned int __seconds);
 | 
	
		
			
				|  |  |  libc_hidden_proto(sleep)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if (defined __USE_BSD || defined __USE_XOPEN_EXTENDED) \
 | 
	
		
			
				|  |  | -	&& defined __UCLIBC_SUSV3_LEGACY__
 | 
	
		
			
				|  |  | +#if (defined __USE_BSD \
 | 
	
		
			
				|  |  | +		|| (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \
 | 
	
		
			
				|  |  | +	) && defined __UCLIBC_SUSV3_LEGACY__
 | 
	
		
			
				|  |  |  /* Set an alarm to go off (generating a SIGALRM signal) in VALUE
 | 
	
		
			
				|  |  |     microseconds.  If INTERVAL is nonzero, when the alarm goes off, the
 | 
	
		
			
				|  |  |     timer is reset to go off every INTERVAL microseconds thereafter.
 | 
	
	
		
			
				|  | @@ -500,7 +501,7 @@ extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
 | 
	
		
			
				|  |  |       __THROW __nonnull ((1)) __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(chown)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  | +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 | 
	
		
			
				|  |  |  /* Change the owner and group of the file that FD is open on.  */
 | 
	
		
			
				|  |  |  extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW __wur;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -525,7 +526,7 @@ libc_hidden_proto(fchownat)
 | 
	
		
			
				|  |  |  extern int chdir (const char *__path) __THROW __nonnull ((1)) __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(chdir)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  | +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 | 
	
		
			
				|  |  |  /* Change the process's working directory to the one FD is open on.  */
 | 
	
		
			
				|  |  |  extern int fchdir (int __fd) __THROW __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(fchdir)
 | 
	
	
		
			
				|  | @@ -548,7 +549,7 @@ libc_hidden_proto(getcwd)
 | 
	
		
			
				|  |  |  extern char *get_current_dir_name (void) __THROW;
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if 0 /*defined __USE_BSD || defined __USE_XOPEN_EXTENDED*/
 | 
	
		
			
				|  |  | +#if 0 /*defined __USE_BSD || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8)*/
 | 
	
		
			
				|  |  |  /* Put the absolute pathname of the current working directory in BUF.
 | 
	
		
			
				|  |  |     If successful, return BUF.  If not, put an error message in
 | 
	
		
			
				|  |  |     BUF and return NULL.  BUF should be at least PATH_MAX bytes long.  */
 | 
	
	
		
			
				|  | @@ -581,52 +582,53 @@ extern char **environ;
 | 
	
		
			
				|  |  |  /* Replace the current process, executing PATH with arguments ARGV and
 | 
	
		
			
				|  |  |     environment ENVP.  ARGV and ENVP are terminated by NULL pointers.  */
 | 
	
		
			
				|  |  |  extern int execve (const char *__path, char *const __argv[],
 | 
	
		
			
				|  |  | -		   char *const __envp[]) __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +		   char *const __envp[]) __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execve)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if 0 /*def __USE_XOPEN2K8*/
 | 
	
		
			
				|  |  |  /* Execute the file FD refers to, overlaying the running program image.
 | 
	
		
			
				|  |  |     ARGV and ENVP are passed to the new program, as for `execve'.  */
 | 
	
		
			
				|  |  |  extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
 | 
	
		
			
				|  |  | -     __THROW;
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((2));
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Execute PATH with arguments ARGV and environment from `environ'.  */
 | 
	
		
			
				|  |  |  extern int execv (const char *__path, char *const __argv[])
 | 
	
		
			
				|  |  | -     __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execv)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Execute PATH with all arguments after PATH until a NULL pointer,
 | 
	
		
			
				|  |  |     and the argument after that for environment.  */
 | 
	
		
			
				|  |  |  extern int execle (const char *__path, const char *__arg, ...)
 | 
	
		
			
				|  |  | -     __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execle)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Execute PATH with all arguments after PATH until
 | 
	
		
			
				|  |  |     a NULL pointer and environment from `environ'.  */
 | 
	
		
			
				|  |  |  extern int execl (const char *__path, const char *__arg, ...)
 | 
	
		
			
				|  |  | -     __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execl)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Execute FILE, searching in the `PATH' environment variable if it contains
 | 
	
		
			
				|  |  |     no slashes, with arguments ARGV and environment from `environ'.  */
 | 
	
		
			
				|  |  |  extern int execvp (const char *__file, char *const __argv[])
 | 
	
		
			
				|  |  | -     __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execvp)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Execute FILE, searching in the `PATH' environment variable if
 | 
	
		
			
				|  |  |     it contains no slashes, with all arguments after FILE until a
 | 
	
		
			
				|  |  |     NULL pointer and environment from `environ'.  */
 | 
	
		
			
				|  |  |  extern int execlp (const char *__file, const char *__arg, ...)
 | 
	
		
			
				|  |  | -     __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execlp)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef __USE_GNU
 | 
	
		
			
				|  |  |  /* Execute FILE, searching in the `PATH' environment variable if it contains
 | 
	
		
			
				|  |  |     no slashes, with arguments ARGV and environment from a pointer */
 | 
	
		
			
				|  |  | -extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[])
 | 
	
		
			
				|  |  | -     __THROW __nonnull ((1));
 | 
	
		
			
				|  |  | +extern int execvpe (const char *__file, char *const __argv[],
 | 
	
		
			
				|  |  | +		char *const __envp[])
 | 
	
		
			
				|  |  | +     __THROW __nonnull ((1, 2));
 | 
	
		
			
				|  |  |  libc_hidden_proto(execvpe)
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -685,7 +687,7 @@ extern __pid_t __REDIRECT_NTH (getpgrp, (__pid_t __pid), __getpgid);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Get the process group ID of process PID.  */
 | 
	
		
			
				|  |  |  extern __pid_t __getpgid (__pid_t __pid) __THROW;
 | 
	
		
			
				|  |  | -#ifdef __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  | +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 | 
	
		
			
				|  |  |  extern __pid_t getpgid (__pid_t __pid) __THROW;
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -731,7 +733,7 @@ extern int __REDIRECT_NTH (setpgrp, (__pid_t __pid, __pid_t __pgrp), setpgid);
 | 
	
		
			
				|  |  |  extern __pid_t setsid (void) __THROW;
 | 
	
		
			
				|  |  |  libc_hidden_proto(setsid)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#ifdef __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  | +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 | 
	
		
			
				|  |  |  /* Return the session ID of the given process.  */
 | 
	
		
			
				|  |  |  extern __pid_t getsid (__pid_t __pid) __THROW;
 | 
	
		
			
				|  |  |  libc_hidden_proto(getsid)
 | 
	
	
		
			
				|  | @@ -768,37 +770,37 @@ extern int group_member (__gid_t __gid) __THROW;
 | 
	
		
			
				|  |  |     If the calling process is the super-user, set the real
 | 
	
		
			
				|  |  |     and effective user IDs, and the saved set-user-ID to UID;
 | 
	
		
			
				|  |  |     if not, the effective user ID is set to UID.  */
 | 
	
		
			
				|  |  | -extern int setuid (__uid_t __uid) __THROW;
 | 
	
		
			
				|  |  | +extern int setuid (__uid_t __uid) __THROW __wur;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  |  /* Set the real user ID of the calling process to RUID,
 | 
	
		
			
				|  |  |     and the effective user ID of the calling process to EUID.  */
 | 
	
		
			
				|  |  | -extern int setreuid (__uid_t __ruid, __uid_t __euid) __THROW;
 | 
	
		
			
				|  |  | +extern int setreuid (__uid_t __ruid, __uid_t __euid) __THROW __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(setreuid)
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined __USE_BSD || defined __USE_XOPEN2K
 | 
	
		
			
				|  |  |  /* Set the effective user ID of the calling process to UID.  */
 | 
	
		
			
				|  |  | -extern int seteuid (__uid_t __uid) __THROW;
 | 
	
		
			
				|  |  | +extern int seteuid (__uid_t __uid) __THROW __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(seteuid)
 | 
	
		
			
				|  |  | -#endif /* Use BSD.  */
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Set the group ID of the calling process to GID.
 | 
	
		
			
				|  |  |     If the calling process is the super-user, set the real
 | 
	
		
			
				|  |  |     and effective group IDs, and the saved set-group-ID to GID;
 | 
	
		
			
				|  |  |     if not, the effective group ID is set to GID.  */
 | 
	
		
			
				|  |  | -extern int setgid (__gid_t __gid) __THROW;
 | 
	
		
			
				|  |  | +extern int setgid (__gid_t __gid) __THROW __wur;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  |  /* Set the real group ID of the calling process to RGID,
 | 
	
		
			
				|  |  |     and the effective group ID of the calling process to EGID.  */
 | 
	
		
			
				|  |  | -extern int setregid (__gid_t __rgid, __gid_t __egid) __THROW;
 | 
	
		
			
				|  |  | +extern int setregid (__gid_t __rgid, __gid_t __egid) __THROW __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(setregid)
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined __USE_BSD || defined __USE_XOPEN2K
 | 
	
		
			
				|  |  |  /* Set the effective group ID of the calling process to GID.  */
 | 
	
		
			
				|  |  | -extern int setegid (__gid_t __gid) __THROW;
 | 
	
		
			
				|  |  | +extern int setegid (__gid_t __gid) __THROW __wur;
 | 
	
		
			
				|  |  |  #endif /* Use BSD.  */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef __USE_GNU
 | 
	
	
		
			
				|  | @@ -816,14 +818,14 @@ extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
 | 
	
		
			
				|  |  |  /* Set the real user ID, effective user ID, and saved-set user ID,
 | 
	
		
			
				|  |  |     of the calling process to RUID, EUID, and SUID, respectively.  */
 | 
	
		
			
				|  |  |  extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
 | 
	
		
			
				|  |  | -     __THROW;
 | 
	
		
			
				|  |  | +     __THROW __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(setresuid)
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Set the real group ID, effective group ID, and saved-set group ID,
 | 
	
		
			
				|  |  |     of the calling process to RGID, EGID, and SGID, respectively.  */
 | 
	
		
			
				|  |  |  extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
 | 
	
		
			
				|  |  | -     __THROW;
 | 
	
		
			
				|  |  | +     __THROW __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(setresgid)
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -832,7 +834,7 @@ libc_hidden_proto(setresgid)
 | 
	
		
			
				|  |  |  /* Clone the calling process, creating an exact copy.
 | 
	
		
			
				|  |  |     Return -1 for errors, 0 to the new process,
 | 
	
		
			
				|  |  |     and the process ID of the new process to the old process.  */
 | 
	
		
			
				|  |  | -extern __pid_t fork (void) __THROW;
 | 
	
		
			
				|  |  | +extern __pid_t fork (void) __THROWNL;
 | 
	
		
			
				|  |  |  # ifdef _LIBC
 | 
	
		
			
				|  |  |  # ifdef __UCLIBC_HAS_THREADS__
 | 
	
		
			
				|  |  |  extern __typeof(fork) __libc_fork;
 | 
	
	
		
			
				|  | @@ -903,7 +905,7 @@ extern ssize_t readlink (const char *__restrict __path,
 | 
	
		
			
				|  |  |  			 char *__restrict __buf, size_t __len)
 | 
	
		
			
				|  |  |       __THROW __nonnull ((1, 2)) __wur;
 | 
	
		
			
				|  |  |  libc_hidden_proto(readlink)
 | 
	
		
			
				|  |  | -#endif /* Use BSD.  */
 | 
	
		
			
				|  |  | +#endif /* Use POSIX.1-2001.  */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef __USE_ATFILE
 | 
	
		
			
				|  |  |  /* Like symlink but a relative path in TO is interpreted relative to TOFD.  */
 | 
	
	
		
			
				|  | @@ -944,7 +946,7 @@ extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __THROW;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Return the login name of the user.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -   This function is a possible cancellation points and therefore not
 | 
	
		
			
				|  |  | +   This function is a possible cancellation point and therefore not
 | 
	
		
			
				|  |  |     marked with __THROW.  */
 | 
	
		
			
				|  |  |  extern char *getlogin (void);
 | 
	
		
			
				|  |  |  libc_hidden_proto(getlogin)
 | 
	
	
		
			
				|  | @@ -953,7 +955,7 @@ libc_hidden_proto(getlogin)
 | 
	
		
			
				|  |  |     If it cannot be determined or some other error occurred, return the error
 | 
	
		
			
				|  |  |     code.  Otherwise return 0.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -   This function is a possible cancellation points and therefore not
 | 
	
		
			
				|  |  | +   This function is a possible cancellation point and therefore not
 | 
	
		
			
				|  |  |     marked with __THROW.  */
 | 
	
		
			
				|  |  |  extern int getlogin_r (char *__name, size_t __name_len) __nonnull ((1));
 | 
	
		
			
				|  |  |  #endif
 | 
	
	
		
			
				|  | @@ -974,7 +976,7 @@ extern int setlogin (const char *__name) __THROW __nonnull ((1));
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if defined __USE_BSD || defined __USE_UNIX98
 | 
	
		
			
				|  |  | +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K
 | 
	
		
			
				|  |  |  /* Put the name of the current host in no more than LEN bytes of NAME.
 | 
	
		
			
				|  |  |     The result is null-terminated if LEN is large enough for the full
 | 
	
		
			
				|  |  |     name and the terminator.  */
 | 
	
	
		
			
				|  | @@ -1071,6 +1073,11 @@ extern char *getpass (const char *__prompt) __nonnull ((1));
 | 
	
		
			
				|  |  |  extern int fsync (int __fd);
 | 
	
		
			
				|  |  |  #endif /* Use BSD || X/Open || Unix98.  */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#if 0 /*def __USE_GNU */
 | 
	
		
			
				|  |  | +/* Make all changes done to all files on the file system associated
 | 
	
		
			
				|  |  | + *    with FD actually appear on disk.  */
 | 
	
		
			
				|  |  | +extern int syncfs (int __fd) __THROW;
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1263,7 +1270,7 @@ extern void swab (const void *__restrict __from, void *__restrict __to,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* The Single Unix specification demands this prototype to be here.
 | 
	
		
			
				|  |  |     It is also found in <stdio.h>.  */
 | 
	
		
			
				|  |  | -#ifdef __USE_XOPEN
 | 
	
		
			
				|  |  | +#if defined __USE_XOPEN && !defined __USE_XOPEN2K
 | 
	
		
			
				|  |  |  /* Return the name of the controlling terminal.  */
 | 
	
		
			
				|  |  |  extern char *ctermid (char *__s) __THROW;
 | 
	
		
			
				|  |  |  #endif
 |