From: Ulrich Drepper Date: Sat, 9 Jan 2010 18:56:41 +0000 (-0800) Subject: Add support for XPG7 testing. X-Git-Tag: upstream/2.30~13128 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f095bb7204d80f609a73a22796edd6cffd4c6add;p=external%2Fglibc.git Add support for XPG7 testing. The header conformance testing code needed extending for XPG7. This exposed a few bugs in the headers. There are more changes to come. --- diff --git a/ChangeLog b/ChangeLog index 6cbc86d..a2f8d1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,135 @@ +2010-01-09 Ulrich Drepper + + * conform/conformtest.pl: Update for XPG7 and some bug fixes. + * conform/data/ctype.h-data: Likewise. + * conform/data/dirent.h-data: Likewise. + * conform/data/errno.h-data: Likewise. + * conform/data/fcntl.h-data: Likewise. + * conform/data/fmtmsg.h-data: Likewise. + * conform/data/fnmatch.h-data: Likewise. + * conform/data/ftw.h-data: Likewise. + * conform/data/glob.h-data: Likewise. + * conform/data/grp.h-data: Likewise. + * conform/data/iconv.h-data: Likewise. + * conform/data/langinfo.h-data: Likewise. + * conform/data/libgen.h-data: Likewise. + * conform/data/limits.h-data: Likewise. + * conform/data/locale.h-data: Likewise. + * conform/data/math.h-data: Likewise. + * conform/data/monetary.h-data: Likewise. + * conform/data/mqueue.h-data: Likewise. + * conform/data/ndbm.h-data: Likewise. + * conform/data/netdb.h-data: Likewise. + * conform/data/pthread.h-data: Likewise. + * conform/data/pwd.h-data: Likewise. + * conform/data/regex.h-data: Likewise. + * conform/data/sched.h-data: Likewise. + * conform/data/search.h-data: Likewise. + * conform/data/semaphore.h-data: Likewise. + * conform/data/setjmp.h-data: Likewise. + * conform/data/signal.h-data: Likewise. + * conform/data/spawn.h-data: Likewise. + * conform/data/stdio.h-data: Likewise. + * conform/data/stdlib.h-data: Likewise. + * conform/data/string.h-data: Likewise. + * conform/data/strings.h-data: Likewise. + * conform/data/sys/ipc.h-data: Likewise. + * conform/data/sys/msg.h-data: Likewise. + * conform/data/sys/resource.h-data: Likewise. + * conform/data/sys/sem.h-data: Likewise. + * conform/data/sys/shm.h-data: Likewise. + * conform/data/sys/socket.h-data: Likewise. + * conform/data/sys/stat.h-data: Likewise. + * conform/data/sys/time.h-data: Likewise. + * conform/data/sys/types.h-data: Likewise. + * conform/data/sys/uio.h-data: Likewise. + * conform/data/sys/wait.h-data: Likewise. + * conform/data/syslog.h-data: Likewise. + * conform/data/tar.h-data: Likewise. + * conform/data/termios.h-data: Likewise. + * conform/data/time.h-data: Likewise. + * conform/data/ulimit.h-data: Likewise. + * conform/data/unistd.h-data: Likewise. + * conform/data/utmpx.h-data: Likewise. + * conform/data/wchar.h-data: Likewise. + * conform/data/wctype.h-data: Likewise. + * conform/data/wordexp.h-data: Likewise. + + * io/fcntl.h: Define mode_t macros instead of including sys/stat.h. + * sysdeps/unix/bsd/bits/stat.h: Enable using from fcntl.h. + * sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise. + * sysdeps/unix/sysv/bits/stat.h: Likewise. + * sysdeps/mach/hurd/bits/stat.h: Likewise. + + * stdlib/stdlib.h: Define wait-related bits for XPG7. + Don't declare valloc, mktemp, ecvt, fcvt, gcvt for XPG6 and up. + Declare mkstemp and getsubopt for XPG7. + Declare posix_openpt for XPG6 XSI. + + * include/features.h: Define __USE_XOPEN2KXSI for _XOPEN_SOURCE >= 600 + and __USE_XOPEN2K8XSI for _XOPEN_SOURCE >= 700. + + * string/string.h: Declare strdup for XPG7. + +2010-01-08 Ulrich Drepper + + * bits/confname.h: Define _CS_V6_ENV and _CS_V7_ENV. + * posix/confstr.c: Implement _CS_V6_ENV and _CS_V7_ENV. + + * dirent/dirent.h: Really fix feature selection. + + * locale/localeinfo.h: Rename struct locale_data to __locale_data. + Fix all users. + * locale/C-address.c: Fix all users. + * locale/C-collate.c: Likewise. + * locale/C-ctype.c: Likewise. + * locale/C-identification.c: Likewise. + * locale/C-measurement.c: Likewise. + * locale/C-messages.c: Likewise. + * locale/C-monetary.c: Likewise. + * locale/C-name.c: Likewise. + * locale/C-numeric.c: Likewise. + * locale/C-paper.c: Likewise. + * locale/C-telephone.c: Likewise. + * locale/C-time.c: Likewise. + * locale/findlocale.c: Likewise. + * locale/global-locale.c: Likewise. + * locale/loadarchive.c: Likewise. + * locale/loadlocale.c: Likewise. + * locale/nl_langinfo_l.c: Likewise. + * locale/setlocale.c: Likewise. + * locale/xlocale.c: Likewise. + * locale/xlocale.h: Likewise. + * stdio-common/vfscanf.c: Likewise. + * stdlib/strfmon_l.c: Likewise. + * stdlib/strtod_l.c: Likewise. + * stdlib/strtol_l.c: Likewise. + * string/strcoll_l.c: Likewise. + * string/strxfrm_l.c: Likewise. + * time/alt_digit.c: Likewise. + * time/asctime.c: Likewise. + * time/era.c: Likewise. + * time/lc-time-cleanup.c: Likewise. + * time/strftime_l.c: Likewise. + * time/strptime_l.c: Likewise. + * wcsmbs/wcsmbsload.c: Likewise. + * wcsmbs/wcsmbsload.h: Likewise. + + * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Define O_DIRECTORY, + O_NOFOLLOW, O_CLOEXEC, F_DUPFD_CLOEXEC, F_SETOWN, and F_GETOWN + for XPG7. + * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. + 2010-01-06 Ulrich Drepper * dirent/dirent.h: Fix typo in feature selection macro use. diff --git a/bits/confname.h b/bits/confname.h index 757ed4f..b3c33a9 100644 --- a/bits/confname.h +++ b/bits/confname.h @@ -1,5 +1,5 @@ /* `sysconf', `pathconf', and `confstr' NAME values. Generic version. - Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007,2009 + Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -669,4 +669,9 @@ enum #define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS #define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS + + _CS_V6_ENV, +#define _CS_V6_ENV _CS_V6_ENV + _CS_V7_ENV, +#define _CS_V7_ENV _CS_V7_ENV }; diff --git a/conform/conformtest.pl b/conform/conformtest.pl index b15656b..e594d87 100644 --- a/conform/conformtest.pl +++ b/conform/conformtest.pl @@ -1,6 +1,7 @@ #! /usr/bin/perl use Getopt::Long; +use POSIX; $CC = "gcc"; @@ -30,7 +31,8 @@ if (@headers == ()) { } if ($dialect ne "ISO" && $dialect ne "POSIX" && $dialect ne "XPG3" - && $dialect ne "XPG4" && $dialect ne "UNIX98" && $dialect ne "XOPEN2K") { + && $dialect ne "XPG4" && $dialect ne "UNIX98" && $dialect ne "XOPEN2K" + && $dialect ne "XOPEN2K8" && $dialect ne "POSIX2008") { die "unknown dialect \"$dialect\""; } @@ -40,6 +42,8 @@ $CFLAGS{"XPG3"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_XOPEN_SOURCE"; $CFLAGS{"XPG4"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_XOPEN_SOURCE_EXTENDED"; $CFLAGS{"UNIX98"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_XOPEN_SOURCE=500"; $CFLAGS{"XOPEN2K"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_XOPEN_SOURCE=600"; +$CFLAGS{"XOPEN2K8"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_XOPEN_SOURCE=700"; +$CFLAGS{"POSIX2008"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_POSIX_C_SOURCE=200809L"; # These are the ISO C99 keywords. @@ -71,7 +75,10 @@ while ($#knownproblems >= 0) { $isknown{pop (@knownproblems)} = 1; } -$tmpdir = "/tmp"; +$uid = getuid(); +($pwname,$pwpasswd,$pwuid,$pwgid, + $pwquota,$pwcomment,$pwgcos,$pwdir,$pwshell,$pwexpire) = getpwuid($uid); +$tmpdir = "$pwdir"; $verbose = 1; @@ -660,9 +667,6 @@ while ($#headers >= 0) { $maybe_opaque = 1; } - # Remember that this name is allowed. - push @allow, $type; - # Generate a program to test for the availability of this constant. open (TESTFILE, ">$fnamebase.c"); print TESTFILE "$prepend"; @@ -690,9 +694,6 @@ while ($#headers >= 0) { $maybe_opaque = 1; } - # Remember that this name is allowed. - push @allow, $type; - # Generate a program to test for the availability of this type. open (TESTFILE, ">$fnamebase.c"); print TESTFILE "$prepend"; @@ -706,6 +707,27 @@ while ($#headers >= 0) { compiletest ($fnamebase, "Testing for type $type", "Type \"$type\" not available.", $missing, 0); + } elsif (/^tag *({([^}]*)|([a-zA-Z0-9_]*))/) { + my($type) = "$2$3"; + + # Remember that this name is allowed. + if ($type =~ /^struct *(.*)/) { + push @allow, $1; + } elsif ($type =~ /^union *(.*)/) { + push @allow, $1; + } else { + push @allow, $type; + } + + # Generate a program to test for the availability of this type. + open (TESTFILE, ">$fnamebase.c"); + print TESTFILE "$prepend"; + print TESTFILE "#include <$h>\n"; + print TESTFILE "$type;\n"; + close (TESTFILE); + + compiletest ($fnamebase, "Testing for type $type", + "Type \"$type\" not available.", $missing, 0); } elsif (/^optional-function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { my($rettype) = "$2$3"; my($fname) = "$4"; diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data index 7454bd3..d082230 100644 --- a/conform/data/ctype.h-data +++ b/conform/data/ctype.h-data @@ -12,7 +12,7 @@ function int isxdigit (int) function int tolower (int) function int toupper (int) -#ifndef ISO +#if !defined ISO && !defined POSIX && !defined POSIX2008 function int isascii (int) function int toascii (int) @@ -26,4 +26,22 @@ allow is* allow to* allow *_t + +# if defined XOPEN2K8 || defined XOPEN2K8 || defined POSIX2008 +type locale_t + +function int isalnum_l (int, locale_t) +function int isalpha_l (int, locale_t) +function int iscntrl_l (int, locale_t) +function int isdigit_l (int, locale_t) +function int isgraph_l (int, locale_t) +function int islower_l (int, locale_t) +function int isprint_l (int, locale_t) +function int ispunct_l (int, locale_t) +function int isspace_l (int, locale_t) +function int isupper_l (int, locale_t) +function int isxdigit_l (int, locale_t) +function int tolower_l (int, locale_t) +function int toupper_l (int, locale_t) +# endif #endif diff --git a/conform/data/dirent.h-data b/conform/data/dirent.h-data index e496dab..761d578 100644 --- a/conform/data/dirent.h-data +++ b/conform/data/dirent.h-data @@ -3,7 +3,9 @@ type DIR type {struct dirent} +# if !defined POSIX && !defined POSIX2008 element {struct dirent} ino_t d_ino +# endif element {struct dirent} char d_name [] type ino_t @@ -13,9 +15,18 @@ function {DIR*} opendir (const char*) function {struct dirent*} readdir (DIR*) function int readdir_r (DIR*, struct dirent*, struct dirent**) function void rewinddir (DIR*) +# if !defined POSIX && !defined POSIX2008 function void seekdir (DIR*, long int) function {long int} telldir (DIR*) +# endif allow d_* allow *_t + +# if defined XOPEN2K8 || defined POSIX2008 +function int alphasort (const struct dirent**, const struct dirent**) +function int dirfd (DIR*) +function int scandir (const char*, struct dirent***, int(*)(const struct dirent*), int(*)(const struct dirent**,const struct dirent **)) +function {DIR*} fdopendir (int) +# endif #endif diff --git a/conform/data/errno.h-data b/conform/data/errno.h-data index 6722524..ffdf6b5 100644 --- a/conform/data/errno.h-data +++ b/conform/data/errno.h-data @@ -79,6 +79,11 @@ constant ETXTBSY constant EWOULDBLOCK constant EXDEV +# if defined XOPEN2K8 || defined POSIX2008 +constant ENOTRECOVERABLE +constant EOWNERDEAD +# endif + // variable int errno allow errno diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data index c8caf03..7769a44 100644 --- a/conform/data/fcntl.h-data +++ b/conform/data/fcntl.h-data @@ -60,9 +60,11 @@ constant S_IWOTH constant S_IXOTH constant S_ISUID constant S_ISGID +#if !defined POSIX && !defined POSIX2008 constant S_ISVTX +#endif -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 constant POSIX_FADV_NORMAL constant POSIX_FADV_SEQUENTIAL constant POSIX_FADV_RANDOM @@ -86,11 +88,32 @@ type pid_t function int creat (const char*, mode_t) function int fcntl (int, int, ...) function int open (const char*, int, ...) -#ifdef XOPEN2K +#if defined XOPEN2K8 || defined POSIX2008 +function int openat (int, const char*, int, ...) +#endif +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function int posix_fadvise (int, off_t, off_t, int) function int posix_fallocate (int, off_t, off_t) #endif +#if defined XOPEN2K8 || defined POSIX2008 +constant O_TTY_INIT +constant O_CLOEXEC +constant O_EXEC +constant O_SEARCH +constant O_DIRECTORY +constant O_NOFOLLOW +constant FD_CLOEXEC +constant F_DUPFD_CLOEXEC +constant AT_FDCWD +constant AT_EACCESS +constant AT_SYMLINK_NOFOLLOW +constant AT_SYMLINK_FOLLOW +constant AT_REMOVEDIR + +function int openat(int, const char*, int, ...) +#endif + allow-header sys/stat.h allow-header unistd.h @@ -99,4 +122,8 @@ allow F_* allow O_* allow S_* allow *_t + +allow timespec +allow tv_nsec +allow tv_sec #endif diff --git a/conform/data/fmtmsg.h-data b/conform/data/fmtmsg.h-data index da1ed65..67c35c1 100644 --- a/conform/data/fmtmsg.h-data +++ b/conform/data/fmtmsg.h-data @@ -1,4 +1,4 @@ -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined POSIX2008 macro MM_HARD constant MM_HARD diff --git a/conform/data/fnmatch.h-data b/conform/data/fnmatch.h-data index ef34fc4..96591d6 100644 --- a/conform/data/fnmatch.h-data +++ b/conform/data/fnmatch.h-data @@ -3,7 +3,9 @@ constant FNM_NOMATCH constant FNM_PATHNAME constant FNM_PERIOD constant FNM_NOESCAPE +#if !defined XOPEN2K8 && !defined POSIX2008 constant FNM_NOSYS +#endif function int fnmatch (const char*, const char*, int) diff --git a/conform/data/ftw.h-data b/conform/data/ftw.h-data index 81c5007..eb49924 100644 --- a/conform/data/ftw.h-data +++ b/conform/data/ftw.h-data @@ -1,4 +1,4 @@ -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined POSIX2008 type {struct FTW} element {struct FTW} int base element {struct FTW} int level diff --git a/conform/data/glob.h-data b/conform/data/glob.h-data index 221a315..9f90f8b 100644 --- a/conform/data/glob.h-data +++ b/conform/data/glob.h-data @@ -15,7 +15,9 @@ constant GLOB_NOSORT constant GLOB_ABORTED constant GLOB_NOMATCH constant GLOB_NOSPACE +# if !defined XOPEN2K8 && !defined POSIX2008 constant GLOB_NOSYS +# endif function int glob (const char*, int, int (*) (const char*, int), glob_t*) function void globfree (glob_t *) diff --git a/conform/data/grp.h-data b/conform/data/grp.h-data index 91401b3..1651950 100644 --- a/conform/data/grp.h-data +++ b/conform/data/grp.h-data @@ -7,6 +7,9 @@ element {struct group} {char**} gr_mem # ifndef POSIX type gid_t # endif +# if defined XOPEN2K8 || defined POSIX2008 +type size_t +# endif function {struct group*} getgrgid (gid_t) function {struct group*} getgrnam (const char*) @@ -15,7 +18,9 @@ function int getgrgid_r (gid_t, struct group*, char *, size_t, struct group**) function int getgrnam_r (const char *, struct group *, char *, size_t, struct group**) function {struct group*} getgrent (void) function void endgrent (void) +# ifndef POSIX2008 function void setgrent (void) +# endif # endif allow gr_* diff --git a/conform/data/iconv.h-data b/conform/data/iconv.h-data index f1e2ea0..7071d90 100644 --- a/conform/data/iconv.h-data +++ b/conform/data/iconv.h-data @@ -1,5 +1,8 @@ #if !defined ISO && !defined POSIX type iconv_t +# if defined XOPEN2K8 || defined POSIX2008 +type size_t +# endif function iconv_t iconv_open (const char*, const char*) function size_t iconv (iconv_t, char**, size_t*, char**, size_t*) diff --git a/conform/data/langinfo.h-data b/conform/data/langinfo.h-data index 2fe38a2..95bc3f9 100644 --- a/conform/data/langinfo.h-data +++ b/conform/data/langinfo.h-data @@ -55,7 +55,15 @@ constant YESEXPR constant NOEXPR constant CRNCYSTR +type nl_item +# if defined XOPEN2K8 || defined POSIX2008 +type locale_t +# endif + function {char*} nl_langinfo (nl_item) +# if defined XOPEN2K8 || defined POSIX2008 +function {char*} nl_langinfo_l (nl_item, locale_t) +# endif allow-header nl_types.h diff --git a/conform/data/libgen.h-data b/conform/data/libgen.h-data index ca0126f..b749b8d 100644 --- a/conform/data/libgen.h-data +++ b/conform/data/libgen.h-data @@ -1,4 +1,4 @@ -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined POSIX2008 function {char*} basename (char*) function {char*} dirname (char*) diff --git a/conform/data/limits.h-data b/conform/data/limits.h-data index 9801dde..2e720a9 100644 --- a/conform/data/limits.h-data +++ b/conform/data/limits.h-data @@ -11,7 +11,9 @@ allow LOGIN_NAME_MAX allow MQ_OPEN_MAX allow OPEN_MAX allow PAGESIZE +#if !defined POSIX && !defined POSIX2008 allow PAGE_SIZE +#endif allow PTHREAD_DESTRUCTOR_ITERATIONS allow PTHREAD_KEYS_MAX allow PTHREAD_STACK_MIN @@ -131,12 +133,18 @@ constant SHRT_MIN <= -32767 optional-constant CHARCLASS_NAME_MAX >= 14 optional-constant NL_ARGMAX >= 9 +#if !defined POSIX && !defined POSIX2008 optional-constant NL_LANGMAX >= 14 +#endif optional-constant NL_MSGMAX >= 32767 +#if !defined XOPEN2K8 && !defined POSIX2008 optional-constant NL_NMAX +#endif optional-constant NL_SETMAX >= 255 optional-constant NL_TEXTMAX +#if !defined POSIX && !defined POSIX2008 optional-constant NZERO >= 20 +#endif optional-constant TMP_MAX >= 10000 allow *_MAX diff --git a/conform/data/locale.h-data b/conform/data/locale.h-data index 84bd6ab..f6e6c22 100644 --- a/conform/data/locale.h-data +++ b/conform/data/locale.h-data @@ -17,7 +17,7 @@ element {struct lconv} char p_cs_precedes element {struct lconv} char p_sep_by_space element {struct lconv} char p_sign_posn element {struct lconv} {char*} thousands_sep -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 element {struct lconv} char int_n_cs_precedes element {struct lconv} char int_n_sep_by_space element {struct lconv} char int_n_sign_posn @@ -36,8 +36,31 @@ macro LC_MONETARY macro LC_NUMERIC macro LC_TIME +#if defined XOPEN2K8 || defined POSIX2008 +constant LC_GLOBAL_LOCALE + +macro LC_COLLATE_MASK +macro LC_CTYPE_MASK +macro LC_MESSAGES_MASK +macro LC_MONETARY_MASK +macro LC_NUMERIC_MASK +macro LC_TIME_MASK +macro LC_ALL_MASK + +type locale_t +#endif + function {struct lconv*} localeconv (void) function {char*} setlocale (int, const char*) +#if defined XOPEN2K8 || defined POSIX2008 +function locale_t duplocale (locale_t) +function void freelocale (locale_t) +function locale_t newlocale (int, const char*, locale_t) +function locale_t uselocale (locale_t) +#endif allow LC_* allow *_t +#if defined XOPEN2K8 || defined POSIX2008 +allow LC_*_MASK +#endif diff --git a/conform/data/math.h-data b/conform/data/math.h-data index 40312ef..da9ce68 100644 --- a/conform/data/math.h-data +++ b/conform/data/math.h-data @@ -12,6 +12,7 @@ macro islessequal macro islessgreater macro isunordered +# ifndef POSIX2008 constant M_E constant M_LOG2E constant M_LOG10E @@ -27,6 +28,7 @@ constant M_SQRT2 constant M_SQRT1_2 constant MAXFLOAT +# endif constant HUGE_VAL constant HUGE_VALF constant HUGE_VALL @@ -79,14 +81,18 @@ function double erf (double) function double erfc (double) function double gamma (double) function double hypot (double, double) +#if !defined POSIX && !defined POSIX2008 function double j0 (double) function double j1 (double) function double jn (int, double) +#endif function double lgamma (double) function double tgamma (double) +#if !defined POSIX && !defined POSIX2008 function double y0 (double) function double y1 (double) function double yn (int, double) +#endif function int isnan (double) function double acosh (double) function double asinh (double) @@ -117,8 +123,10 @@ function double fmin (double, double) function double fma (double, double, double) function double nan (const char*) +#if !defined POSIX && !defined POSIX2008 // variable signgam allow signgam +#endif #if !defined ISO && !defined POSIX function float acosf (float) diff --git a/conform/data/monetary.h-data b/conform/data/monetary.h-data index eab8384..7935f2a 100644 --- a/conform/data/monetary.h-data +++ b/conform/data/monetary.h-data @@ -1,8 +1,14 @@ #if !defined ISO && !defined POSIX type size_t type ssize_t +# if defined XOPEN2K8 || defined POSIX2008 +type locale_t +# endif function ssize_t strfmon (char*, size_t, const char*, ...) +# if defined XOPEN2K8 || defined POSIX2008 +function ssize_t strfmon_l (char*, size_t, locale_t, const char*, ...) +# endif allow *_t #endif diff --git a/conform/data/mqueue.h-data b/conform/data/mqueue.h-data index 6ec1e31..16335a5 100644 --- a/conform/data/mqueue.h-data +++ b/conform/data/mqueue.h-data @@ -18,11 +18,19 @@ function ssize_t mq_receive (mqd_t, char*, size_t, unsigned int*) function int mq_send (mqd_t, const char*, size_t, unsigned int) function int mq_setattr (mqd_t, const struct mq_attr*, struct mq_attr*) function int mq_unlink (const char*) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 optional-function ssize_t mq_timedreceive (mqd_t, char*, size_t, unsigned int*, const struct timespec*) optional-function int mq_timedsend (mqd_t, const char*, size_t, unsigned int, const struct timespec*) #endif +#if defined XOPEN2K8 || defined POSIX2008 +type pthread_attr_t +type size_t +type ssize_t +type {struct timespec} +type {struct sigevent} +#endif + allow-header fcntl.h allow-header signal.h allow-header sys/types.h diff --git a/conform/data/ndbm.h-data b/conform/data/ndbm.h-data index 6e606e5..af091de 100644 --- a/conform/data/ndbm.h-data +++ b/conform/data/ndbm.h-data @@ -1,4 +1,4 @@ -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined POSIX2008 type datum element datum {void*} dptr element datum size_t dsize diff --git a/conform/data/netdb.h-data b/conform/data/netdb.h-data index 483a3fc..254ea65 100644 --- a/conform/data/netdb.h-data +++ b/conform/data/netdb.h-data @@ -34,6 +34,7 @@ element {struct servent} {char*} s_proto macro IPPORT_RESERVED +#if !defined XOPEN2K8 && !defined POSIX2008 // variable int h_errno allow h_errno @@ -41,6 +42,7 @@ macro HOST_NOT_FOUND macro NO_DATA macro NO_RECOVERY macro TRY_AGAIN +#endif type {struct addrinfo} element {struct addrinfo} int ai_flags diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data index aa5861f..5a536c7 100644 --- a/conform/data/pthread.h-data +++ b/conform/data/pthread.h-data @@ -25,6 +25,10 @@ macro PTHREAD_MUTEX_INITIALIZER constant PTHREAD_MUTEX_RECURSIVE macro PTHREAD_RWLOCK_INITIALIZER # endif +# if defined XOPEN2K8 || defined POSIX2008 +constant PTHREAD_MUTEX_ROBUST +constant PTHREAD_MUTEX_STALLED +# endif type pthread_attr_t type pthread_barrier_t @@ -90,7 +94,7 @@ function int pthread_create (pthread_t*, const pthread_attr_t*, void *(*) (void* function int pthread_detach (pthread_t) function int pthread_equal (pthread_t, pthread_t) function void pthread_exit (void*) -# ifndef POSIX +# if !defined POSIX && !defined POSIX2008 function int pthread_getconcurrency (void) # endif function int pthread_getcpuclockid (pthread_t, clockid_t*) @@ -135,12 +139,12 @@ function int pthread_rwlockattr_setpshared (pthread_rwlockattr_t*, int) function pthread_t pthread_self (void) function int pthread_setcancelstate (int, int*) function int pthread_setcanceltype (int, int*) -# ifndef POSIX +# if !defined POSIX && !defined POSIX2008 function int pthread_setconcurrency (int) # endif function int pthread_setschedparam (pthread_t, int, const struct sched_param*) function int pthread_setspecific (pthread_key_t, const void*) -#ifndef XOPEN2K +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function int pthread_sigmask (int, const sigset_t*, sigset_t*) #endif function int pthread_spin_destroy (pthread_spinlock_t*) @@ -149,6 +153,11 @@ function int pthread_spin_lock (pthread_spinlock_t*) function int pthread_spin_trylock (pthread_spinlock_t*) function int pthread_spin_unlock (pthread_spinlock_t*) function void pthread_testcancel (void) +# if defined XOPEN2K8 || defined POSIX2008 +function int pthread_mutex_consistent (pthread_mutex_t *) +function int pthread_mutexattr_getrobust (__const pthread_mutexattr_t*, int*) +function int pthread_mutexattr_setrobust (pthread_mutexattr_t*, int) +# endif allow-header sched.h allow-header time.h diff --git a/conform/data/pwd.h-data b/conform/data/pwd.h-data index 1267708..a8edf27 100644 --- a/conform/data/pwd.h-data +++ b/conform/data/pwd.h-data @@ -9,15 +9,20 @@ element {struct passwd} {char*} pw_shell # ifndef POSIX type uid_t type gid_t +# if defined XOPEN2K8 || defined POSIX2008 +type size_t +# endif # endif function {struct passwd*} getpwnam (const char*) function {struct passwd*} getpwuid (uid_t) function int getpwnam_r (const char*, struct passwd*, char*, size_t, struct passwd**) function int getpwuid_r (uid_t, struct passwd*, char*, size_t, struct passwd**) +# ifndef POSIX2008 function void endpwent (void) function {struct passwd*} getpwent (void) function void setpwent (void) +# endif allow pw_* allow *_t diff --git a/conform/data/regex.h-data b/conform/data/regex.h-data index 38495d5..73e06a8 100644 --- a/conform/data/regex.h-data +++ b/conform/data/regex.h-data @@ -28,7 +28,9 @@ constant REG_EBRACE constant REG_BADBR constant REG_ESPACE constant REG_BADRPT +# if !defined XOPEN2K8 && !defined POSIX2008 constant REG_ENOSYS +# endif function int regcomp (regex_t*, const char*, int) function int regexec (const regex_t*, const char*, size_t, regmatch_t[], int) diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data index d4c5ae7..5851450 100644 --- a/conform/data/sched.h-data +++ b/conform/data/sched.h-data @@ -6,6 +6,12 @@ optional-element {struct sched_param} {struct timespec} sched_ss_repl_period optional-element {struct sched_param} {struct timespec} sched_ss_init_budget optional-element {struct sched_param} int sched_ss_max_repl +# if defined XOPEN2K8 || defined POSIX2008 +type pid_t +type time_t +type {struct timespec} +# endif + constant SCHED_FIFO constant SCHED_RR optional-constant SCHED_SPORADIC diff --git a/conform/data/search.h-data b/conform/data/search.h-data index da7f2a1..dadb1ff 100644 --- a/conform/data/search.h-data +++ b/conform/data/search.h-data @@ -1,4 +1,4 @@ -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined POSIX2008 type ENTRY type {struct entry} element {struct entry} {char*} key diff --git a/conform/data/semaphore.h-data b/conform/data/semaphore.h-data index 20fe070..5484884 100644 --- a/conform/data/semaphore.h-data +++ b/conform/data/semaphore.h-data @@ -14,7 +14,7 @@ function int sem_trywait (sem_t*) function int sem_unlink (const char*) function int sem_wait (sem_t*) -# if !defined POSIX +# ifndef POSIX allow-header fcntl.h allow-header sys/types.h # endif diff --git a/conform/data/setjmp.h-data b/conform/data/setjmp.h-data index ef29c9c..a89a33f 100644 --- a/conform/data/setjmp.h-data +++ b/conform/data/setjmp.h-data @@ -6,7 +6,7 @@ type sigjmp_buf function void longjmp (jmp_buf, int) #ifndef ISO function void siglongjmp (sigjmp_buf, int) -# ifndef POSIX +# if !defined POSIX && !defined POSIX2008 function void _longjmp (jmp_buf, int) # endif #endif @@ -14,7 +14,7 @@ function void _longjmp (jmp_buf, int) macro-function int setjmp (jmp_buf) #ifndef ISO macro-function int sigsetjmp (sigjmp_buf, int) -# ifndef POSIX +# if !defined POSIX && !defined POSIX2008 macro-function int _setjmp (jmp_buf) # endif #endif diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data index 95bd372..b48a1ff 100644 --- a/conform/data/signal.h-data +++ b/conform/data/signal.h-data @@ -6,6 +6,20 @@ typed-constant SIG_IGN {void(*)(int)} type sig_atomic_t type sigset_t type pid_t +#if defined XOPEN2K8 || defined POSIX2008 +type size_t +type pthread_t +type uid_t + +type mcontext_t + +type ucontext_t + +element ucontext_t {ucontext_t*} uc_link +element ucontext_t sigset_t uc_sigmask +element ucontext_t stack_t uc_stack +element ucontext_t mcontext_t uc_mcontext +#endif element {union sigval} int sival_int element {union sigval} {void*} sival_ptr @@ -52,7 +66,9 @@ constant SIGBUS constant SIGPOLL constant SIGPROF constant SIGSYS +#if !defined POSIX && !defined POSIX2008 constant SIGTRAP +#endif constant SIGURG constant SIGVTALRM constant SIGXCPU @@ -69,16 +85,20 @@ constant SA_NOCLDSTOP constant SIG_BLOCK constant SIG_UNBLOCK constant SIG_SETMASK +#if !defined POSIX && !defined POSIX2008 constant SA_ONSTACK +#endif constant SA_RESETHAND constant SA_RESTART constant SA_SIGINFO constant SA_NOCLDWAIT constant SA_NODEFER +#if !defined POSIX && !defined POSIX2008 constant SS_ONSTACK constant SS_DISABLE constant MINSIGSTKSZ constant SIGSTKSZ +#endif type ucontext_t @@ -101,7 +121,9 @@ element {struct sigstack} {void*} ss_sp type siginfo_t element siginfo_t int si_signo +#if !defined POSIX && !defined POSIX2008 element siginfo_t int si_errno +#endif element siginfo_t int si_code element siginfo_t pid_t si_pid element siginfo_t uid_t si_uid @@ -153,32 +175,46 @@ constant SI_MESGQ function void (*bsd_signal (int, void(*)(int)))(int) function int kill (pid_t, int) +#if !defined POSIX && !defined POSIX2008 function int killpg (pid_t, int) +#endif function int pthread_kill (pthread_t, int) function int pthread_sigmask (int, const sigset_t*, sigset_t*) function int raise (int) function int sigaction (int, const struct sigaction*, struct sigaction*) function int sigaddset (sigset_t*, int) +#if !defined POSIX && !defined POSIX2008 function int sigaltstack (const stack_t*, stack_t*) +#endif function int sigdelset (sigset_t*, int) function int sigemptyset (sigset_t*) function int sigfillset (sigset_t*) +#if !defined POSIX && !defined POSIX2008 function int sighold (int) function int sigignore (int) function int siginterrupt (int, int) +#endif function int sigismember (const sigset_t*, int) function void (*signal (int, void(*)(int)))(int) +#if !defined POSIX && !defined POSIX2008 function int sigpause (int) +#endif function int sigpending (sigset_t*) function int sigprocmask (int, const sigset_t*, sigset_t*) function int sigqueue (pid_t, int, const union sigval) +#if !defined POSIX && !defined POSIX2008 function int sigrelse (int) function void (*sigset (int, void(*)(int)))(int) +#endif function int sigstack (struct sigstack*, struct sigstack*) function int sigsuspend (const sigset_t*) function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*) function int sigwait (const sigset_t*, int*) function int sigwaitinfo (const sigset_t*, siginfo_t*) +#if defined XOPEN2K8 || defined POSIX2008 +function void psiginfo (const siginfo_t*, const char*) +function void psignal (int, const char*) +#endif // The following expressions are not entirely correct but the current // poorfnmatch implementation doesn't grok the right form. diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data index 8afca02..81f32d0 100644 --- a/conform/data/spawn.h-data +++ b/conform/data/spawn.h-data @@ -1,6 +1,12 @@ #ifndef ISO type posix_spawnattr_t type posix_spawn_file_actions_t +# if defined XOPEN2K8 || defined POSIX2008 +type mode_t +type pid_t +type sigset_t +type {struct sched_param} +# endif constant POSIX_SPAWN_RESETIDS constant POSIX_SPAWN_SETPGROUP diff --git a/conform/data/stdio.h-data b/conform/data/stdio.h-data index c3f071e..fcc61c9 100644 --- a/conform/data/stdio.h-data +++ b/conform/data/stdio.h-data @@ -7,7 +7,9 @@ constant _IOLBF constant _IONBF constant L_ctermid +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 constant L_cuserid +#endif constant L_tmpnam constant SEEK_CUR @@ -20,7 +22,9 @@ constant EOF constant NULL +#if !defined POSIX && !defined POSIX2008 constant P_tmpdir +#endif macro stdin macro stdout @@ -30,10 +34,16 @@ type FILE type fpos_t type va_list type size_t +#if defined XOPEN2K8 || defined POSIX2008 +type off_t +#endif function void clearerr (FILE*) function {char*} ctermid (char*) function {char*} cuserid (char*) +#if defined XOPEN2K8 || defined POSIX2008 +function int dprintf (int, const char*, ...) +#endif function int fclose (FILE*) function {FILE*} fdopen (int, const char*) function int feof (FILE*) @@ -44,6 +54,9 @@ function int fgetpos (FILE*, fpos_t*) function {char*} fgets (char*, int, FILE*) function int fileno (FILE*) function void flockfile (FILE*) +#if defined XOPEN2K8 || defined POSIX2008 +function {FILE*} fmemopen (void*, size_t, const char*) +#endif function {FILE*} fopen (const char*, const char*) function int fprintf (FILE*, const char*, ...) function int fputc (int, FILE*) @@ -63,13 +76,20 @@ function int getc (FILE*) function int getchar (void) function int getc_unlocked (FILE*) function int getchar_unlocked () -#ifndef XOPEN2K +#if defined XOPEN2K8 || defined POSIX2008 +function ssize_t getdelim (char**, size_t*, int, FILE*) +function ssize_t getline (char**, size_t*, FILE*) +#endif +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function int getopt (int, char *const[], const char *) #endif function {char*} gets (char*) -#ifndef XOPEN2K +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function int getw (FILE*) #endif +#if defined XOPEN2K8 || defined POSIX2008 +function {FILE*} open_memstream (char**, size_t*) +#endif function int pclose (FILE*) function void perror (const char*) function {FILE*} popen (const char*, const char*) @@ -79,11 +99,14 @@ function int putchar (int) function int putc_unlocked (int, FILE*) function int putchar_unlocked (int) function int puts (const char*) -#ifndef XOPEN2K +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function int putw (int, FILE*) #endif function int remove (const char*) function int rename (const char*, const char*) +#if defined XOPEN2K8 || defined POSIX2008 +function int renameat (int, const char*, int, const char*) +#endif function void rewind (FILE*) function int scanf (const char*, ...) function void setbuf (FILE*, char*) @@ -91,26 +114,31 @@ function int setvbuf (FILE*, char*, int, size_t) function int snprintf (char*, size_t, const char*, ...) function int sprintf (char *, const char *, ...) function int sscanf (const char*, const char*, ...) +#if !defined POSIX && !defined POSIX2008 function {char*} tempnam (const char*, const char*) +#endif function {FILE*} tmpfile (void) function {char*} tmpnam (char*) function int ungetc (int, FILE*) +#if defined XOPEN2K8 || defined POSIX2008 +function int vdprintf (int, const char*, va_list) +#endif function int vfprintf (FILE*, const char*, va_list) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function int vfscanf (FILE*, const char*, va_list) #endif function int vprintf (const char*, va_list) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function int vscanf (const char*, va_list) #endif function int vsnprintf (char*, size_t, const char*, va_list) function int vsprintf (char*, const char*, va_list) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function int vsscanf (const char*, const char*, va_list) #endif #if !defined ISO && !defined POSIX -#ifndef XOPEN2K +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 variable {char*} optarg variable int opterr variable int optind diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data index c639bb5..760b5b3 100644 --- a/conform/data/stdlib.h-data +++ b/conform/data/stdlib.h-data @@ -10,7 +10,7 @@ element div_t int rem type ldiv_t element ldiv_t long quot element ldiv_t long rem -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 type lldiv_t element lldiv_t {long long} quot element lldiv_t {long long} rem @@ -29,77 +29,116 @@ macro WSTOPSIG macro WTERMSIG function void _Exit (int) +#if !defined POSIX && !defined POSIX2008 function long a64l (const char*) +#endif function void abort (void) function int abs (int) function int atexit (void(*)(void)) function double atof (const char*) function int atoi (const char*) function {long int} atol (const char*) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function {long long} atoll (const char*) #endif function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*)) function {void*} calloc (size_t, size_t) function div_t div (int, int) +#if !defined POSIX && !defined POSIX2008 function double drand48 (void) +#endif +#if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 function {char*} ecvt (double, int, int*, int*) +#endif +#if !defined POSIX && !defined POSIX2008 function double erand48 (unsigned short int[3]) +#endif function void exit (int) +#if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 function {char*} fcvt (double, int, int*, int*) +#endif function void free (void*) +#if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 function {char*} gcvt (double, int, char*) +#endif function {char*} getenv (const char*) function int getsubopt (char**, char *const*, char**) +#if !defined POSIX && !defined POSIX2008 function int grantpt (int) function {char*} initstate (unsigned int, char*, size_t) function {long int} jrand48 (unsigned short int[3]) function {char*} l64a (long) +#endif function {long int} labs (long int) +#if !defined POSIX && !defined POSIX2008 function void lcong48 (unsigned short int[7]) +#endif function ldiv_t ldiv (long int, long int) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function {long long} llabs (long long) function lldiv_t lldiv (long long, long long) #endif +#if !defined POSIX && !defined POSIX2008 function {long int} lrand48 (void) +#endif function {void*} malloc (size_t) function int mblen (const char*, size_t) function size_t mbstowcs (wchar_t*, const char*, size_t) function int mbtowc (wchar_t*, const char*, size_t) +#if defined XOPEN2K8 || defined POSIX2008 +function {char*} mkdtemp (char*) +#endif +#if !defined XOPEN2K8 && !defined POSIX2008 function {char*} mktemp (char*) +#endif function int mkstemp (char*) +#if !defined POSIX && !defined POSIX2008 function {long int} mrand48 (void) function {long int} nrand48 (unsigned short int[3]) +#endif function int posix_memalign (void**, size_t, size_t) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 function int posix_openpt (int) #endif +#if !defined POSIX && !defined POSIX2008 function {char*} ptsname (int) function int putenv (char*) +#endif function void qsort (void*, size_t, size_t, int(*)(const void*, const void*)) function int rand (void) function int rand_r (unsigned int*) +#if !defined POSIX && !defined POSIX2008 function long random (void) +#endif function {void*} realloc (void*, size_t) +#if !defined POSIX && !defined POSIX2008 function {char*} realpath (const char*, char*) function {unsigned short int*} seed48 (unsigned short int[3]) +#endif function int setenv (const char*, const char*, int) +#if !defined POSIX && !defined POSIX2008 function void setkey (const char*) function {char*} setstate (char*) +#endif function void srand (unsigned int) +#if !defined POSIX && !defined POSIX2008 function void srand48 (long int) function void srandom (unsigned) +#endif function double strtod (const char*, char**) function {long int} strtol (const char*, char**, int) function {unsigned long int} strtoul (const char*, char**, int) function int system (const char*) -#ifndef XOPEN2K +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function int ttyslot (void) #endif +#if !defined POSIX && !defined POSIX2008 function int unlockpt (int) +#endif function int unsetenv (const char*) +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008 function {void*} valloc (size_t) +#endif function size_t wcstombs (char*, const wchar_t*, size_t) function int wctomb (char*, wchar_t) diff --git a/conform/data/string.h-data b/conform/data/string.h-data index 19c06d2..1c4ae08 100644 --- a/conform/data/string.h-data +++ b/conform/data/string.h-data @@ -1,35 +1,61 @@ constant NULL type size_t +#if defined XOPEN2K8 || defined POSIX2008 +type locale_t +#endif +#if !defined POSIX && !defined POSIX2008 function {void*} memccpy (void*, const void*, int, size_t) +#endif function {void*} memchr (const void*, int, size_t) function int memcmp (const void*, const void*, size_t) function {void*} memcpy (void*, const void*, size_t) function {void*} memmove (void*, const void*, size_t) function {void*} memset (void*, int, size_t) +#if defined XOPEN2K8 || defined POSIX2008 +function {char*} stpcpy (char*, const char*) +function {char*} stpncpy (char*, const char*, size_t) + +#endif function {char*} strcat (char*, const char*) function {char*} strchr (const char*, int) function int strcmp (const char*, const char*) function int strcoll (const char*, const char*) +#if defined XOPEN2K8 || defined POSIX2008 +function int strcoll_l (const char*, const char*, locale_t) +#endif function {char*} strcpy (char*, const char*) function size_t strcspn (const char*, const char*) function {char*} strdup (const char*) function {char*} strerror (int) -#ifdef XOPEN2K +#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 function int strerror_r (int, char*, size_t) #endif +#if defined XOPEN2K8 || defined POSIX2008 +function {char*} strerror_l (int, locale_t) +#endif function size_t strlen (const char*) function {char*} strncat (char*, const char*, size_t) function int strncmp (const char*, const char*, size_t) function {char*} strncpy (char*, const char*, size_t) +#if defined XOPEN2K8 || defined POSIX2008 +function {char*} strndup (const char*, size_t) +function size_t strnlen (const char*, size_t) +#endif function {char*} strpbrk (const char*, const char*) function {char*} strrchr (const char*, int) +#if defined XOPEN2K8 || defined POSIX2008 +function {char*} strsignal (int) +#endif function size_t strspn (const char*, const char*) function {char*} strstr (const char*, const char*) function {char*} strtok (char*, const char*) function {char*} strtok_r (char*, const char*, char**) function size_t strxfrm (char*, const char*, size_t) +#if defined XOPEN2K8 || defined POSIX2008 +function size_t strxfrm_l (char*, const char*, size_t, locale_t) +#endif allow-header stddef.h diff --git a/conform/data/strings.h-data b/conform/data/strings.h-data index 201780c..fb4f02c 100644 --- a/conform/data/strings.h-data +++ b/conform/data/strings.h-data @@ -1,12 +1,21 @@ function int bcmp (const void*, const void*, size_t) function void bcopy (const void*, void*, size_t) function void bzero (void*, size_t) +#if !defined POSIX && !defined POSIX2008 function int ffs (int) +#endif function {char*} index (const char*, int) function {char*} rindex (const char*, int) function int strcasecmp (const char*, const char*) function int strncasecmp (const char*, const char*, size_t) +#if defined XOPEN2K8 || defined POSIX2008 +function int strcasecmp_l (const char*, const char*, locale_t) +function int strncasecmp_l (const char*, const char*, size_t, locale_t) +#endif type size_t +#if defined XOPEN2K8 || defined POSIX2008 +type locale_t +#endif allow *_t diff --git a/conform/data/sys/ipc.h-data b/conform/data/sys/ipc.h-data index 1b2ec99..28918c1 100644 --- a/conform/data/sys/ipc.h-data +++ b/conform/data/sys/ipc.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 type {struct ipc_perm} element {struct ipc_perm} uid_t uid @@ -26,3 +27,4 @@ function key_t ftok (const char*, int) allow ipc_* allow IPC_* allow *_t +#endif diff --git a/conform/data/sys/msg.h-data b/conform/data/sys/msg.h-data index 7a1df4c..ae83356 100644 --- a/conform/data/sys/msg.h-data +++ b/conform/data/sys/msg.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 type {struct msqid_ds} type msgqnum_t @@ -30,3 +31,4 @@ allow-header sys/ipc.h allow msg* allow MSG* allow *_h +#endif diff --git a/conform/data/sys/resource.h-data b/conform/data/sys/resource.h-data index d9f9b9a..52f83f5 100644 --- a/conform/data/sys/resource.h-data +++ b/conform/data/sys/resource.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 constant PRIO_PROCESS constant PRIO_PGRP constant PRIO_USER @@ -48,3 +49,4 @@ allow RLIM_* allow RLIMIT_* allow RUSAGE_* allow *_t +#endif diff --git a/conform/data/sys/sem.h-data b/conform/data/sys/sem.h-data index 8b4598b..665b397 100644 --- a/conform/data/sys/sem.h-data +++ b/conform/data/sys/sem.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 constant SEM_UNDO constant GETNCNT @@ -35,3 +36,4 @@ allow-header sys/ipc.h allow sem* allow SEM_* allow *_t +#endif diff --git a/conform/data/sys/shm.h-data b/conform/data/sys/shm.h-data index cac0163..39df894 100644 --- a/conform/data/sys/shm.h-data +++ b/conform/data/sys/shm.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 constant SHM_RDONLY symbol SHMLBA constant SHM_RND @@ -30,3 +31,4 @@ allow-header sys/ipc.h allow shm* allow SHM* allow *_t +#endif diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data index dd1f265..5fdd6cf 100644 --- a/conform/data/sys/socket.h-data +++ b/conform/data/sys/socket.h-data @@ -3,6 +3,11 @@ type socklen_t type sa_family_t +# if defined XOPEN2K8 || defined POSIX2008 +type size_t +type ssize_t +# endif + type {struct sockaddr} element {struct sockaddr} sa_family_t sa_family @@ -76,6 +81,9 @@ macro MSG_OOB macro MSG_PEEK macro MSG_TRUNC macro MSG_WAITALL +# if defined XOPEN2K8 || defined POSIX2008 +constant MSG_NOSIGNAL +# endif macro AF_UNIX macro AF_UNSPEC diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data index c0f8d45..72c656f 100644 --- a/conform/data/sys/stat.h-data +++ b/conform/data/sys/stat.h-data @@ -8,13 +8,17 @@ element {struct stat} mode_t st_mode element {struct stat} nlink_t st_nlink element {struct stat} uid_t st_uid element {struct stat} gid_t st_gid +#if !defined POSIX && !defined POSIX2008 element {struct stat} dev_t st_rdev +#endif element {struct stat} off_t st_size element {struct stat} time_t st_atime element {struct stat} time_t st_mtime element {struct stat} time_t st_ctime +#if !defined POSIX && !defined POSIX2008 element {struct stat} blksize_t st_blksize element {struct stat} blkcnt_t st_blocks +#endif type blkcnt_t type blksize_t @@ -26,7 +30,13 @@ type uid_t type gid_t type off_t type time_t +# ifdef XOPEN2K8 +type {struct timespec} +element {struct timespec} time_t tv_sec +element {struct timespec} long tv_nsec +# endif +#if !defined POSIX && !defined POSIX2008 constant S_IFMT constant S_IFBLK constant S_IFCHR @@ -34,6 +44,8 @@ constant S_IFIFO constant S_IFREG constant S_IFDIR constant S_IFLNK +constant S_IFSOCK +#endif constant S_IRWXU constant S_IRUSR @@ -48,14 +60,20 @@ constant S_IWOTH constant S_IXOTH constant S_ISUID constant S_ISGID +#if !defined POSIX && !defined POSIX2008 constant S_ISVTX +#endif +#if !defined POSIX && !defined POSIX2008 +macro S_IFMT macro S_ISBLK macro S_ISCHR macro S_ISDIR macro S_ISFIFO macro S_ISREG macro S_ISLNK +macro S_IFSOCK +#endif // How to represent optional tests? optional-macro S_TYPEISMQ @@ -63,15 +81,41 @@ optional-macro S_TYPEISSEM optional-macro S_TYPEISSHM optional-macro S_TYPEISTMO +# if defined XOPEN2K8 || defined POSIX2008 +constant UTIME_NOW +constant UTIME_OMIT +# endif + function int chmod (const char*, mode_t) function int fchmod (int, mode_t) +# if defined XOPEN2K8 || defined POSIX2008 +function int fchmodat (int, const char*, mode_t, int) +# endif function int fstat (int, struct stat*) +# if defined XOPEN2K8 || defined POSIX2008 +function int fstatat (int, const char*, struct stat*, int) +function int futimens (int, const struct timespec[2]) +# endif function int lstat (const char*, struct stat*) function int mkdir (const char*, mode_t) +# if defined XOPEN2K8 || defined POSIX2008 +function int mkdirat (int, const char*, mode_t) +# endif function int mkfifo (const char*, mode_t) +# if defined XOPEN2K8 || defined POSIX2008 +function int mkfifoat (int, const char*, mode_t) +# endif +# if !defined POSIX && !defined POSIX2008 function int mknod (const char*, mode_t, dev_t) +# endif +# if defined XOPEN2K8 || defined POSIX2008 +function int mknodat (int, const char*, mode_t, dev_t) +# endif function int stat (const char*, struct stat*) function mode_t umask (mode_t) +# if defined XOPEN2K8 || defined POSIX2008 +function int utimensat (int, const char*, const struct timespec[2], int) +# endif allow st_* allow S_* diff --git a/conform/data/sys/time.h-data b/conform/data/sys/time.h-data index 174708b..7e3407a 100644 --- a/conform/data/sys/time.h-data +++ b/conform/data/sys/time.h-data @@ -1,4 +1,4 @@ -#ifndef ISO +#if !defined ISO && !defined POSIX && !defined POSIX2008 type {struct timeval} element {struct timeval} time_t tv_sec diff --git a/conform/data/sys/types.h-data b/conform/data/sys/types.h-data index ed7236b..be61d08 100644 --- a/conform/data/sys/types.h-data +++ b/conform/data/sys/types.h-data @@ -1,14 +1,19 @@ +#ifndef ISO type blkcnt_t type blksize_t type clock_t type clockid_t type dev_t +# if !defined POSIX && !defined POSIX2008 type fsblkcnt_t type fsfilcnt_t +# endif type gid_t type id_t type ino_t +# if !defined POSIX && !defined POSIX2008 type key_t +# endif type mode_t type nlink_t type off_t @@ -28,10 +33,13 @@ type pthread_spinlock_t type pthread_t type size_t type ssize_t +# if !defined POSIX && !defined POSIX2008 type suseconds_t +# endif type time_t type timer_t type uid_t type useconds_t allow *_t +#endif diff --git a/conform/data/sys/uio.h-data b/conform/data/sys/uio.h-data index 258032b..7833e722 100644 --- a/conform/data/sys/uio.h-data +++ b/conform/data/sys/uio.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 type {struct iovec} element {struct iovec} {void*} iov_base @@ -10,3 +11,4 @@ allow iov_* allow IOV_* allow *_t allow UIO_MAXIOV +#endif diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data index 731c955..81c0dc4 100644 --- a/conform/data/sys/wait.h-data +++ b/conform/data/sys/wait.h-data @@ -1,8 +1,11 @@ +#ifndef ISO constant WNOHANG constant WUNTRACED macro WEXITSTATUS +# if !defined POSIX && !defined POSIX2008 macro WIFCONTINUED +# endif macro WIFEXITED macro WIFSIGNALED macro WIFSTOPPED @@ -11,7 +14,9 @@ macro WTERMSIG constant WEXITED constant WSTOPPED +# if !defined POSIX && !defined POSIX2008 constant WCONTINUED +# endif constant WNOHANG constant WNOWAIT @@ -62,3 +67,4 @@ allow SEGV_ allow SI_ allow TRAP_ allow *_t +#endif diff --git a/conform/data/syslog.h-data b/conform/data/syslog.h-data index 87414e8..f0aa65c 100644 --- a/conform/data/syslog.h-data +++ b/conform/data/syslog.h-data @@ -1,3 +1,4 @@ +#if !defined ISO && !defined POSIX && !defined POSIX2008 constant LOG_PID constant LOG_CONS constant LOG_NDELAY @@ -40,3 +41,4 @@ function void syslog (int, const char*, ...) allow LOG_* allow *_t +#endif diff --git a/conform/data/tar.h-data b/conform/data/tar.h-data index 919167d..fcbfb12 100644 --- a/conform/data/tar.h-data +++ b/conform/data/tar.h-data @@ -1,3 +1,4 @@ +#ifndef ISO macro-str TMAGIC "ustar" constant TMAGLEN 6 macro-str TVERSION "00" @@ -15,7 +16,9 @@ constant CONTTYPE constant TSUID 04000 constant TSGID 02000 +# if !defined POSIX && !defined POSIX2008 constant TSVTX 01000 +# endif constant TUREAD 00400 constant TUWRITE 00200 constant TUEXEC 00100 @@ -27,3 +30,4 @@ constant TOWRITE 00002 constant TOEXEC 00001 allow *_t +#endif diff --git a/conform/data/termios.h-data b/conform/data/termios.h-data index d867d4c..d32bd6b 100644 --- a/conform/data/termios.h-data +++ b/conform/data/termios.h-data @@ -1,9 +1,14 @@ +#ifndef ISO type cc_t type speed_t type tcflag_t type {struct termios} +#if defined XOPEN2K8 || defined POSIX2008 +type pid_t +#endif + element {struct termios} tcflag_t c_iflag element {struct termios} tcflag_t c_oflag element {struct termios} tcflag_t c_cflag @@ -32,18 +37,24 @@ constant IGNPAR constant INLCR constant INPCK constant ISTRIP +# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 constant IUCLC +# = 600 # if (_XOPEN_SOURCE - 0) >= 700 # define __USE_XOPEN2K8 1 +# define __USE_XOPEN2K8XSI 1 # endif # define __USE_XOPEN2K 1 +# define __USE_XOPEN2KXSI 1 # undef __USE_ISOC99 # define __USE_ISOC99 1 # endif diff --git a/io/fcntl.h b/io/fcntl.h index 2a2a29d..4eb003b 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007, 2009 +/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -34,8 +34,54 @@ __BEGIN_DECLS #include /* For XPG all symbols from should also be available. */ -#ifdef __USE_XOPEN -# include +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 +# include /* For __mode_t and __dev_t. */ +# define __need_timespec +# include +# include + +# define S_IFMT __S_IFMT +# define S_IFDIR __S_IFDIR +# define S_IFCHR __S_IFCHR +# define S_IFBLK __S_IFBLK +# define S_IFREG __S_IFREG +# ifdef __S_IFIFO +# define S_IFIFO __S_IFIFO +# endif +# ifdef __S_IFLNK +# define S_IFLNK __S_IFLNK +# endif +# if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) && defined __S_IFSOCK +# define S_IFSOCK __S_IFSOCK +# endif + +/* Protection bits. */ + +# define S_ISUID __S_ISUID /* Set user ID on execution. */ +# define S_ISGID __S_ISGID /* Set group ID on execution. */ + +# if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN +/* Save swapped text after use (sticky bit). This is pretty well obsolete. */ +# define S_ISVTX __S_ISVTX +# endif + +# define S_IRUSR __S_IREAD /* Read by owner. */ +# define S_IWUSR __S_IWRITE /* Write by owner. */ +# define S_IXUSR __S_IEXEC /* Execute by owner. */ +/* Read, write, and execute by owner. */ +# define S_IRWXU (__S_IREAD|__S_IWRITE|__S_IEXEC) + +# define S_IRGRP (S_IRUSR >> 3) /* Read by group. */ +# define S_IWGRP (S_IWUSR >> 3) /* Write by group. */ +# define S_IXGRP (S_IXUSR >> 3) /* Execute by group. */ +/* Read, write, and execute by group. */ +# define S_IRWXG (S_IRWXU >> 3) + +# define S_IROTH (S_IRGRP >> 3) /* Read by others. */ +# define S_IWOTH (S_IWGRP >> 3) /* Write by others. */ +# define S_IXOTH (S_IXGRP >> 3) /* Execute by others. */ +/* Read, write, and execute by others. */ +# define S_IRWXO (S_IRWXG >> 3) #endif #ifdef __USE_MISC @@ -49,8 +95,8 @@ __BEGIN_DECLS # endif #endif /* Use misc. */ -/* XPG wants the following symbols. */ -#ifdef __USE_XOPEN /* has the same definitions. */ +/* XPG wants the following symbols. has the same definitions. */ +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 # define SEEK_SET 0 /* Seek from beginning of file. */ # define SEEK_CUR 1 /* Seek from current position. */ # define SEEK_END 2 /* Seek from end of file. */ @@ -116,9 +162,10 @@ extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag, # define openat openat64 # endif # endif - +# ifdef __USE_LARGEFILE64 extern int openat64 (int __fd, __const char *__file, int __oflag, ...) __nonnull ((2)); +# endif #endif /* Create and open FILE, with mode MODE. This takes an `int' MODE diff --git a/locale/C-address.c b/locale/C-address.c index e9e6b1a..0d30052 100644 --- a/locale/C-address.c +++ b/locale/C-address.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.10 "LC_ADDRESS". */ -const struct locale_data _nl_C_LC_ADDRESS attribute_hidden = +const struct __locale_data _nl_C_LC_ADDRESS attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-collate.c b/locale/C-collate.c index cc8c8ee..a7e440f 100644 --- a/locale/C-collate.c +++ b/locale/C-collate.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1997,1999,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,1999,2000,2001,2002,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -98,7 +98,7 @@ static const uint32_t collseqwc[] = L'\xf8', L'\xf9', L'\xfa', L'\xfb', L'\xfc', L'\xfd', L'\xfe', L'\xff' }; -const struct locale_data _nl_C_LC_COLLATE attribute_hidden = +const struct __locale_data _nl_C_LC_COLLATE attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-ctype.c b/locale/C-ctype.c index 420b08a..0eb60d4 100644 --- a/locale/C-ctype.c +++ b/locale/C-ctype.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2002, 2003, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2003, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -538,7 +538,7 @@ _nl_C_LC_CTYPE_width attribute_hidden = NR_FIXED == _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1). */ typedef int assertion1[1 - 2 * (NR_FIXED != _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1))]; -const struct locale_data _nl_C_LC_CTYPE attribute_hidden = +const struct __locale_data _nl_C_LC_CTYPE attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-identification.c b/locale/C-identification.c index 628e8f1..da465d2 100644 --- a/locale/C-identification.c +++ b/locale/C-identification.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.12 "LC_IDENTIFICATION". */ -const struct locale_data _nl_C_LC_IDENTIFICATION attribute_hidden = +const struct __locale_data _nl_C_LC_IDENTIFICATION attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-measurement.c b/locale/C-measurement.c index 796fe29..16e45f6 100644 --- a/locale/C-measurement.c +++ b/locale/C-measurement.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.12 "LC_MEASUREMENT". */ -const struct locale_data _nl_C_LC_MEASUREMENT attribute_hidden = +const struct __locale_data _nl_C_LC_MEASUREMENT attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-messages.c b/locale/C-messages.c index 499d4bf..0d2a05f 100644 --- a/locale/C-messages.c +++ b/locale/C-messages.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,2000,2001,2002,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -24,7 +24,7 @@ The last two fields are a GNU extension. */ -const struct locale_data _nl_C_LC_MESSAGES attribute_hidden = +const struct __locale_data _nl_C_LC_MESSAGES attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-monetary.c b/locale/C-monetary.c index 8cccf96..e18c059 100644 --- a/locale/C-monetary.c +++ b/locale/C-monetary.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1995-1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -28,7 +28,7 @@ static const char not_available[] = "\377"; static const char not_available[] = "\177"; #endif -const struct locale_data _nl_C_LC_MONETARY attribute_hidden = +const struct __locale_data _nl_C_LC_MONETARY attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-name.c b/locale/C-name.c index 65033d6..e59b42f 100644 --- a/locale/C-name.c +++ b/locale/C-name.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.9 "LC_NAME". */ -const struct locale_data _nl_C_LC_NAME attribute_hidden = +const struct __locale_data _nl_C_LC_NAME attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-numeric.c b/locale/C-numeric.c index 377c51c..a16a841 100644 --- a/locale/C-numeric.c +++ b/locale/C-numeric.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,2000,2001,2002,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -21,7 +21,7 @@ /* This table's entries are taken from POSIX.2 Table 2-10 ``LC_NUMERIC Category Definition in the POSIX Locale''. */ -const struct locale_data _nl_C_LC_NUMERIC attribute_hidden = +const struct __locale_data _nl_C_LC_NUMERIC attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-paper.c b/locale/C-paper.c index 74e6401d..2d060ca 100644 --- a/locale/C-paper.c +++ b/locale/C-paper.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.8 "LC_PAPER". */ -const struct locale_data _nl_C_LC_PAPER attribute_hidden = +const struct __locale_data _nl_C_LC_PAPER attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-telephone.c b/locale/C-telephone.c index 561a1ef..5223888 100644 --- a/locale/C-telephone.c +++ b/locale/C-telephone.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.11 "LC_TELEPHONE". */ -const struct locale_data _nl_C_LC_TELEPHONE attribute_hidden = +const struct __locale_data _nl_C_LC_TELEPHONE attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-time.c b/locale/C-time.c index 368ffce..16d387b 100644 --- a/locale/C-time.c +++ b/locale/C-time.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2002, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2004, 2007, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -23,7 +23,7 @@ ``LC_TIME Category Definition in the POSIX Locale'', with additions from ISO 14652, section 4.6. */ -const struct locale_data _nl_C_LC_TIME attribute_hidden = +const struct __locale_data _nl_C_LC_TIME attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/findlocale.c b/locale/findlocale.c index ea24170..6b88c96 100644 --- a/locale/findlocale.c +++ b/locale/findlocale.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2001, 2002, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -33,14 +33,14 @@ #ifdef NL_CURRENT_INDIRECT # define DEFINE_CATEGORY(category, category_name, items, a) \ -extern struct locale_data _nl_C_##category; \ +extern struct __locale_data _nl_C_##category; \ weak_extern (_nl_C_##category) # include "categories.def" # undef DEFINE_CATEGORY /* Array indexed by category of pointers to _nl_C_CATEGORY slots. Elements are zero for categories whose data is never used. */ -struct locale_data *const _nl_C[] attribute_hidden = +struct __locale_data *const _nl_C[] attribute_hidden = { # define DEFINE_CATEGORY(category, category_name, items, a) \ [category] = &_nl_C_##category, @@ -59,7 +59,7 @@ struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST]; const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR; -struct locale_data * +struct __locale_data * internal_function _nl_find_locale (const char *locale_path, size_t locale_path_len, int category, const char **name) @@ -104,7 +104,8 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, but only if there was no LOCPATH environment variable specified. */ if (__builtin_expect (locale_path == NULL, 1)) { - struct locale_data *data = _nl_load_locale_from_archive (category, name); + struct __locale_data *data + = _nl_load_locale_from_archive (category, name); if (__builtin_expect (data != NULL, 1)) return data; @@ -214,12 +215,12 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, [__LC_MEASUREMENT] = _NL_ITEM_INDEX (_NL_MEASUREMENT_CODESET), [__LC_IDENTIFICATION] = _NL_ITEM_INDEX (_NL_IDENTIFICATION_CODESET) }; - const struct locale_data *data; + const struct __locale_data *data; const char *locale_codeset; char *clocale_codeset; char *ccodeset; - data = (const struct locale_data *) locale_file->data; + data = (const struct __locale_data *) locale_file->data; locale_codeset = (const char *) data->values[codeset_idx[category]].string; assert (locale_codeset != NULL); @@ -241,7 +242,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, /* Determine the locale name for which loading succeeded. This information comes from the file name. The form is //LC_foo. We must extract the part. */ - if (((const struct locale_data *) locale_file->data)->name == NULL) + if (((const struct __locale_data *) locale_file->data)->name == NULL) { char *cp, *endp; @@ -249,20 +250,20 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, cp = endp - 1; while (cp[-1] != '/') --cp; - ((struct locale_data *) locale_file->data)->name = __strndup (cp, - endp - cp); + ((struct __locale_data *) locale_file->data)->name + = __strndup (cp, endp - cp); } /* Determine whether the user wants transliteration or not. */ if (modifier != NULL && __strcasecmp (modifier, "TRANSLIT") == 0) - ((struct locale_data *) locale_file->data)->use_translit = 1; + ((struct __locale_data *) locale_file->data)->use_translit = 1; /* Increment the usage count. */ - if (((const struct locale_data *) locale_file->data)->usage_count + if (((const struct __locale_data *) locale_file->data)->usage_count < MAX_USAGE_COUNT) - ++((struct locale_data *) locale_file->data)->usage_count; + ++((struct __locale_data *) locale_file->data)->usage_count; - return (struct locale_data *) locale_file->data; + return (struct __locale_data *) locale_file->data; } @@ -270,7 +271,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, is acquired. */ void internal_function -_nl_remove_locale (int locale, struct locale_data *data) +_nl_remove_locale (int locale, struct __locale_data *data) { if (--data->usage_count == 0) { @@ -281,7 +282,7 @@ _nl_remove_locale (int locale, struct locale_data *data) /* Search for the entry. It must be in the list. Otherwise it is a bug and we crash badly. */ - while ((struct locale_data *) ptr->data != data) + while ((struct __locale_data *) ptr->data != data) ptr = ptr->next; /* Mark the data as not available anymore. So when the data has diff --git a/locale/global-locale.c b/locale/global-locale.c index 771742e..63d1238 100644 --- a/locale/global-locale.c +++ b/locale/global-locale.c @@ -1,5 +1,5 @@ /* Locale object representing the global locale controlled by setlocale. - Copyright (C) 2002, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, 2008, 2010 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 @@ -21,7 +21,7 @@ #include "localeinfo.h" #define DEFINE_CATEGORY(category, category_name, items, a) \ -extern struct locale_data _nl_C_##category; weak_extern (_nl_C_##category) +extern struct __locale_data _nl_C_##category; weak_extern (_nl_C_##category) #include "categories.def" #undef DEFINE_CATEGORY diff --git a/locale/loadarchive.c b/locale/loadarchive.c index d545f17..663202e 100644 --- a/locale/loadarchive.c +++ b/locale/loadarchive.c @@ -1,5 +1,5 @@ /* Code to load locale data from the locale archive file. - Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2005, 2010 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 @@ -85,7 +85,7 @@ struct locale_in_archive { struct locale_in_archive *next; char *name; - struct locale_data *data[__LC_LAST]; + struct __locale_data *data[__LC_LAST]; }; static struct locale_in_archive *archloaded; @@ -129,7 +129,7 @@ calculate_head_size (const struct locarhead *h) already been loaded from the archive, just returns the existing data structure. If successful, sets *NAMEP to point directly into the mapped archive string table; that way, the next call can short-circuit strcmp. */ -struct locale_data * +struct __locale_data * internal_function _nl_load_locale_from_archive (int category, const char **namep) { diff --git a/locale/loadlocale.c b/locale/loadlocale.c index 467dff1..6ef25b0 100644 --- a/locale/loadlocale.c +++ b/locale/loadlocale.c @@ -1,5 +1,5 @@ /* Functions to read locale data files. - Copyright (C) 1996-2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1996-2004, 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -61,7 +61,7 @@ static const enum value_type *const _nl_value_types[] = }; -struct locale_data * +struct __locale_data * internal_function _nl_intern_locale_data (int category, const void *data, size_t datasize) { @@ -71,7 +71,7 @@ _nl_intern_locale_data (int category, const void *data, size_t datasize) unsigned int nstrings; unsigned int strindex[0]; } *const filedata = data; - struct locale_data *newdata; + struct __locale_data *newdata; size_t cnt; if (__builtin_expect (datasize < sizeof *filedata, 0) @@ -166,7 +166,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) int fd; void *filedata; struct stat64 st; - struct locale_data *newdata; + struct __locale_data *newdata; int save_err; int alloc = ld_mapped; @@ -187,7 +187,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) if (__builtin_expect (S_ISDIR (st.st_mode), 0)) { /* LOCALE/LC_foo is a directory; open LOCALE/LC_foo/SYS_LC_foo - instead. */ + instead. */ char *newp; size_t filenamelen; @@ -282,7 +282,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) void internal_function -_nl_unload_locale (struct locale_data *locale) +_nl_unload_locale (struct __locale_data *locale) { if (locale->private.cleanup) (*locale->private.cleanup) (locale); diff --git a/locale/localeinfo.h b/locale/localeinfo.h index 19ea41a..72e9d3a 100644 --- a/locale/localeinfo.h +++ b/locale/localeinfo.h @@ -1,5 +1,5 @@ /* Declarations for internal libc locale interfaces - Copyright (C) 1995-2003, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 1995-2003, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -42,13 +42,13 @@ /* Two special weight constants for the collation data. */ #define IGNORE_CHAR 2 -/* We use a special value for the usage counter in `locale_data' to +/* We use a special value for the usage counter in `__locale_data' to signal that this data must never be removed anymore. */ #define MAX_USAGE_COUNT (UINT_MAX - 1) #define UNDELETABLE UINT_MAX /* Structure describing locale data in core for a category. */ -struct locale_data +struct __locale_data { const char *name; const char *filedata; /* Region mapping the file data. */ @@ -65,7 +65,7 @@ struct locale_data the data. */ struct { - void (*cleanup) (struct locale_data *) internal_function; + void (*cleanup) (struct __locale_data *) internal_function; union { void *data; @@ -145,7 +145,7 @@ struct era_entry }; /* Structure caching computed data about information from LC_TIME. - The `private.time' member of `struct locale_data' points to this. */ + The `private.time' member of `struct __locale_data' points to this. */ struct lc_time_data { struct era_entry *eras; @@ -232,12 +232,12 @@ __libc_tsd_define (extern, __locale_t, LOCALE) and we arrange that linking that module is what brings in all the code associated with this category. */ #define DEFINE_CATEGORY(category, category_name, items, a) \ -extern __thread struct locale_data *const *_nl_current_##category \ +extern __thread struct __locale_data *const *_nl_current_##category \ attribute_hidden attribute_tls_model_ie; #include "categories.def" #undef DEFINE_CATEGORY -/* Return a pointer to the current `struct locale_data' for CATEGORY. */ +/* Return a pointer to the current `struct __locale_data' for CATEGORY. */ #define _NL_CURRENT_DATA(category) (*_nl_current_##category) /* Extract the current CATEGORY locale's string for ITEM. */ @@ -254,7 +254,7 @@ extern __thread struct locale_data *const *_nl_current_##category \ /* This is used in lc-CATEGORY.c to define _nl_current_CATEGORY. */ #define _NL_CURRENT_DEFINE(category) \ - __thread struct locale_data *const *_nl_current_##category \ + __thread struct __locale_data *const *_nl_current_##category \ attribute_hidden = &_nl_global_locale.__locales[category]; \ asm (_NL_CURRENT_DEFINE_STRINGIFY (ASM_GLOBAL_DIRECTIVE) \ " " __SYMBOL_PREFIX "_nl_current_" #category "_used\n" \ @@ -272,7 +272,7 @@ extern __thread struct locale_data *const *_nl_current_##category \ /* All categories are always loaded in the shared library, so there is no point in having lots of separate symbols for linking. */ -/* Return a pointer to the current `struct locale_data' for CATEGORY. */ +/* Return a pointer to the current `struct __locale_data' for CATEGORY. */ # define _NL_CURRENT_DATA(category) \ (_NL_CURRENT_LOCALE->__locales[category]) @@ -304,9 +304,9 @@ extern const char _nl_default_locale_path[] attribute_hidden; those directories are searched for the locale files. If it's null, the locale archive is checked first and then _nl_default_locale_path is searched for locale files. */ -extern struct locale_data *_nl_find_locale (const char *locale_path, - size_t locale_path_len, - int category, const char **name) +extern struct __locale_data *_nl_find_locale (const char *locale_path, + size_t locale_path_len, + int category, const char **name) internal_function attribute_hidden; /* Try to load the file described by FILE. */ @@ -314,11 +314,11 @@ extern void _nl_load_locale (struct loaded_l10nfile *file, int category) internal_function attribute_hidden; /* Free all resource. */ -extern void _nl_unload_locale (struct locale_data *locale) +extern void _nl_unload_locale (struct __locale_data *locale) internal_function attribute_hidden; /* Free the locale and give back all memory if the usage count is one. */ -extern void _nl_remove_locale (int locale, struct locale_data *data) +extern void _nl_remove_locale (int locale, struct __locale_data *data) internal_function attribute_hidden; /* Find the locale *NAMEP in the locale archive, and return the @@ -326,8 +326,8 @@ extern void _nl_remove_locale (int locale, struct locale_data *data) already been loaded from the archive, just returns the existing data structure. If successful, sets *NAMEP to point directly into the mapped archive string table; that way, the next call can short-circuit strcmp. */ -extern struct locale_data *_nl_load_locale_from_archive (int category, - const char **namep) +extern struct __locale_data *_nl_load_locale_from_archive (int category, + const char **namep) internal_function attribute_hidden; /* Subroutine of setlocale's __libc_subfreeres hook. */ @@ -341,42 +341,42 @@ extern void _nl_locale_subfreeres (void) attribute_hidden; and `name' fields uninitialized, for the caller to fill in. If any bogons are detected in the data, this will refuse to intern it, and return a null pointer instead. */ -extern struct locale_data *_nl_intern_locale_data (int category, - const void *data, - size_t datasize) +extern struct __locale_data *_nl_intern_locale_data (int category, + const void *data, + size_t datasize) internal_function attribute_hidden; /* Return `era' entry which corresponds to TP. Used in strftime. */ extern struct era_entry *_nl_get_era_entry (const struct tm *tp, - struct locale_data *lc_time) + struct __locale_data *lc_time) internal_function attribute_hidden; /* Return `era' cnt'th entry . Used in strptime. */ extern struct era_entry *_nl_select_era_entry (int cnt, - struct locale_data *lc_time) - internal_function attribute_hidden; + struct __locale_data *lc_time) + internal_function attribute_hidden; /* Return `alt_digit' which corresponds to NUMBER. Used in strftime. */ extern const char *_nl_get_alt_digit (unsigned int number, - struct locale_data *lc_time) - internal_function attribute_hidden; + struct __locale_data *lc_time) + internal_function attribute_hidden; /* Similar, but now for wide characters. */ extern const wchar_t *_nl_get_walt_digit (unsigned int number, - struct locale_data *lc_time) + struct __locale_data *lc_time) internal_function attribute_hidden; /* Parse string as alternative digit and return numeric value. */ extern int _nl_parse_alt_digit (const char **strp, - struct locale_data *lc_time) + struct __locale_data *lc_time) internal_function attribute_hidden; /* Postload processing. */ extern void _nl_postload_ctype (void); /* Functions used for the `private.cleanup' hook. */ -extern void _nl_cleanup_time (struct locale_data *) +extern void _nl_cleanup_time (struct __locale_data *) internal_function attribute_hidden; diff --git a/locale/nl_langinfo_l.c b/locale/nl_langinfo_l.c index 08e1534..573fed0 100644 --- a/locale/nl_langinfo_l.c +++ b/locale/nl_langinfo_l.c @@ -1,5 +1,5 @@ /* User interface for extracting locale-dependent parameters. - Copyright (C) 1995-1997,1999-2002,2005,2007 Free Software Foundation, Inc. + Copyright (C) 1995-1997,1999-2002,2005,2007,2010 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 @@ -33,7 +33,7 @@ __nl_langinfo_l (item, l) { int category = _NL_ITEM_CATEGORY (item); unsigned int index = _NL_ITEM_INDEX (item); - const struct locale_data *data; + const struct __locale_data *data; if (category < 0 || category == LC_ALL || category >= __LC_LAST) /* Bogus category: bogus item. */ diff --git a/locale/setlocale.c b/locale/setlocale.c index 05a55a9..4ebce78 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006, 2008 +/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006, 2008, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -207,7 +207,7 @@ setname (int category, const char *name) /* Put DATA in *_nl_current[CATEGORY]. */ static inline void -setdata (int category, struct locale_data *data) +setdata (int category, struct __locale_data *data) { if (CATEGORY_USED (category)) { @@ -273,7 +273,7 @@ setlocale (int category, const char *locale) composite locale name. This is a semi-colon separated list of entries of the form `CATEGORY=VALUE'. */ const char *newnames[__LC_LAST]; - struct locale_data *newdata[__LC_LAST]; + struct __locale_data *newdata[__LC_LAST]; /* Set all name pointers to the argument name. */ for (category = 0; category < __LC_LAST; ++category) @@ -400,7 +400,7 @@ setlocale (int category, const char *locale) } else { - struct locale_data *newdata = NULL; + struct __locale_data *newdata = NULL; const char *newname[1] = { locale }; if (CATEGORY_USED (category)) @@ -465,7 +465,7 @@ libc_hidden_def (setlocale) static void __libc_freeres_fn_section free_category (int category, - struct locale_data *here, struct locale_data *c_data) + struct __locale_data *here, struct locale_data *c_data) { struct loaded_l10nfile *runp = _nl_locale_file_list[category]; @@ -481,7 +481,7 @@ free_category (int category, while (runp != NULL) { struct loaded_l10nfile *curr = runp; - struct locale_data *data = (struct locale_data *) runp->data; + struct __locale_data *data = (struct locale_data *) runp->data; if (data != NULL && data != c_data) _nl_unload_locale (data); @@ -502,7 +502,7 @@ _nl_locale_subfreeres (void) # define DEFINE_CATEGORY(category, category_name, items, a) \ if (CATEGORY_USED (category)) \ { \ - extern struct locale_data _nl_C_##category; \ + extern struct __locale_data _nl_C_##category; \ weak_extern (_nl_C_##category) \ free_category (category, *_nl_current_##category, &_nl_C_##category); \ } diff --git a/locale/xlocale.c b/locale/xlocale.c index 4573e6f..f84e73e 100644 --- a/locale/xlocale.c +++ b/locale/xlocale.c @@ -1,5 +1,5 @@ /* C locale object. - Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2005, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -22,7 +22,7 @@ #include "localeinfo.h" #define DEFINE_CATEGORY(category, category_name, items, a) \ -extern struct locale_data _nl_C_##category; +extern struct __locale_data _nl_C_##category; #include "categories.def" #undef DEFINE_CATEGORY diff --git a/locale/xlocale.h b/locale/xlocale.h index e879212..ce54152 100644 --- a/locale/xlocale.h +++ b/locale/xlocale.h @@ -1,5 +1,5 @@ /* Definition of locale datatype. - Copyright (C) 1997,2000,2002,2009 Free Software Foundation, Inc. + Copyright (C) 1997,2000,2002,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -28,7 +28,7 @@ typedef struct __locale_struct { /* Note: LC_ALL is not a valid index into this array. */ - struct locale_data *__locales[13]; /* 13 = __LC_LAST. */ + struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ /* To increase the speed of this solution we add some special members. */ const unsigned short int *__ctype_b; diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 389bed4..afa7790 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2010-01-08 Ulrich Drepper + + * sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration. + 2009-12-18 Thomas Schwinge * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h index d71b4cc..8a946ff 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, 2009 +/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -739,8 +739,8 @@ extern int pthread_mutex_lock (pthread_mutex_t *__mutex) #ifdef __USE_XOPEN2K /* Wait until lock becomes available, or specified time passes. */ extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, - __const struct timespec *__restrict - __abstime) __THROW __nonnull ((1, 2)); + __const struct timespec *__restrict + __abstime) __THROW __nonnull ((1, 2)); #endif /* Unlock a mutex. */ @@ -766,7 +766,7 @@ extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, #ifdef __USE_XOPEN2K8 /* Declare the state protected by MUTEX as consistent. */ -extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) +extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) __THROW __nonnull ((1)); # ifdef __USE_GNU extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) @@ -990,13 +990,13 @@ extern int pthread_condattr_destroy (pthread_condattr_t *__attr) /* Get the process-shared flag of the condition variable attribute ATTR. */ extern int pthread_condattr_getpshared (__const pthread_condattr_t * - __restrict __attr, - int *__restrict __pshared) + __restrict __attr, + int *__restrict __pshared) __THROW __nonnull ((1, 2)); /* Set the process-shared flag of the condition variable attribute ATTR. */ extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, - int __pshared) __THROW __nonnull ((1)); + int __pshared) __THROW __nonnull ((1)); #ifdef __USE_XOPEN2K /* Get the clock selected for the conditon variable attribute ATTR. */ @@ -1071,7 +1071,7 @@ extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * /* Set the process-shared flag of the barrier attribute ATTR. */ extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, - int __pshared) + int __pshared) __THROW __nonnull ((1)); #endif diff --git a/posix/confstr.c b/posix/confstr.c index 9aa4b5a..5553f4b 100644 --- a/posix/confstr.c +++ b/posix/confstr.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,1996,1997,2000-2004,2009 Free Software Foundation, Inc. +/* Copyright (C) 1991,1996,1997,2000-2004,2009,2010 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 @@ -58,52 +59,52 @@ confstr (name, buf, len) string_len = 0; #ifndef _POSIX_V7_ILP32_OFF32 - if (__sysconf (_SC_V7_ILP32_OFF32) > 0) + if (__sysconf (_SC_V7_ILP32_OFF32) > 0) #endif #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0 - { - memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", - sizeof "POSIX_V7_ILP32_OFF32" - 1); - string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; - } + { + memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", + sizeof "POSIX_V7_ILP32_OFF32" - 1); + string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; + } #endif #ifndef _POSIX_V7_ILP32_OFFBIG - if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) + if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) #endif #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", - sizeof "POSIX_V7_ILP32_OFFBIG" - 1); - string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; - } + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", + sizeof "POSIX_V7_ILP32_OFFBIG" - 1); + string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; + } #endif #ifndef _POSIX_V7_LP64_OFF64 - if (__sysconf (_SC_V7_LP64_OFF64) > 0) + if (__sysconf (_SC_V7_LP64_OFF64) > 0) #endif #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", - sizeof "POSIX_V7_LP64_OFF64" - 1); - string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; - } + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", + sizeof "POSIX_V7_LP64_OFF64" - 1); + string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; + } #endif #ifndef _POSIX_V7_LPBIG_OFFBIG - if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) + if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) #endif #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", - sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); - string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; - } -#endif - restenvs[string_len++] = '\0'; + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", + sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); + string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; + } +#endif + restenvs[string_len++] = '\0'; string = restenvs; } break; @@ -121,52 +122,52 @@ confstr (name, buf, len) string_len = 0; #ifndef _POSIX_V6_ILP32_OFF32 - if (__sysconf (_SC_V6_ILP32_OFF32) > 0) + if (__sysconf (_SC_V6_ILP32_OFF32) > 0) #endif #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0 - { - memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", - sizeof "POSIX_V6_ILP32_OFF32" - 1); - string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; - } + { + memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", + sizeof "POSIX_V6_ILP32_OFF32" - 1); + string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; + } #endif #ifndef _POSIX_V6_ILP32_OFFBIG - if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) + if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) #endif #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", - sizeof "POSIX_V6_ILP32_OFFBIG" - 1); - string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; - } + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", + sizeof "POSIX_V6_ILP32_OFFBIG" - 1); + string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; + } #endif #ifndef _POSIX_V6_LP64_OFF64 - if (__sysconf (_SC_V6_LP64_OFF64) > 0) + if (__sysconf (_SC_V6_LP64_OFF64) > 0) #endif #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", - sizeof "POSIX_V6_LP64_OFF64" - 1); - string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; - } + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", + sizeof "POSIX_V6_LP64_OFF64" - 1); + string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; + } #endif #ifndef _POSIX_V6_LPBIG_OFFBIG - if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) + if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) #endif #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", - sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); - string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; - } -#endif - restenvs[string_len++] = '\0'; + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", + sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); + string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; + } +#endif + restenvs[string_len++] = '\0'; string = restenvs; } break; @@ -184,52 +185,52 @@ confstr (name, buf, len) string_len = 0; #ifndef _XBS5_ILP32_OFF32 - if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) + if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) #endif #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0 - { - memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", - sizeof "XBS5_ILP32_OFF32" - 1); - string_len += sizeof "XBS5_ILP32_OFF32" - 1; - } + { + memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", + sizeof "XBS5_ILP32_OFF32" - 1); + string_len += sizeof "XBS5_ILP32_OFF32" - 1; + } #endif #ifndef _XBS5_ILP32_OFFBIG - if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) + if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) #endif #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", - sizeof "XBS5_ILP32_OFFBIG" - 1); - string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; - } + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", + sizeof "XBS5_ILP32_OFFBIG" - 1); + string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; + } #endif #ifndef _XBS5_LP64_OFF64 - if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) + if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) #endif #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "XBS5_LP64_OFF64", - sizeof "XBS5_LP64_OFF64" - 1); - string_len += sizeof "XBS5_LP64_OFF64" - 1; - } + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "XBS5_LP64_OFF64", + sizeof "XBS5_LP64_OFF64" - 1); + string_len += sizeof "XBS5_LP64_OFF64" - 1; + } #endif #ifndef _XBS5_LPBIG_OFFBIG - if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) + if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) #endif #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0 - { - if (string_len) - restenvs[string_len++] = '\n'; - memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", - sizeof "XBS5_LPBIG_OFFBIG" - 1); - string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; - } -#endif - restenvs[string_len++] = '\0'; + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", + sizeof "XBS5_LPBIG_OFFBIG" - 1); + string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; + } +#endif + restenvs[string_len++] = '\0'; string = restenvs; } break; @@ -242,7 +243,7 @@ confstr (name, buf, len) # error "__ILP32_OFF32_CFLAGS should not be defined" # elif !defined _POSIX_V7_ILP32_OFF32 if (__sysconf (_SC_V7_ILP32_OFF32) < 0) - break; + break; # endif string = __ILP32_OFF32_CFLAGS; string_len = sizeof (__ILP32_OFF32_CFLAGS); @@ -257,7 +258,7 @@ confstr (name, buf, len) # error "__ILP32_OFFBIG_CFLAGS should not be defined" # elif !defined _POSIX_V7_ILP32_OFFBIG if (__sysconf (_SC_V7_ILP32_OFFBIG) < 0) - break; + break; # endif string = __ILP32_OFFBIG_CFLAGS; string_len = sizeof (__ILP32_OFFBIG_CFLAGS); @@ -272,7 +273,7 @@ confstr (name, buf, len) # error "__LP64_OFF64_CFLAGS should not be defined" # elif !defined _POSIX_V7_LP64_OFF64 if (__sysconf (_SC_V7_LP64_OFF64) < 0) - break; + break; # endif string = __LP64_OFF64_CFLAGS; string_len = sizeof (__LP64_OFF64_CFLAGS); @@ -287,7 +288,7 @@ confstr (name, buf, len) # error "__ILP32_OFF32_LDFLAGS should not be defined" # elif !defined _POSIX_V7_ILP32_OFF32 if (__sysconf (_SC_V7_ILP32_OFF32) < 0) - break; + break; # endif string = __ILP32_OFF32_LDFLAGS; string_len = sizeof (__ILP32_OFF32_LDFLAGS); @@ -302,7 +303,7 @@ confstr (name, buf, len) # error "__ILP32_OFFBIG_LDFLAGS should not be defined" # elif !defined _POSIX_V7_ILP32_OFFBIG if (__sysconf (_SC_V7_ILP32_OFFBIG) < 0) - break; + break; # endif string = __ILP32_OFFBIG_LDFLAGS; string_len = sizeof (__ILP32_OFFBIG_LDFLAGS); @@ -317,7 +318,7 @@ confstr (name, buf, len) # error "__LP64_OFF64_LDFLAGS should not be defined" # elif !defined _POSIX_V7_LP64_OFF64 if (__sysconf (_SC_V7_LP64_OFF64) < 0) - break; + break; # endif string = __LP64_OFF64_LDFLAGS; string_len = sizeof (__LP64_OFF64_LDFLAGS); @@ -402,6 +403,13 @@ confstr (name, buf, len) return 0; #endif + case _CS_V6_ENV: + case _CS_V7_ENV: + /* Maybe something else is needed in future. */ + string = "POSIXLY_CORRECT=1"; + string_len = sizeof ("POSIXLY_CORRECT=1"); + break; + default: __set_errno (EINVAL); return 0; diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index a03e19c..7356eeb 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1991-2006, 2007, 2010 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 @@ -216,7 +216,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, int errval = 0; #ifndef COMPILE_WSCANF __locale_t loc = _NL_CURRENT_LOCALE; - struct locale_data *const curctype = loc->__locales[LC_CTYPE]; + struct __locale_data *const curctype = loc->__locales[LC_CTYPE]; #endif /* Errno of last failed inchar call. */ @@ -294,7 +294,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, { #ifndef COMPILE_WSCANF - struct locale_data *const curnumeric = loc->__locales[LC_NUMERIC]; + struct __locale_data *const curnumeric = loc->__locales[LC_NUMERIC]; #endif /* Figure out the decimal point character. */ @@ -1389,7 +1389,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, { #ifdef COMPILE_WSCANF wcdigits[n] = (const wchar_t *) - _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n); + _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n); wchar_t *wc_extended = (wchar_t *) alloca ((to_level + 2) * sizeof (wchar_t)); @@ -1399,7 +1399,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, wcdigits_extended[n] = wc_extended; #else mbdigits[n] - = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string; + = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string; /* Get the equivalent wide char in map. */ wint_t extra_wcdigit = __towctrans (L'0' + n, map); @@ -2047,9 +2047,9 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, wcdigits[11] = __towctrans (L'.', map); /* If we have not read any character or have just read - locale decimal point which matches the decimal point - for localized FP numbers, then we may have localized - digits. Note, we test GOT_DOT above. */ + locale decimal point which matches the decimal point + for localized FP numbers, then we may have localized + digits. Note, we test GOT_DOT above. */ #ifdef COMPILE_WSCANF if (wpsize == 0 || (wpsize == 1 && wcdigits[11] == decimal)) #else @@ -2086,7 +2086,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, bool have_locthousands = (flags & GROUP) != 0; /* Now get the digits and the thousands-sep equivalents. */ - for (int n = 0; n < 11; ++n) + for (int n = 0; n < 11; ++n) { if (n < 10) wcdigits[n] = __towctrans (L'0' + n, map); @@ -2385,7 +2385,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, if (wc <= runp[1] && not_in) { /* The current character is not in the - scanset. */ + scanset. */ ungetc (c, s); goto out; } @@ -2611,7 +2611,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, if (wc <= runp[1] && not_in) { /* The current character is not in the - scanset. */ + scanset. */ ungetc (c, s); goto out2; } diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index dc51d67..8669f35 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1991-2007, 2009, 2010 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 @@ -37,7 +37,7 @@ __BEGIN_DECLS #ifndef __need_malloc_and_calloc #define _STDLIB_H 1 -#if defined __USE_XOPEN && !defined _SYS_WAIT_H +#if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H /* XPG requires a few symbols from being defined. */ # include # include @@ -91,7 +91,7 @@ typedef union # ifdef __WIFCONTINUED # define WIFCONTINUED(status) __WIFCONTINUED (__WAIT_INT (status)) # endif -#endif /* X/Open and not included. */ +#endif /* X/Open or XPG7 and not included. */ __BEGIN_NAMESPACE_STD /* Returned by `div'. */ @@ -497,7 +497,8 @@ extern void cfree (void *__ptr) __THROW; # include #endif /* Use GNU, BSD, or misc. */ -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED +#if (defined __USE_BSD || defined __USE_XOPEN_EXTENDED) \ + && !defined __USE_XOPEN2K /* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */ extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur; #endif @@ -596,13 +597,17 @@ extern int clearenv (void) __THROW; #endif -#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +#if (defined __USE_MISC || defined __USE_XOPEN_EXTENDED) \ + && !defined __USE_XOPEN2K /* Generate a unique temporary file name from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique file name. */ extern char *mktemp (char *__template) __THROW __nonnull ((1)) __wur; +#endif +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED \ + || defined __USE_XOPEN2K8 /* Generate a unique temporary file name from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the filename unique. @@ -792,7 +797,8 @@ __END_NAMESPACE_C99 #endif -#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED +#if (defined __USE_SVID || defined __USE_XOPEN_EXTENDED) \ + && !defined __USE_XOPEN2K /* Convert floating point numbers to strings. The returned values are valid only until another call to the same function. */ @@ -880,7 +886,7 @@ extern int rpmatch (__const char *__response) __THROW __nonnull ((1)) __wur; #endif -#ifdef __USE_XOPEN_EXTENDED +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 /* Parse comma separated suboption from *OPTIONP and match against strings in TOKENS. If found return index and set *VALUEP to optional value introduced by an equal sign. If the suboption is @@ -902,7 +908,7 @@ extern void setkey (__const char *__key) __THROW __nonnull ((1)); /* X/Open pseudo terminal handling. */ -#ifdef __USE_XOPEN2K +#ifdef __USE_XOPEN2KXSI /* Return a master pseudo-terminal handle. */ extern int posix_openpt (int __oflag) __wur; #endif diff --git a/stdlib/strfmon_l.c b/stdlib/strfmon_l.c index eb7a178..7642753 100644 --- a/stdlib/strfmon_l.c +++ b/stdlib/strfmon_l.c @@ -1,5 +1,5 @@ /* Formatting a monetary value according to the given locale. - Copyright (C) 1996,1997,2002,2004,2006,2009 Free Software Foundation, Inc. + Copyright (C) 1996,1997,2002,2004,2006,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -88,7 +88,7 @@ ssize_t __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, va_list ap) { - struct locale_data *current = loc->__locales[LC_MONETARY]; + struct __locale_data *current = loc->__locales[LC_MONETARY]; _IO_strfile f; struct printf_info info; char *dest; /* Pointer so copy the output. */ diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c index 9ddfa3f..cde1280 100644 --- a/stdlib/strtod_l.c +++ b/stdlib/strtod_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to float value, using given locale. - Copyright (C) 1997,1998,2002,2004,2005,2006,2007,2008,2009 + Copyright (C) 1997,1998,2002,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -214,15 +214,15 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, != 0); (void) __mpn_rshift (retval, &retval[shift / BITS_PER_MP_LIMB], - RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB), - shift % BITS_PER_MP_LIMB); - MPN_ZERO (&retval[RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB)], - shift / BITS_PER_MP_LIMB); + RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB), + shift % BITS_PER_MP_LIMB); + MPN_ZERO (&retval[RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB)], + shift / BITS_PER_MP_LIMB); } else if (shift > 0) { - round_limb = retval[0]; - round_bit = shift - 1; + round_limb = retval[0]; + round_bit = shift - 1; (void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, shift); } /* This is a hook for the m68k long double format, where the @@ -237,14 +237,14 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, if ((round_limb & (((mp_limb_t) 1) << round_bit)) != 0 && (more_bits || (retval[0] & 1) != 0 - || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) + || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) { mp_limb_t cy = __mpn_add_1 (retval, retval, RETURN_LIMB_SIZE, 1); if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy) || - ((MANT_DIG % BITS_PER_MP_LIMB) != 0 && - (retval[RETURN_LIMB_SIZE - 1] - & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0)) + ((MANT_DIG % BITS_PER_MP_LIMB) != 0 && + (retval[RETURN_LIMB_SIZE - 1] + & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0)) { ++exponent; (void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, 1); @@ -465,7 +465,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) /* Used in several places. */ int cnt; - struct locale_data *current = loc->__locales[LC_NUMERIC]; + struct __locale_data *current = loc->__locales[LC_NUMERIC]; if (__builtin_expect (group, 0)) { @@ -738,7 +738,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) grouping); #endif if (cp != tp) - { + { /* Less than the entire string was correctly grouped. */ if (tp == start_of_digits) @@ -1113,14 +1113,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) memcpy (retval, &num[least_idx], RETURN_LIMB_SIZE * sizeof (mp_limb_t)); else - { - for (i = least_idx; i < numsize - 1; ++i) - retval[i - least_idx] = (num[i] >> least_bit) - | (num[i + 1] - << (BITS_PER_MP_LIMB - least_bit)); - if (i - least_idx < RETURN_LIMB_SIZE) - retval[RETURN_LIMB_SIZE - 1] = num[i] >> least_bit; - } + { + for (i = least_idx; i < numsize - 1; ++i) + retval[i - least_idx] = (num[i] >> least_bit) + | (num[i + 1] + << (BITS_PER_MP_LIMB - least_bit)); + if (i - least_idx < RETURN_LIMB_SIZE) + retval[RETURN_LIMB_SIZE - 1] = num[i] >> least_bit; + } /* Check whether any limb beside the ones in RETVAL are non-zero. */ for (i = 0; num[i] == 0; ++i) @@ -1174,7 +1174,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) #if RETURN_LIMB_SIZE > 1 if (numsize < RETURN_LIMB_SIZE) # if RETURN_LIMB_SIZE == 2 - retval[numsize] = 0; + retval[numsize] = 0; # else MPN_ZERO (retval + numsize, RETURN_LIMB_SIZE - numsize); # endif @@ -1201,14 +1201,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) /* For the fractional part we need not process too many digits. One decimal digits gives us log_2(10) ~ 3.32 bits. If we now compute - ceil(BITS / 3) =: N + ceil(BITS / 3) =: N digits we should have enough bits for the result. The remaining decimal digits give us the information that more bits are following. This can be used while rounding. (Two added as a safety margin.) */ if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2) { - dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; - more_bits = 1; + dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; + more_bits = 1; } else more_bits = 0; @@ -1264,9 +1264,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) digits. This is done by a "quasi fix point" number representation. num: ddddddddddd . 0000000000000000000000 - |--- m ---| + |--- m ---| den: ddddddddddd n >= m - |--- n ---| + |--- n ---| */ count_leading_zeros (cnt, den[densize - 1]); diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c index ba0aba7..9181bf1 100644 --- a/stdlib/strtol_l.c +++ b/stdlib/strtol_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to integer value, using given locale. - Copyright (C) 1997, 2002, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1997, 2002, 2004, 2006, 2007, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -243,7 +243,7 @@ INTERNAL (__strtol_l) (nptr, endptr, base, group, loc) #endif #ifdef USE_NUMBER_GROUPING - struct locale_data *current = loc->__locales[LC_NUMERIC]; + struct __locale_data *current = loc->__locales[LC_NUMERIC]; /* The thousands character of the current locale. */ # ifdef USE_WIDE_CHAR wchar_t thousands = L'\0'; diff --git a/string/strcoll_l.c b/string/strcoll_l.c index 8bd84b1..d8d1139 100644 --- a/string/strcoll_l.c +++ b/string/strcoll_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,96,97,2002, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,2002,2004,2007,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper , 1995. @@ -48,7 +48,7 @@ STRCOLL (s1, s2, l) const STRING_TYPE *s2; __locale_t l; { - struct locale_data *current = l->__locales[LC_COLLATE]; + struct __locale_data *current = l->__locales[LC_COLLATE]; uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; /* We don't assign the following values right away since it might be unnecessary in case there are no rules. */ diff --git a/string/string.h b/string/string.h index 3c76009..3884021 100644 --- a/string/string.h +++ b/string/string.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1991-1993,1995-2004,2007,2009 Free Software Foundation, Inc. +/* Copyright (C) 1991-1993,1995-2004,2007,2009,2010 + 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 @@ -168,7 +169,8 @@ extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) __THROW __nonnull ((2, 4)); #endif -#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED +#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED \ + || defined __USE_XOPEN2K8 /* Duplicate S, returning an identical malloc'd string. */ extern char *strdup (__const char *__s) __THROW __attribute_malloc__ __nonnull ((1)); diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c index 20f2f14..351b426 100644 --- a/string/strxfrm_l.c +++ b/string/strxfrm_l.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 2002, 2004, 2005, 2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,2002,2004-2006,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper , 1995. @@ -86,7 +85,7 @@ utf8_encode (char *buf, int val) size_t STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) { - struct locale_data *current = l->__locales[LC_COLLATE]; + struct __locale_data *current = l->__locales[LC_COLLATE]; uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; /* We don't assign the following values right away since it might be unnecessary in case there are no rules. */ @@ -137,7 +136,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) if (srclen == 0) { if (n != 0) - *dest = L('\0'); + *dest = L('\0'); return 0; } diff --git a/sysdeps/mach/hurd/bits/stat.h b/sysdeps/mach/hurd/bits/stat.h index c3f9666..3770f07 100644 --- a/sysdeps/mach/hurd/bits/stat.h +++ b/sysdeps/mach/hurd/bits/stat.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1992,93,94,96,97,99,2000,2005 Free Software Foundation, Inc. +/* Copyright (C) 1992-1994,1996,1997,1999,2000,2005,2010 + 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 @@ -16,7 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/bsd/bits/stat.h b/sysdeps/unix/bsd/bits/stat.h index 84a58ff..16e5c52 100644 --- a/sysdeps/unix/bsd/bits/stat.h +++ b/sysdeps/unix/bsd/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 96, 97, 99, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1996-2000,2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/bits/stat.h b/sysdeps/unix/sysv/bits/stat.h index f9a9e61..a860b9f 100644 --- a/sysdeps/unix/sysv/bits/stat.h +++ b/sysdeps/unix/sysv/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1996, 1997, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1996, 1997, 2000, 2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/bits/stat.h b/sysdeps/unix/sysv/linux/bits/stat.h index be52723..e3f1970 100644 --- a/sysdeps/unix/sysv/linux/bits/stat.h +++ b/sysdeps/unix/sysv/linux/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995-2001, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995-2002, 2009, 2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h index 8eaf7c3..6693889 100644 --- a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006, 2007, 2009 + Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -45,13 +45,15 @@ #define O_FSYNC O_SYNC #define O_ASYNC 020000 -#ifdef __USE_GNU -# define O_DIRECT 040000 /* Direct disk access. */ +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 0200000 /* Must be a directory. */ # define O_NOFOLLOW 0400000 /* Do not follow links. */ -# define O_NOATIME 01000000 /* Do not set atime. */ # define O_CLOEXEC 02000000 /* Set close_on_exec. */ #endif +#ifdef __USE_GNU +# define O_DIRECT 040000 /* Direct disk access. */ +# define O_NOATIME 01000000 /* Do not set atime. */ +#endif /* For now Linux has synchronisity options for data and read operations. We define the symbols here but let them do the same as O_SYNC since @@ -84,7 +86,7 @@ #define F_SETLK64 13 /* Set record locking info (non-blocking). */ #define F_SETLKW64 14 /* Set record locking info (blocking). */ -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ # define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ #endif @@ -100,6 +102,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h index c65a11e..33635fd 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h @@ -1,5 +1,6 @@ /* O_*, F_*, FD_* bit values for Linux/IA64. - Copyright (C) 1999,2000,2004,2006,2007,2009 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2004, 2006, 2007, 2009, 2010 + 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 @@ -44,13 +45,15 @@ #define O_FSYNC O_SYNC #define O_ASYNC 020000 -#ifdef __USE_GNU -# define O_DIRECT 040000 +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 0200000 /* must be a directory */ # define O_NOFOLLOW 0400000 /* don't follow links */ -# define O_NOATIME 01000000 /* Do not set atime. */ # define O_CLOEXEC 02000000 /* Set close_on_exec. */ #endif +#ifdef __USE_GNU +# define O_DIRECT 040000 +# define O_NOATIME 01000000 /* Do not set atime. */ +#endif #ifdef __USE_LARGEFILE64 /* Not necessary, files are always with 64bit off_t. */ @@ -80,7 +83,7 @@ #define F_SETLK64 6 /* Set record locking info (non-blocking). */ #define F_SETLKW64 7 /* Set record locking info (blocking). */ -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ # define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ #endif @@ -96,6 +99,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/ia64/bits/stat.h b/sysdeps/unix/sysv/linux/ia64/bits/stat.h index 75a3318..98dadf9 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/stat.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1999-2002, 2009, 2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h index 40fe1e5..fea347b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux/PowerPC. - Copyright (C) 1995, 1996, 1997, 1998, 2000, 2003, 2004, 2006, 2007, 2009 + Copyright (C) 1995-1998, 2000, 2003, 2004, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -45,13 +45,15 @@ #define O_FSYNC O_SYNC #define O_ASYNC 020000 -#ifdef __USE_GNU -# define O_DIRECT 0400000 /* Direct disk access. */ +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 040000 /* Must be a directory. */ # define O_NOFOLLOW 0100000 /* Do not follow links. */ -# define O_NOATIME 01000000 /* Do not set atime. */ # define O_CLOEXEC 02000000 /* Set close_on_exec. */ #endif +#ifdef __USE_GNU +# define O_DIRECT 0400000 /* Direct disk access. */ +# define O_NOATIME 01000000 /* Do not set atime. */ +#endif #ifdef __USE_LARGEFILE64 # define O_LARGEFILE 0200000 @@ -84,7 +86,7 @@ #define F_SETLK64 13 /* Set record locking info (non-blocking). */ #define F_SETLKW64 14 /* Set record locking info (blocking). */ -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ # define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ #endif @@ -100,6 +102,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h index 81879ca..9027376 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2009 +/* Copyright (C) 1992, 1995-2002, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -17,7 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h index c9e6a45..aeb1e0f 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h @@ -1,5 +1,6 @@ /* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 2000,2001,2002,2004,2006,2007,2009 Free Software Foundation, Inc. + Copyright (C) 2000-2002,2004,2006,2007,2009,2010 + 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 @@ -45,13 +46,15 @@ #define O_FSYNC O_SYNC #define O_ASYNC 020000 -#ifdef __USE_GNU -# define O_DIRECT 040000 /* Direct disk access. */ +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 0200000 /* Must be a directory. */ # define O_NOFOLLOW 0400000 /* Do not follow links. */ -# define O_NOATIME 01000000 /* Do not set atime. */ # define O_CLOEXEC 02000000 /* Set close_on_exec. */ #endif +#ifdef __USE_GNU +# define O_DIRECT 040000 /* Direct disk access. */ +# define O_NOATIME 01000000 /* Do not set atime. */ +#endif #ifdef __USE_LARGEFILE64 # if __WORDSIZE == 64 @@ -99,7 +102,7 @@ # define F_SETLKW64 14 /* Set record locking info (blocking). */ #endif -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ # define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ #endif @@ -115,6 +118,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/s390/bits/stat.h b/sysdeps/unix/sysv/linux/s390/bits/stat.h index 64be9a1..2cd5396 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/stat.h +++ b/sysdeps/unix/sysv/linux/s390/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2001, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2002, 2009, 2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h index 8eaf7c3..2a4123c 100644 --- a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006, 2007, 2009 + Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -45,14 +45,17 @@ #define O_FSYNC O_SYNC #define O_ASYNC 020000 -#ifdef __USE_GNU -# define O_DIRECT 040000 /* Direct disk access. */ +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 0200000 /* Must be a directory. */ # define O_NOFOLLOW 0400000 /* Do not follow links. */ -# define O_NOATIME 01000000 /* Do not set atime. */ # define O_CLOEXEC 02000000 /* Set close_on_exec. */ #endif +#ifdef __USE_GNU +# define O_DIRECT 040000 /* Direct disk access. */ +# define O_NOATIME 01000000 /* Do not set atime. */ +#endif + /* For now Linux has synchronisity options for data and read operations. We define the symbols here but let them do the same as O_SYNC since this is a superset. */ @@ -84,7 +87,7 @@ #define F_SETLK64 13 /* Set record locking info (non-blocking). */ #define F_SETLKW64 14 /* Set record locking info (blocking). */ -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ # define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ #endif @@ -100,6 +103,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h index 03c5ba5..c491a41 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux/SPARC. - Copyright (C) 1995, 1996, 1997, 1998, 2000, 2003, 2004, 2006, 2007, 2009 + Copyright (C) 1995-1998, 2000, 2003, 2004, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -44,12 +44,14 @@ #define O_NDELAY (0x0004 | O_NONBLOCK) #define O_NOCTTY 0x8000 /* not fcntl */ -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 0x10000 /* must be a directory */ # define O_NOFOLLOW 0x20000 /* don't follow links */ +# define O_CLOEXEC 0x400000 /* Set close_on_exit. */ +#endif +#ifdef __USE_GNU # define O_DIRECT 0x100000 /* direct disk access hint */ # define O_NOATIME 0x200000 /* Do not set atime. */ -# define O_CLOEXEC 0x400000 /* Set close_on_exit. */ #endif #ifdef __USE_LARGEFILE64 @@ -82,7 +84,7 @@ #define F_SETFD 2 /* Set file descriptor flags. */ #define F_GETFL 3 /* Get file status flags. */ #define F_SETFL 4 /* Set file status flags. */ -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_GETOWN 5 /* Get owner (process receiving SIGIO). */ # define F_SETOWN 6 /* Set owner (process receiving SIGIO). */ #endif @@ -107,6 +109,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/sparc/bits/stat.h b/sysdeps/unix/sysv/linux/sparc/bits/stat.h index 175fdb8..407ca2d 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/stat.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995-2002, 2006, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1992,1995-2002,2006,2009,2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h b/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h index 4383508..aa04e0e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h @@ -1,5 +1,6 @@ /* O_*, F_*, FD_* bit values for Linux/x86-64. - Copyright (C) 2001,2002,2004,2006,2007,2009 Free Software Foundation, Inc. + Copyright (C) 2001,2002,2004,2006,2007,2009,2010 + 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 @@ -45,13 +46,15 @@ #define O_FSYNC O_SYNC #define O_ASYNC 020000 -#ifdef __USE_GNU -# define O_DIRECT 040000 /* Direct disk access. */ +#ifdef __USE_XOPEN2K8 # define O_DIRECTORY 0200000 /* Must be a directory. */ # define O_NOFOLLOW 0400000 /* Do not follow links. */ -# define O_NOATIME 01000000 /* Do not set atime. */ # define O_CLOEXEC 02000000 /* Set close_on_exec. */ #endif +#ifdef __USE_GNU +# define O_DIRECT 040000 /* Direct disk access. */ +# define O_NOATIME 01000000 /* Do not set atime. */ +#endif /* For now Linux has synchronisity options for data and read operations. We define the symbols here but let them do the same as O_SYNC since @@ -98,7 +101,7 @@ # define F_SETLKW64 14 /* Set record locking info (blocking). */ #endif -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 # define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ # define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ #endif @@ -114,6 +117,8 @@ # define F_SETLEASE 1024 /* Set a lease. */ # define F_GETLEASE 1025 /* Enquire what lease is active. */ # define F_NOTIFY 1026 /* Request notfications on a directory. */ +#endif +#ifdef __USE_XOPEN2K8 # define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with close-on-exit set. */ #endif diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h index 9d12315..cfc3f66 100644 --- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h +++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999,2000,2001,2002,2003,2009 Free Software Foundation, Inc. +/* Copyright (C) 1999-2003,2009,2010 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 @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/time/alt_digit.c b/time/alt_digit.c index 95e4f07..9238911 100644 --- a/time/alt_digit.c +++ b/time/alt_digit.c @@ -1,5 +1,5 @@ /* Helper functions used by strftime/strptime to handle alternate digits. - Copyright (C) 1995-2002, 2008 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2008, 2010 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 @@ -31,7 +31,7 @@ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) ((wchar_t *) current->values[_NL_ITEM_INDEX (item)].wstr) static void -_nl_init_alt_digit (struct locale_data *current) +_nl_init_alt_digit (struct __locale_data *current) { struct lc_time_data *data; @@ -70,7 +70,7 @@ _nl_init_alt_digit (struct locale_data *current) const char * internal_function -_nl_get_alt_digit (unsigned int number, struct locale_data *current) +_nl_get_alt_digit (unsigned int number, struct __locale_data *current) { const char *result; @@ -96,7 +96,7 @@ _nl_get_alt_digit (unsigned int number, struct locale_data *current) const wchar_t * internal_function -_nl_get_walt_digit (unsigned int number, struct locale_data *current) +_nl_get_walt_digit (unsigned int number, struct __locale_data *current) { const wchar_t *result = NULL; struct lc_time_data *data; @@ -149,7 +149,7 @@ _nl_get_walt_digit (unsigned int number, struct locale_data *current) int internal_function -_nl_parse_alt_digit (const char **strp, struct locale_data *current) +_nl_parse_alt_digit (const char **strp, struct __locale_data *current) { const char *str = *strp; int result = -1; diff --git a/time/asctime.c b/time/asctime.c index dc4fd54..8cf266a 100644 --- a/time/asctime.c +++ b/time/asctime.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1993,1995-1997,2000,2002,2005 +/* Copyright (C) 1991,1993,1995-1997,2000,2002,2005,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -24,12 +24,12 @@ #include /* This is defined in locale/C-time.c in the GNU libc. */ -extern const struct locale_data _nl_C_LC_TIME attribute_hidden; +extern const struct __locale_data _nl_C_LC_TIME attribute_hidden; #define ab_day_name(DAY) (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABDAY_1)+(DAY)].string) #define ab_month_name(MON) (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)+(MON)].string) static const char format[] = "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n"; -static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1]; +static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1]; static char * diff --git a/time/era.c b/time/era.c index a6f4a4c..6630747 100644 --- a/time/era.c +++ b/time/era.c @@ -1,5 +1,5 @@ /* Helper functions used by strftime/strptime to handle locale-specific "eras". - Copyright (C) 1995-2002, 2008 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2008, 2010 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 @@ -36,7 +36,7 @@ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) /* Look up the era information in CURRENT's locale strings and cache it in CURRENT->private. */ static void internal_function -_nl_init_era_entries (struct locale_data *current) +_nl_init_era_entries (struct __locale_data *current) { size_t cnt; struct lc_time_data *data; @@ -83,7 +83,7 @@ _nl_init_era_entries (struct locale_data *current) data->num_eras = 0; data->eras = NULL; } - else + else { const char *ptr = CURRENT (_NL_TIME_ERA_ENTRIES); data->num_eras = new_num_eras; @@ -140,7 +140,7 @@ _nl_init_era_entries (struct locale_data *current) struct era_entry * internal_function -_nl_get_era_entry (const struct tm *tp, struct locale_data *current) +_nl_get_era_entry (const struct tm *tp, struct __locale_data *current) { if (current->private.time == NULL || !current->private.time->era_initialized) _nl_init_era_entries (current); @@ -167,7 +167,7 @@ _nl_get_era_entry (const struct tm *tp, struct locale_data *current) struct era_entry * internal_function -_nl_select_era_entry (int cnt, struct locale_data *current) +_nl_select_era_entry (int cnt, struct __locale_data *current) { if (current->private.time == NULL || !current->private.time->era_initialized) _nl_init_era_entries (current); diff --git a/time/lc-time-cleanup.c b/time/lc-time-cleanup.c index 6777f48..aa91e3e 100644 --- a/time/lc-time-cleanup.c +++ b/time/lc-time-cleanup.c @@ -1,5 +1,5 @@ /* Cleanup code for data structures kept by strftime/strptime helper functions. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2010 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 @@ -21,7 +21,7 @@ #include void internal_function -_nl_cleanup_time (struct locale_data *locale) +_nl_cleanup_time (struct __locale_data *locale) { struct lc_time_data *const data = locale->private.time; if (data != NULL) diff --git a/time/strftime_l.c b/time/strftime_l.c index deb75c8..08c2aeb 100644 --- a/time/strftime_l.c +++ b/time/strftime_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004, 2007, 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2004, 2007-2009, 2010 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 @@ -502,7 +502,7 @@ __strftime_internal (s, maxsize, format, tp, tzset_called ut_argument LOCALE_PARAM_DECL { #if defined _LIBC && defined USE_IN_EXTENDED_LOCALE_MODEL - struct locale_data *const current = loc->__locales[LC_TIME]; + struct __locale_data *const current = loc->__locales[LC_TIME]; #endif int hour12 = tp->tm_hour; diff --git a/time/strptime_l.c b/time/strptime_l.c index c4a0638..ccd2a90 100644 --- a/time/strptime_l.c +++ b/time/strptime_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2002,2004,2005,2007,2008,2010 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 @@ -119,7 +119,7 @@ localtime_r (t, tp) #ifdef _LIBC /* This is defined in locale/C-time.c in the GNU libc. */ -extern const struct locale_data _nl_C_LC_TIME attribute_hidden; +extern const struct __locale_data _nl_C_LC_TIME attribute_hidden; # define weekday_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (DAY_1)].string) # define ab_weekday_name \ @@ -249,7 +249,7 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM) LOCALE_PARAM_DECL { #ifdef _LIBC - struct locale_data *const current = locale->__locales[LC_TIME]; + struct __locale_data *const current = locale->__locales[LC_TIME]; #endif const char *rp_backup; diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c index 2b46131..328f164 100644 --- a/wcsmbs/wcsmbsload.c +++ b/wcsmbs/wcsmbsload.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2002,2004,2005,2008 Free Software Foundation, Inc. +/* Copyright (C) 1998-2002,2004,2005,2008,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -150,7 +150,7 @@ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) /* Load conversion functions for the currently selected locale. */ void internal_function -__wcsmbs_load_conv (struct locale_data *new_category) +__wcsmbs_load_conv (struct __locale_data *new_category) { /* Acquire the lock. */ __libc_rwlock_wrlock (__libc_setlocale_lock); @@ -253,7 +253,7 @@ __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name) } void internal_function -_nl_cleanup_ctype (struct locale_data *locale) +_nl_cleanup_ctype (struct __locale_data *locale) { const struct gconv_fcts *const data = locale->private.ctype; if (data != NULL) diff --git a/wcsmbs/wcsmbsload.h b/wcsmbs/wcsmbsload.h index 0cf5da4..e2b1bfa 100644 --- a/wcsmbs/wcsmbsload.h +++ b/wcsmbs/wcsmbsload.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998-2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -38,7 +38,7 @@ struct gconv_fcts extern const struct gconv_fcts __wcsmbs_gconv_fcts_c attribute_hidden; /* Load conversion functions for the currently selected locale. */ -extern void __wcsmbs_load_conv (struct locale_data *new_category) +extern void __wcsmbs_load_conv (struct __locale_data *new_category) internal_function; /* Clone the current `__wcsmbs_load_conv' value. */ @@ -50,7 +50,7 @@ extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name) internal_function; /* Function used for the `private.cleanup' hook. */ -extern void _nl_cleanup_ctype (struct locale_data *) +extern void _nl_cleanup_ctype (struct __locale_data *) internal_function attribute_hidden; @@ -62,12 +62,12 @@ extern struct __gconv_step *__wcsmbs_getfct (const char *to, const char *from, size_t *nstepsp) attribute_hidden; -extern const struct locale_data _nl_C_LC_CTYPE attribute_hidden; +extern const struct __locale_data _nl_C_LC_CTYPE attribute_hidden; /* Check whether the LC_CTYPE locale changed since the last call. Update the pointers appropriately. */ static inline const struct gconv_fcts * -get_gconv_fcts (struct locale_data *data) +get_gconv_fcts (struct __locale_data *data) { if (__builtin_expect (data->private.ctype == NULL, 0)) {