From 77db439eaf8d88da3dfae342631384b143ce33e6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 26 Feb 2009 02:23:50 +0000 Subject: [PATCH] * ctype/ctype.h: The *_l functions are in POSIX 2008. * dirent/dirent.h: alphasort, dirfd, scandir, and fdopendir are in POSIX 2008. /proc/sys/kernel/rtsig_max doesn't exist anymore, use getrlimit --- ChangeLog | 5 ++- NEWS | 4 ++- ctype/ctype.h | 10 +++--- dirent/dirent.h | 78 ++++++++++++++++++++++-------------------- locale/langinfo.h | 2 +- locale/locale.h | 6 ++-- locale/xlocale.h | 5 ++- nptl/ChangeLog | 5 +++ nptl/sysdeps/pthread/pthread.h | 28 +++++++++++---- stdlib/monetary.h | 2 +- 10 files changed, 88 insertions(+), 57 deletions(-) diff --git a/ChangeLog b/ChangeLog index d196f534eb..b970d2b4be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ 2009-02-25 Ulrich Drepper * include/features.h: Define macros for XPG7/POSIX 2008. + * ctype/ctype.h: The *_l functions are in POSIX 2008. + * dirent/dirent.h: alphasort, dirfd, scandir, and fdopendir are in + POSIX 2008. * sysdeps/unix/sysv/linux/bits/stat.h: Protect UTIME_NOW and UTIME_OMIT only with __USE_ATFILE. * sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise. @@ -52,7 +55,7 @@ 2009-02-24 Ulrich Drepper * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): - /proc/sys/kenrel/rtsig_max doesn't exist anymore, use getrlimit + /proc/sys/kernel/rtsig_max doesn't exist anymore, use getrlimit instead. * io/sys/stat.h: The lstat functions have been mandatory since 2001. diff --git a/NEWS b/NEWS index 5c2d9a7ef7..04a196c8fd 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2009-1-30 +GNU C Library NEWS -- history of user-visible changes. 2009-2-25 Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc. See the end for copying conditions. @@ -12,6 +12,8 @@ Version 2.10 * Correct declarations of string function when used in C++ code. This could lead to compile error for invalid C++ code. +* XPG7/POSIX 2008 compilation environment. + Version 2.9 diff --git a/ctype/ctype.h b/ctype/ctype.h index 301e25d4d1..e859c4a624 100644 --- a/ctype/ctype.h +++ b/ctype/ctype.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004,2007,2008 +/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004,2007,2008,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -216,7 +216,7 @@ __NTH (toupper (int __c)) #endif /* Not __NO_CTYPE. */ -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K8 /* The concept of one static locale per category is not very well thought out. Many applications will need to process its data using information from several different locales. Another application is @@ -292,7 +292,7 @@ extern int toupper_l (int __c, __locale_t __l) __THROW; # define __isblank_l(c,l) __isctype_l((c), _ISblank, (l)) -# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN +# if defined __USE_SVID || defined __USE_MISC # define __isascii_l(c,l) ((l), __isascii (c)) # define __toascii_l(c,l) ((l), __toascii (c)) # endif @@ -311,14 +311,14 @@ extern int toupper_l (int __c, __locale_t __l) __THROW; # define isblank_l(c,l) __isblank_l ((c), (l)) -# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN +# if defined __USE_SVID || defined __USE_MISC # define isascii_l(c,l) __isascii_l ((c), (l)) # define toascii_l(c,l) __toascii_l ((c), (l)) # endif # endif /* Not __NO_CTYPE. */ -#endif /* Use GNU. */ +#endif /* Use POSIX 2008. */ __END_DECLS diff --git a/dirent/dirent.h b/dirent/dirent.h index ed4147dbca..cb6d0bc2d5 100644 --- a/dirent/dirent.h +++ b/dirent/dirent.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2000, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1991-2000, 2003-2005, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -134,7 +134,7 @@ typedef struct __dirstream DIR; marked with __THROW. */ extern DIR *opendir (__const char *__name) __nonnull ((1)); -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K8 /* Same as opendir, but open the stream on the file descriptor FD. This function is a possible cancellation point and therefore not @@ -218,7 +218,7 @@ extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1)); extern long int telldir (DIR *__dirp) __THROW __nonnull ((1)); #endif -#if defined __USE_BSD || defined __USE_MISC +#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN_2K8 /* Return the file descriptor used by DIRP. */ extern int dirfd (DIR *__dirp) __THROW __nonnull ((1)); @@ -227,15 +227,17 @@ extern int dirfd (DIR *__dirp) __THROW __nonnull ((1)); # define dirfd(dirp) _DIR_dirfd (dirp) # endif -# ifndef MAXNAMLEN +# if defined __USE_BSD || defined __USE_MISC +# ifndef MAXNAMLEN /* Get the definitions of the POSIX.1 limits. */ # include /* `MAXNAMLEN' is the BSD name for what POSIX calls `NAME_MAX'. */ -# ifdef NAME_MAX -# define MAXNAMLEN NAME_MAX -# else -# define MAXNAMLEN 255 +# ifdef NAME_MAX +# define MAXNAMLEN NAME_MAX +# else +# define MAXNAMLEN 255 +# endif # endif # endif @@ -294,57 +296,59 @@ extern int alphasort64 (__const void *__e1, __const void *__e2) __THROW __attribute_pure__ __nonnull ((1, 2)); # endif -# ifdef __USE_GNU -/* Function to compare two `struct dirent's by name & version. */ -# ifndef __USE_FILE_OFFSET64 -extern int versionsort (__const void *__e1, __const void *__e2) - __THROW __attribute_pure__ __nonnull ((1, 2)); -# else -# ifdef __REDIRECT -extern int __REDIRECT_NTH (versionsort, - (__const void *__e1, __const void *__e2), - versionsort64) - __attribute_pure__ __nonnull ((1, 2)); -# else -# define versionsort versionsort64 -# endif -# endif - -# ifdef __USE_LARGEFILE64 -extern int versionsort64 (__const void *__e1, __const void *__e2) - __THROW __attribute_pure__ __nonnull ((1, 2)); -# endif -# endif +# if defined __USE_BSD || defined __USE_MISC /* Read directory entries from FD into BUF, reading at most NBYTES. Reading starts at offset *BASEP, and *BASEP is updated with the new position after reading. Returns the number of bytes read; zero when at end of directory; or -1 for errors. */ -# ifndef __USE_FILE_OFFSET64 +# ifndef __USE_FILE_OFFSET64 extern __ssize_t getdirentries (int __fd, char *__restrict __buf, size_t __nbytes, __off_t *__restrict __basep) __THROW __nonnull ((2, 4)); -# else -# ifdef __REDIRECT +# else +# ifdef __REDIRECT extern __ssize_t __REDIRECT_NTH (getdirentries, (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep), getdirentries64) __nonnull ((2, 4)); -# else -# define getdirentries getdirentries64 +# else +# define getdirentries getdirentries64 +# endif # endif -# endif -# ifdef __USE_LARGEFILE64 +# ifdef __USE_LARGEFILE64 extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep) __THROW __nonnull ((2, 4)); +# endif +# endif /* Use BSD or misc. */ +#endif /* Use BSD or misc or XPG7. */ + +#ifdef __USE_GNU +/* Function to compare two `struct dirent's by name & version. */ +# ifndef __USE_FILE_OFFSET64 +extern int versionsort (__const void *__e1, __const void *__e2) + __THROW __attribute_pure__ __nonnull ((1, 2)); +# else +# ifdef __REDIRECT +extern int __REDIRECT_NTH (versionsort, + (__const void *__e1, __const void *__e2), + versionsort64) + __attribute_pure__ __nonnull ((1, 2)); +# else +# define versionsort versionsort64 +# endif # endif -#endif /* Use BSD or misc. */ +# ifdef __USE_LARGEFILE64 +extern int versionsort64 (__const void *__e1, __const void *__e2) + __THROW __attribute_pure__ __nonnull ((1, 2)); +# endif +#endif /* Use GNU. */ __END_DECLS diff --git a/locale/langinfo.h b/locale/langinfo.h index 84f53ef172..59017b31c8 100644 --- a/locale/langinfo.h +++ b/locale/langinfo.h @@ -582,7 +582,7 @@ enum extern char *nl_langinfo (nl_item __item) __THROW; -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K /* This interface is for the extended locale model. See for more information. */ diff --git a/locale/locale.h b/locale/locale.h index 08fc531d7e..b24ae245fe 100644 --- a/locale/locale.h +++ b/locale/locale.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1995-2002,2007 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1995-2002,2007,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -130,7 +130,7 @@ extern struct lconv *localeconv (void) __THROW; __END_NAMESPACE_STD -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K /* The concept of one static locale per category is not very well thought out. Many applications will need to process its data using information from several different locales. Another application is @@ -145,8 +145,6 @@ __END_NAMESPACE_STD /* Get locale datatype definition. */ # include -typedef __locale_t locale_t; - /* Return a reference to a data structure representing a set of locale datasets. Unlike for the CATEGORY parameter for `setlocale' the CATEGORY_MASK parameter here uses a single bit for each category, diff --git a/locale/xlocale.h b/locale/xlocale.h index 2b17d6973f..e879212b79 100644 --- a/locale/xlocale.h +++ b/locale/xlocale.h @@ -1,5 +1,5 @@ /* Definition of locale datatype. - Copyright (C) 1997,2000,02 Free Software Foundation, Inc. + Copyright (C) 1997,2000,2002,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -39,4 +39,7 @@ typedef struct __locale_struct const char *__names[13]; } *__locale_t; +/* POSIX 2008 makes locale_t official. */ +typedef __locale_t locale_t; + #endif /* xlocale.h */ diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 124c3d6eb1..edb5f67e48 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2009-02-25 Ulrich Drepper + + * sysdeps/pthread/pthread.h: The robust mutex functions are in + POSIX 2008. + 2009-02-24 Ulrich Drepper * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H): diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h index cc7472eaff..3155d85a09 100644 --- a/nptl/sysdeps/pthread/pthread.h +++ b/nptl/sysdeps/pthread/pthread.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 +/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -63,12 +63,14 @@ enum }; -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K /* Robust mutex or not flags. */ enum { - PTHREAD_MUTEX_STALLED_NP, - PTHREAD_MUTEX_ROBUST_NP + PTHREAD_MUTEX_STALLED, + PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, + PTHREAD_MUTEX_ROBUST_NP, + PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST }; #endif @@ -762,10 +764,14 @@ extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, #endif -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K8 /* Declare the state protected by MUTEX as consistent. */ extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) __THROW __nonnull ((1)); +# ifdef __USE_GNU +extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) + __THROW __nonnull ((1)); +# endif #endif @@ -827,16 +833,26 @@ extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, __THROW __nonnull ((1)); #endif -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K /* Get the robustness flag of the mutex attribute ATTR. */ +extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr, + int *__robustness) + __THROW __nonnull ((1, 2)); +# ifdef __USE_GNU extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, int *__robustness) __THROW __nonnull ((1, 2)); +# endif /* Set the robustness flag of the mutex attribute ATTR. */ +extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, + int __robustness) + __THROW __nonnull ((1)); +# ifdef __USE_GNU extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, int __robustness) __THROW __nonnull ((1)); +# endif #endif diff --git a/stdlib/monetary.h b/stdlib/monetary.h index c8483b27a8..7f0c0ec208 100644 --- a/stdlib/monetary.h +++ b/stdlib/monetary.h @@ -41,7 +41,7 @@ extern ssize_t strfmon (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, ...) __THROW __attribute_format_strfmon__ (3, 4); -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K8 # include /* Formatting a monetary value according to the current locale. */ -- 2.11.4.GIT