aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-01-09 10:56:41 -0800
committerUlrich Drepper <drepper@redhat.com>2010-01-09 10:56:41 -0800
commitf095bb7204d80f609a73a22796edd6cffd4c6add (patch)
tree2b909bba9e4857eaee4761cacc16a69e7ecd480a
parent44dcc00292b965b3b6bff8415175d6a3e290aab7 (diff)
downloadglibc-f095bb7204d80f609a73a22796edd6cffd4c6add.zip
glibc-f095bb7204d80f609a73a22796edd6cffd4c6add.tar.gz
glibc-f095bb7204d80f609a73a22796edd6cffd4c6add.tar.bz2
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.
-rw-r--r--ChangeLog132
-rw-r--r--bits/confname.h7
-rw-r--r--conform/conformtest.pl38
-rw-r--r--conform/data/ctype.h-data20
-rw-r--r--conform/data/dirent.h-data11
-rw-r--r--conform/data/errno.h-data5
-rw-r--r--conform/data/fcntl.h-data31
-rw-r--r--conform/data/fmtmsg.h-data2
-rw-r--r--conform/data/fnmatch.h-data2
-rw-r--r--conform/data/ftw.h-data2
-rw-r--r--conform/data/glob.h-data2
-rw-r--r--conform/data/grp.h-data5
-rw-r--r--conform/data/iconv.h-data3
-rw-r--r--conform/data/langinfo.h-data8
-rw-r--r--conform/data/libgen.h-data2
-rw-r--r--conform/data/limits.h-data8
-rw-r--r--conform/data/locale.h-data25
-rw-r--r--conform/data/math.h-data8
-rw-r--r--conform/data/monetary.h-data6
-rw-r--r--conform/data/mqueue.h-data10
-rw-r--r--conform/data/ndbm.h-data2
-rw-r--r--conform/data/netdb.h-data2
-rw-r--r--conform/data/pthread.h-data15
-rw-r--r--conform/data/pwd.h-data5
-rw-r--r--conform/data/regex.h-data2
-rw-r--r--conform/data/sched.h-data6
-rw-r--r--conform/data/search.h-data2
-rw-r--r--conform/data/semaphore.h-data2
-rw-r--r--conform/data/setjmp.h-data4
-rw-r--r--conform/data/signal.h-data36
-rw-r--r--conform/data/spawn.h-data6
-rw-r--r--conform/data/stdio.h-data42
-rw-r--r--conform/data/stdlib.h-data49
-rw-r--r--conform/data/string.h-data28
-rw-r--r--conform/data/strings.h-data9
-rw-r--r--conform/data/sys/ipc.h-data2
-rw-r--r--conform/data/sys/msg.h-data2
-rw-r--r--conform/data/sys/resource.h-data2
-rw-r--r--conform/data/sys/sem.h-data2
-rw-r--r--conform/data/sys/shm.h-data2
-rw-r--r--conform/data/sys/socket.h-data8
-rw-r--r--conform/data/sys/stat.h-data44
-rw-r--r--conform/data/sys/time.h-data2
-rw-r--r--conform/data/sys/types.h-data8
-rw-r--r--conform/data/sys/uio.h-data2
-rw-r--r--conform/data/sys/wait.h-data6
-rw-r--r--conform/data/syslog.h-data2
-rw-r--r--conform/data/tar.h-data4
-rw-r--r--conform/data/termios.h-data15
-rw-r--r--conform/data/time.h-data17
-rw-r--r--conform/data/ulimit.h-data2
-rw-r--r--conform/data/unistd.h-data104
-rw-r--r--conform/data/utmpx.h-data2
-rw-r--r--conform/data/wchar.h-data44
-rw-r--r--conform/data/wctype.h-data22
-rw-r--r--conform/data/wordexp.h-data2
-rw-r--r--dirent/dirent.h2
-rw-r--r--include/features.h9
-rw-r--r--io/fcntl.h59
-rw-r--r--locale/C-address.c4
-rw-r--r--locale/C-collate.c4
-rw-r--r--locale/C-ctype.c4
-rw-r--r--locale/C-identification.c4
-rw-r--r--locale/C-measurement.c4
-rw-r--r--locale/C-messages.c4
-rw-r--r--locale/C-monetary.c4
-rw-r--r--locale/C-name.c4
-rw-r--r--locale/C-numeric.c4
-rw-r--r--locale/C-paper.c4
-rw-r--r--locale/C-telephone.c4
-rw-r--r--locale/C-time.c4
-rw-r--r--locale/findlocale.c33
-rw-r--r--locale/global-locale.c4
-rw-r--r--locale/loadarchive.c6
-rw-r--r--locale/loadlocale.c12
-rw-r--r--locale/localeinfo.h54
-rw-r--r--locale/nl_langinfo_l.c4
-rw-r--r--locale/setlocale.c14
-rw-r--r--locale/xlocale.c4
-rw-r--r--locale/xlocale.h4
-rw-r--r--nptl/ChangeLog4
-rw-r--r--nptl/sysdeps/pthread/pthread.h16
-rw-r--r--posix/confstr.c214
-rw-r--r--stdio-common/vfscanf.c22
-rw-r--r--stdlib/stdlib.h22
-rw-r--r--stdlib/strfmon_l.c4
-rw-r--r--stdlib/strtod_l.c54
-rw-r--r--stdlib/strtol_l.c4
-rw-r--r--string/strcoll_l.c4
-rw-r--r--string/string.h6
-rw-r--r--string/strxfrm_l.c7
-rw-r--r--sysdeps/mach/hurd/bits/stat.h5
-rw-r--r--sysdeps/unix/bsd/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/bits/fcntl.h14
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/fcntl.h15
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h14
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/fcntl.h15
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/fcntl.h15
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/fcntl.h12
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h15
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/bits/stat.h4
-rw-r--r--time/alt_digit.c10
-rw-r--r--time/asctime.c6
-rw-r--r--time/era.c10
-rw-r--r--time/lc-time-cleanup.c4
-rw-r--r--time/strftime_l.c4
-rw-r--r--time/strptime_l.c6
-rw-r--r--wcsmbs/wcsmbsload.c6
-rw-r--r--wcsmbs/wcsmbsload.h10
115 files changed, 1243 insertions, 391 deletions
diff --git a/ChangeLog b/ChangeLog
index 6cbc86d..a2f8d1b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,135 @@
+2010-01-09 Ulrich Drepper <drepper@redhat.com>
+
+ * 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 <drepper@redhat.com>
+
+ * 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 <drepper@redhat.com>
* 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
+# <endif
constant IXANY
constant IXOFF
constant IXON
constant PARMRK
constant OPOST
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
constant OLCUC
+# endif
+# if !defined POSIX && !defined POSIX2008
constant ONLCR
constant OCRNL
constant ONOCR
constant ONLRET
+constant OFDEL
constant OFILL
constant NLDLY
constant NL0
@@ -67,6 +78,7 @@ constant VT1
constant FFDLY
constant FF0
constant FF1
+# endif
constant B0
constant B50
@@ -106,7 +118,9 @@ constant IEXTEN
constant ISIG
constant NOFLSH
constant TOSTOP
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
constant XCASE
+# endif
constant TCSANOW
constant TCSADRAIN
@@ -157,3 +171,4 @@ allow O*
allow TC*
allow B*
allow *_t
+#endif
diff --git a/conform/data/time.h-data b/conform/data/time.h-data
index 805c48d..631cb76 100644
--- a/conform/data/time.h-data
+++ b/conform/data/time.h-data
@@ -11,7 +11,7 @@ element {struct tm} int tm_yday
element {struct tm} int tm_isdst
constant NULL
-#ifndef XOPEN2K
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
constant CLK_TCK
#endif
constant CLOCKS_PER_SEC
@@ -38,6 +38,12 @@ type size_t
type time_t
type timer_t
+#if defined XOPEN2K8 || defined POSIX2008
+type pid_t
+type locale_t
+tag {struct sigevent}
+#endif
+
variable int getdate_err
function {char*} asctime (const struct tm*)
@@ -51,7 +57,9 @@ function int clock_settime (clockid_t, const struct timespec*)
function {char*} ctime (const time_t*)
function {char*} ctime_r (const time_t*, char*)
function double difftime (time_t, time_t)
+#if !defined POSIX && !defined POSIX2008
function {struct tm*} getdate (const char*)
+#endif
function {struct tm*} gmtime (const time_t*)
function {struct tm*} gmtime_r (const time_t*, struct tm*)
function {struct tm*} localtime (const time_t*)
@@ -59,7 +67,12 @@ function {struct tm*} localtime_r (const time_t*, struct tm*)
function time_t mktime (struct tm*)
function int nanosleep (const struct timespec*, struct timespec*)
function size_t strftime (char*, size_t, const char*, const struct tm*)
+#if defined XOPEN2K8 || defined POSIX2008
+function size_t strftime_l (char*, size_t, const char*, const struct tm*, locale_t)
+#endif
+#if !defined POSIX && !defined POSIX2008
function {char*} strptime (const char*, const char*, struct tm*)
+#endif
function time_t time (time_t*)
function int timer_create (clockid_t, struct sigevent*, timer_t*)
function int timer_delete (timer_t)
@@ -68,8 +81,10 @@ function int timer_getoverrun (timer_t)
function int timer_settime (timer_t, int, const struct itimerspec*, struct itimerspec*)
function void tzset (void)
+#if !defined POSIX && !defined POSIX2008
variable int daylight
variable {long int} timezone
+#endif
variable {char*} tzname [2]
allow tm_*
diff --git a/conform/data/ulimit.h-data b/conform/data/ulimit.h-data
index 84ab56c..9e7e6f4 100644
--- a/conform/data/ulimit.h-data
+++ b/conform/data/ulimit.h-data
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
constant UL_GETFSIZE
constant UL_SETFSIZE
@@ -5,3 +6,4 @@ function {long int} ulimit (int, ...)
allow UL_*
allow *_t
+#endif
diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
index b6effa0..96cdf6a 100644
--- a/conform/data/unistd.h-data
+++ b/conform/data/unistd.h-data
@@ -41,10 +41,24 @@ optional-constant _POSIX_THREAD_PROCESS_SHARED
optional-constant _POSIX_THREAD_SAFE_FUNCTIONS
optional-constant _POSIX_THREAD_SPORADIC_SERVER
+# ifdef XOPEN2K
+optional-constant _POSIX_V6_ILP32_OFF32
+optional-constant _POSIX_V6_ILP32_OFFBIG
+optional-constant _POSIX_V6_LP64_OFF64
+optional-constant _POSIX_V6_LPBIG_OFFBIG
+# endif
+# if defined XOPEN2K8 || defined POSIX2008
+optional-constant _POSIX_V7_ILP32_OFF32
+optional-constant _POSIX_V7_ILP32_OFFBIG
+optional-constant _POSIX_V7_LP64_OFF64
+optional-constant _POSIX_V7_LPBIG_OFFBIG
+# endif
+
optional-constant _POSIX2_C_DEV
optional-constant _POSIX2_FORT_DEV
optional-constant _POSIX2_FORT_RUN
optional-constant _POSIX2_SW_DEV
+# if !defined POSIX && !defined POSIX2008
optional-constant _XOPEN_CRYPT
optional-constant _XOPEN_ENH_I18N
optional-constant _XOPEN_LEGACY
@@ -52,6 +66,7 @@ optional-constant _XOPEN_REALTIME
optional-constant _XOPEN_REALTIME_THREADS
optional-constant _XOPEN_SHM
optional-constant _XOPEN_STREAMS
+# endif
allow _XBS5_ILP32_OFF32
allow _XBS5_ILP32_OFBIG
allow _XBS5_LP64_OFF64
@@ -89,6 +104,8 @@ optional-constant _POSIX2_PBS_LOCATE
optional-constant _POSIX2_PBS_MESSAGE
optional-constant _POSIX2_PBS_TRACK
+optional-constant _POSIX_TIMESTAMP_RESOLUTION
+
constant NULL
constant R_OK
@@ -219,7 +236,20 @@ constant _SC_TYPED_MEMORY_OBJECTS
constant _SC_TZNAME_MAX
constant _SC_USER_GROUPS
constant _SC_USER_GROUPS_R
+# ifdef XOPEN2K
+constant _SC_V6_ILP32_OFF32
+constant _SC_V6_ILP32_OFFBIG
+constant _SC_V6_LP64_OFF64
+constant _SC_V6_LPBIG_OFFBIG
+# endif
+# if defined XOPEN2K8 || defined POSIX2008
+constant _SC_V7_ILP32_OFF32
+constant _SC_V7_ILP32_OFFBIG
+constant _SC_V7_LP64_OFF64
+constant _SC_V7_LPBIG_OFFBIG
+# endif
constant _SC_VERSION
+# if !defined POSIX && !defined POSIX2008
constant _SC_XOPEN_VERSION
constant _SC_XOPEN_CRYPT
constant _SC_XOPEN_ENH_I18N
@@ -229,11 +259,46 @@ constant _SC_XOPEN_XCU_VERSION
constant _SC_XOPEN_LEGACY
constant _SC_XOPEN_REALTIME
constant _SC_XOPEN_REALTIME_THREADS
+# endif
constant _SC_STREAMS
constant _SC_XBS5_ILP32_OFF32
constant _SC_XBS5_ILP32_OFFBIG
constant _SC_XBS5_LP64_OFF64
constant _SC_XBS5_LPBIG_OFFBIG
+# ifdef XOPEN2K
+constant _CS_POSIX_V6_ILP32_OFF32_CFLAGS
+constant _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+constant _CS_POSIX_V6_ILP32_OFF32_LIBS
+constant _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+constant _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+constant _CS_POSIX_V6_ILP32_OFFBIG_LIBS
+constant _CS_POSIX_V6_LP64_OFF64_CFLAGS
+constant _CS_POSIX_V6_LP64_OFF64_LDFLAGS
+constant _CS_POSIX_V6_LP64_OFF64_LIBS
+constant _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+constant _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+constant _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+constant _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
+constant _CS_V6_ENV
+# endif
+# if defined XOPEN2K8 || defined POSIX2008
+constant _CS_POSIX_V7_ILP32_OFF32_CFLAGS
+constant _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+constant _CS_POSIX_V7_ILP32_OFF32_LIBS
+constant _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+constant _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+constant _CS_POSIX_V7_ILP32_OFFBIG_LIBS
+constant _CS_POSIX_V7_LP64_OFF64_CFLAGS
+constant _CS_POSIX_V7_LP64_OFF64_LDFLAGS
+constant _CS_POSIX_V7_LP64_OFF64_LIBS
+constant _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+constant _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+constant _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+constant _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
+constant _CS_V7_ENV
+# endif
+constant _SC_THREAD_ROBUST_PRIO_INHERIT
+constant _SC_THREAD_ROBUST_PRIO_PROTECT
constant F_LOCK
constant F_ULOCK
@@ -283,14 +348,18 @@ function int chroot (const char*)
function int chown (const char*, uid_t, gid_t)
function int close (int)
function size_t confstr (int, char*, size_t)
+#if !defined POSIX && !defined POSIX2008
function {char*} crypt (const char*, const char*)
+#endif
function {char*} ctermid (char*)
#if defined XPG3 || defined XPG4 || defined UNIX98
function {char*} cuserid (char*)
#endif
function int dup (int)
function int dup2 (int, int)
+#if !defined POSIX && !defined POSIX2008
function void encrypt (char[64], int)
+#endif
function int execl (const char*, const char*, ...)
function int execle (const char*, const char*, ...)
function int execlp (const char*, const char*, ...)
@@ -298,9 +367,18 @@ function int execv (const char*, char *const[])
function int execve (const char*, char *const[], char *const[])
function int execvp (const char*, char *const[])
function void _exit (int)
+# if defined XOPEN2K8 || defined POSIX2008
+function int faccessat (int, const char*, int, int)
+# endif
function int fchown (int, uid_t, gid_t)
+# if defined XOPEN2K8 || defined POSIX2008
+function int fchownat (int, const char*, uid_t, gid_t, int)
+# endif
function int fchdir (int)
function int fdatasync (int)
+# if defined XOPEN2K8 || defined POSIX2008
+function int fexecve (int, char *const[], char *const[])
+# endif
function pid_t fork (void)
function {long int} fpathconf (int, int)
function int fsync (int)
@@ -311,7 +389,9 @@ function gid_t getegid (void)
function uid_t geteuid (void)
function gid_t getgid (void)
function int getgroups (int, gid_t[])
+#if !defined POSIX && !defined POSIX2008
function long gethostid (void)
+#endif
function int gethostname (char*, size_t)
function {char*} getlogin (void)
function int getlogin_r (char*, size_t)
@@ -330,34 +410,53 @@ function {char*} getwd (char*)
function int isatty (int)
function int lchown (const char*, uid_t, gid_t)
function int link (const char*, const char*)
+# if defined XOPEN2K8 || defined POSIX2008
+function int linkat (int, const char*, int, const char*, int)
+# endif
+# if !defined POSIX && !defined POSIX2008
function int lockf (int, int, off_t)
+# endif
function off_t lseek (int, off_t, int)
+# if !defined POSIX && !defined POSIX2008
function int nice (int)
+# endif
function {long int} pathconf (const char*, int)
function int pause (void)
function int pipe (int[2])
function ssize_t pread (int, void*, size_t, off_t)
-#ifndef XOPEN2K
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
#endif
function ssize_t pwrite (int, const void*, size_t, off_t)
function ssize_t read (int, void*, size_t)
function ssize_t readlink (const char*, char*, size_t)
+# if defined XOPEN2K8 || defined POSIX2008
+function ssize_t readlinkat (int, const char*, char*, size_t)
+# endif
function int rmdir (const char*)
function {void*} sbrk (intptr_t)
function int setegid (gid_t)
function int seteuid (uid_t)
function int setgid (gid_t)
function int setpgid (pid_t, pid_t)
+# if !defined POSIX && !defined POSIX2008
function pid_t setpgrp (void)
function int setregid (gid_t, gid_t)
function int setreuid (uid_t, uid_t)
+# endif
function pid_t setsid (void)
function int setuid (uid_t)
function {unsigned int} sleep (unsigned int)
+# if !defined POSIX && !defined POSIX2008
function void swab (const void*, void*, ssize_t)
+# endif
function int symlink (const char*, const char*)
+# if defined XOPEN2K8 || defined POSIX2008
+function int symlinkat (const char*, int, const char*)
+# endif
+# if !defined POSIX && !defined POSIX2008
function void sync (void)
+# endif
function {long int} sysconf (int)
function pid_t tcgetpgrp (int)
function int tcsetpgrp (int, pid_t)
@@ -366,6 +465,9 @@ function {char*} ttyname (int)
function int ttyname_r (int, char*, size_t)
function useconds_t ualarm (useconds_t, useconds_t)
function int unlink (const char*)
+# if defined XOPEN2K8 || defined POSIX2008
+function int unlinkat (int, const char*, int)
+# endif
function int usleep (useconds_t)
function pid_t vfork (void)
function ssize_t write (int, const void*, size_t)
diff --git a/conform/data/utmpx.h-data b/conform/data/utmpx.h-data
index ba034f0..af3c229 100644
--- a/conform/data/utmpx.h-data
+++ b/conform/data/utmpx.h-data
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
type {struct utmpx}
element {struct utmpx} char ut_user []
@@ -34,3 +35,4 @@ allow-header sys/time.h
allow ut_*
allow *_t
+#endif
diff --git a/conform/data/wchar.h-data b/conform/data/wchar.h-data
index 7c15895..0911f12 100644
--- a/conform/data/wchar.h-data
+++ b/conform/data/wchar.h-data
@@ -1,14 +1,19 @@
type wchar_t
type wint_t
+# if !defined ISO && !defined POSIX && !defined POSIX2008
type wctype_t
+#endif
type mbstate_t
type FILE
type size_t
+#if defined XOPEN2K8 || defined POSIX2008
+type locale_t
+#endif
function wint_t btowc (int)
function int fwprintf (FILE*, const wchar_t*, ...)
function int fwscanf (FILE*, const wchar_t*, ...)
-#if !ISO
+#if !defined ISO && !defined POSIX && !defined POSIX2008
function int iswalnum (wint_t)
function int iswalpha (wint_t)
function int iswcntrl (wint_t)
@@ -32,13 +37,21 @@ function wint_t getwchar (void)
function int mbsinit (const mbstate_t*)
function size_t mbrlen (const char*, size_t, mbstate_t*)
function size_t mbrtowc (wchar_t*, const char*, size_t, mbstate_t*)
+#if defined XOPEN2K8 || defined POSIX2008
+function size_t mbsnrtowcs (wchar_t*, const char**, size_t, size_t, mbstate_t*)
+#endif
function size_t mbsrtowcs (wchar_t*, const char**, size_t, mbstate_t*)
+#if defined XOPEN2K8 || defined POSIX2008
+function {FILE*} open_wmemstream (wchar_t**, size_t*)
+#endif
function wint_t putwc (wchar_t, FILE*)
function wint_t putwchar (wchar_t)
function int swprintf (wchar_t*, size_t, const wchar_t*, ...)
function int swscanf (const wchar_t*, const wchar_t*, ...)
+#if !defined ISO && !defined POSIX && !defined POSIX2008
function wint_t towlower (wint_t)
function wint_t towupper (wint_t)
+#endif
function wint_t ungetwc (wint_t, FILE*)
function int vfwprintf (FILE*, const wchar_t*, va_list)
function int vfwscanf (FILE*, const wchar_t*, va_list)
@@ -46,18 +59,40 @@ function int vwprintf (const wchar_t*, va_list)
function int vwscanf (const wchar_t*, va_list)
function int vswprintf (wchar_t*, size_t, const wchar_t*, va_list)
function int vswscanf (const wchar_t*, const wchar_t*, va_list)
+#if defined XOPEN2K8 || defined POSIX2008
+function {wchar_t*} wcpcpy (wchar_t*, const wchar_t*)
+function {wchar_t*} wcpncpy (wchar_t*, const wchar_t*, size_t)
+#endif
function size_t wcrtomb (char*, wchar_t, mbstate_t*)
+#if defined XOPEN2K8 || defined POSIX2008
+function int wcscasecmp(const wchar_t*, const wchar_t*)
+function int wcscasecmp_l(const wchar_t*, const wchar_t*, locale_t)
+#endif
function {wchar_t*} wcscat (wchar_t*, const wchar_t*)
function {wchar_t*} wcschr (const wchar_t*, wchar_t)
function int wcscmp (const wchar_t*, const wchar_t*)
function int wcscoll (const wchar_t*, const wchar_t*)
+#if defined XOPEN2K8 || defined POSIX2008
+function int wcscoll_l (const wchar_t*, const wchar_t*, locale_t)
+#endif
function {wchar_t*} wcscpy (wchar_t*, const wchar_t*)
function size_t wcscspn (const wchar_t*, const wchar_t*)
+#if defined XOPEN2K8 || defined POSIX2008
+function {wchar_t*} wcsdup (const wchar_t*)
+#endif
function size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*)
function size_t wcslen (const wchar_t*)
+#if defined XOPEN2K8 || defined POSIX2008
+function int wcsncasecmp (const wchar_t*, const wchar_t*, size_t)
+function int wcsncasecmp_l (const wchar_t*, const wchar_t*, size_t, locale_t)
+#endif
function {wchar_t*} wcsncat (wchar_t*, const wchar_t*, size_t)
function int wcsncmp (const wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wcsncpy (wchar_t*, const wchar_t*, size_t)
+#if defined XOPEN2K8 || defined POSIX2008
+function size_t wcsnlen (const wchar_t*, size_t)
+function size_t wcsnrtombs (char*, const wchar_t**, size_t, size_t, mbstate_t*)
+#endif
function {wchar_t*} wcspbrk (const wchar_t*, const wchar_t*)
function {wchar_t*} wcsrchr (const wchar_t*, wchar_t)
function size_t wcsrtombs (char*, const wchar_t**, size_t, mbstate_t*)
@@ -68,11 +103,18 @@ function {wchar_t*} wcstok (wchar_t*, const wchar_t*, wchar_t**)
function {long int} wcstol (const wchar_t*, wchar_t**, int)
function {unsigned long int} wcstoul (const wchar_t*, wchar_t**, int)
function {wchar_t*} wcswcs (const wchar_t*, const wchar_t*)
+#if !defined ISO && !defined POSIX && !defined POSIX2008
function int wcswidth (const wchar_t*, size_t)
+#endif
function size_t wcsxfrm (wchar_t*, const wchar_t*, size_t)
+#if defined XOPEN2K8 || defined POSIX2008
+function size_t wcsxfrm_l (wchar_t*, const wchar_t*, size_t, locale_t)
+#endif
function int wctob (wint_t)
+#if !defined ISO && !defined POSIX && !defined POSIX2008
function wctype_t wctype (const char*)
function int wcwidth (wchar_t)
+#endif
function {wchar_t*} wmemchr (const wchar_t*, wchar_t, size_t)
function int wmemcmp (const wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wmemcpy (wchar_t*, const wchar_t*, size_t)
diff --git a/conform/data/wctype.h-data b/conform/data/wctype.h-data
index 230d748..a3f8c54 100644
--- a/conform/data/wctype.h-data
+++ b/conform/data/wctype.h-data
@@ -1,6 +1,9 @@
type wint_t
type wctrans_t
type wctype_t
+#if defined XOPEN2K8 || defined POSIX2008
+type locale_t
+#endif
function int iswalnum (wint_t)
function int iswalpha (wint_t)
@@ -19,6 +22,25 @@ function wint_t towlower (wint_t)
function wint_t towupper (wint_t)
function wctrans_t wctrans (const char*)
function wctype_t wctype (const char*)
+#if defined XOPEN2K8 || defined POSIX2008
+function int iswalnum_l (wint_t, locale_t)
+function int iswalpha_l (wint_t, locale_t)
+function int iswcntrl_l (wint_t, locale_t)
+function int iswdigit_l (wint_t, locale_t)
+function int iswgraph_l (wint_t, locale_t)
+function int iswlower_l (wint_t, locale_t)
+function int iswprint_l (wint_t, locale_t)
+function int iswpunct_l (wint_t, locale_t)
+function int iswspace_l (wint_t, locale_t)
+function int iswupper_l (wint_t, locale_t)
+function int iswxdigit_l (wint_t, locale_t)
+function int iswctype_l (wint_t, wctype_t, locale_t)
+function wint_t towctrans_l (wint_t, wctrans_t, locale_t)
+function wint_t towlower_l (wint_t, locale_t)
+function wint_t towupper_l (wint_t, locale_t)
+function wctrans_t wctrans_l (const char*, locale_t)
+function wctype_t wctype_l (const char*, locale_t)
+#endif
macro WEOF
diff --git a/conform/data/wordexp.h-data b/conform/data/wordexp.h-data
index bfa66e8..12eecbe 100644
--- a/conform/data/wordexp.h-data
+++ b/conform/data/wordexp.h-data
@@ -14,7 +14,9 @@ constant WRDE_UNDEF
constant WRDE_BADCHAR
constant WRDE_CMDSUB
constant WRDE_NOSPACE
+#if defined XOPEN2K8 || defined POSIX2008
constant WRDE_NOSYS
+#endif
constant WRDE_SYNTAX
function int wordexp (const char*, wordexp_t*, int)
diff --git a/dirent/dirent.h b/dirent/dirent.h
index 675deae..bb4ede1 100644
--- a/dirent/dirent.h
+++ b/dirent/dirent.h
@@ -218,7 +218,7 @@ extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1));
extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
#endif
-#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN2K8
+#if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN2K8
/* Return the file descriptor used by DIRP. */
extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
diff --git a/include/features.h b/include/features.h
index e46bb2b..21822b6 100644
--- a/include/features.h
+++ b/include/features.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993,1995-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
@@ -66,7 +66,8 @@
__USE_XOPEN_EXTENDED Define X/Open Unix things.
__USE_UNIX98 Define Single Unix V2 things.
__USE_XOPEN2K Define XPG6 things.
- __USE_XOPEN2K8 Define XPG7 things.
+ __USE_XOPEN2KXSI Define XPG6 XSI things.
+ __USE_XOPEN2K8XSI Define XPG7 XSI things.
__USE_LARGEFILE Define correct standard I/O things.
__USE_LARGEFILE64 Define LFS things with separate names.
__USE_FILE_OFFSET64 Define 64bit interface as default.
@@ -102,7 +103,9 @@
#undef __USE_XOPEN_EXTENDED
#undef __USE_UNIX98
#undef __USE_XOPEN2K
+#undef __USE_XOPEN2KXSI
#undef __USE_XOPEN2K8
+#undef __USE_XOPEN2K8XSI
#undef __USE_LARGEFILE
#undef __USE_LARGEFILE64
#undef __USE_FILE_OFFSET64
@@ -250,8 +253,10 @@
# if (_XOPEN_SOURCE - 0) >= 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 <bits/fcntl.h>
/* For XPG all symbols from <sys/stat.h> should also be available. */
-#ifdef __USE_XOPEN
-# include <sys/stat.h>
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
+# include <bits/types.h> /* For __mode_t and __dev_t. */
+# define __need_timespec
+# include <time.h>
+# include <bits/stat.h>
+
+# 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 /* <stdio.h> has the same definitions. */
+/* XPG wants the following symbols. <stdio.h> 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@gnu.ai.mit.edu>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@gnu.org>, 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 <drepper@cygnus.com>, 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
<path>/<locale>/LC_foo. We must extract the <locale> 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@redhat.com>
+
+ * sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration.
+
2009-12-18 Thomas Schwinge <thomas@codesourcery.com>
* 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 <sys/wait.h> being defined. */
# include <bits/waitflags.h>
# include <bits/waitstatus.h>
@@ -91,7 +91,7 @@ typedef union
# ifdef __WIFCONTINUED
# define WIFCONTINUED(status) __WIFCONTINUED (__WAIT_INT (status))
# endif
-#endif /* X/Open and <sys/wait.h> not included. */
+#endif /* X/Open or XPG7 and <sys/wait.h> not included. */
__BEGIN_NAMESPACE_STD
/* Returned by `div'. */
@@ -497,7 +497,8 @@ extern void cfree (void *__ptr) __THROW;
# include <alloca.h>
#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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@gnu.org>, 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 <drepper@gnu.org>, 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <bits/stat.h> directly; use <sys/stat.h> 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 <time.h>
/* 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 <stdlib.h>
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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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))
{