From 44dcc00292b965b3b6bff8415175d6a3e290aab7 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 6 Jan 2010 22:47:31 -0800 Subject: Fix typo in feature selection macro use. --- ChangeLog | 4 ++++ dirent/dirent.h | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9b1d78bca1..6cbc86d2ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-01-06 Ulrich Drepper + + * dirent/dirent.h: Fix typo in feature selection macro use. + 2009-12-15 Maciej W. Rozycki [BZ #11115] diff --git a/dirent/dirent.h b/dirent/dirent.h index 369ccdc9ee..675deae16a 100644 --- a/dirent/dirent.h +++ b/dirent/dirent.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2000, 2003-2005, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1991-2000,2003-2005,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 @@ -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 __XOPEN_2K8 +#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN2K8 /* Return the file descriptor used by DIRP. */ extern int dirfd (DIR *__dirp) __THROW __nonnull ((1)); -- cgit v1.2.3 From 4472e1de3020a95d4823a9a209b02a250adc7baa Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 7 Jan 2010 15:42:52 -0800 Subject: Use NT_GNU_HWCAP instead of literal 2. --- ChangeLog | 5 +++++ elf/dl-sysdep.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6cbc86d2ca..dbdf9214ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-01-07 Roland McGrath + + * elf/dl-sysdep.c (_dl_important_hwcaps): Use NT_GNU_HWCAP instead of + literal 2. + 2010-01-06 Ulrich Drepper * dirent/dirent.h: Fix typo in feature selection macro use. diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c index 5700272f10..49c5dfb27d 100644 --- a/elf/dl-sysdep.c +++ b/elf/dl-sysdep.c @@ -1,5 +1,6 @@ /* Operating system support for run-time dynamic linker. Generic Unix version. - Copyright (C) 1995-1998, 2000-2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1995-1998,2000-2008,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 @@ -390,7 +391,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz) { #define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word))) - if (note->type == 2 + if (note->type == NT_GNU_HWCAP && note->vendorlen == sizeof "GNU" && !memcmp ((note + 1), "GNU", sizeof "GNU") && note->datalen > 2 * sizeof (ElfW(Word)) + 2) -- cgit v1.2.3 From d5ea695b42aecd48a329756a8e93228d64714d17 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 7 Jan 2010 18:48:32 -0800 Subject: Add new ELF constant PN_XNUM. --- ChangeLog | 2 ++ elf/elf.h | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index dbdf9214ec..85e07535f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2010-01-07 Roland McGrath + * elf/elf.h (PN_XNUM): New macro. + * elf/dl-sysdep.c (_dl_important_hwcaps): Use NT_GNU_HWCAP instead of literal 2. diff --git a/elf/elf.h b/elf/elf.h index c772ff41ad..1bc8ef3489 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -1,5 +1,5 @@ /* This file defines standard ELF types, structures, and macros. - Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009 + Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -558,6 +558,12 @@ typedef struct Elf64_Xword p_align; /* Segment alignment */ } Elf64_Phdr; +/* Special value for e_phnum. This indicates that the real number of + program headers is too large to fit into e_phnum. Instead the real + value is in the field sh_info of section 0. */ + +#define PN_XNUM 0xffff + /* Legal values for p_type (segment type). */ #define PT_NULL 0 /* Program header table entry unused */ -- cgit v1.2.3 From f095bb7204d80f609a73a22796edd6cffd4c6add Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 9 Jan 2010 10:56:41 -0800 Subject: 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. --- ChangeLog | 132 +++++++++++++++++ bits/confname.h | 7 +- conform/conformtest.pl | 38 ++++- conform/data/ctype.h-data | 20 ++- conform/data/dirent.h-data | 11 ++ conform/data/errno.h-data | 5 + conform/data/fcntl.h-data | 31 +++- conform/data/fmtmsg.h-data | 2 +- conform/data/fnmatch.h-data | 2 + conform/data/ftw.h-data | 2 +- conform/data/glob.h-data | 2 + conform/data/grp.h-data | 5 + conform/data/iconv.h-data | 3 + conform/data/langinfo.h-data | 8 + conform/data/libgen.h-data | 2 +- conform/data/limits.h-data | 8 + conform/data/locale.h-data | 25 +++- conform/data/math.h-data | 8 + conform/data/monetary.h-data | 6 + conform/data/mqueue.h-data | 10 +- conform/data/ndbm.h-data | 2 +- conform/data/netdb.h-data | 2 + conform/data/pthread.h-data | 15 +- conform/data/pwd.h-data | 5 + conform/data/regex.h-data | 2 + conform/data/sched.h-data | 6 + conform/data/search.h-data | 2 +- conform/data/semaphore.h-data | 2 +- conform/data/setjmp.h-data | 4 +- conform/data/signal.h-data | 36 +++++ conform/data/spawn.h-data | 6 + conform/data/stdio.h-data | 42 +++++- conform/data/stdlib.h-data | 49 +++++- conform/data/string.h-data | 28 +++- conform/data/strings.h-data | 9 ++ conform/data/sys/ipc.h-data | 2 + conform/data/sys/msg.h-data | 2 + conform/data/sys/resource.h-data | 2 + conform/data/sys/sem.h-data | 2 + conform/data/sys/shm.h-data | 2 + conform/data/sys/socket.h-data | 8 + conform/data/sys/stat.h-data | 44 ++++++ conform/data/sys/time.h-data | 2 +- conform/data/sys/types.h-data | 8 + conform/data/sys/uio.h-data | 2 + conform/data/sys/wait.h-data | 6 + conform/data/syslog.h-data | 2 + conform/data/tar.h-data | 4 + conform/data/termios.h-data | 15 ++ conform/data/time.h-data | 17 ++- conform/data/ulimit.h-data | 2 + conform/data/unistd.h-data | 104 ++++++++++++- conform/data/utmpx.h-data | 2 + conform/data/wchar.h-data | 44 +++++- conform/data/wctype.h-data | 22 +++ conform/data/wordexp.h-data | 2 + dirent/dirent.h | 2 +- include/features.h | 9 +- io/fcntl.h | 59 +++++++- locale/C-address.c | 4 +- locale/C-collate.c | 4 +- locale/C-ctype.c | 4 +- locale/C-identification.c | 4 +- locale/C-measurement.c | 4 +- locale/C-messages.c | 4 +- locale/C-monetary.c | 4 +- locale/C-name.c | 4 +- locale/C-numeric.c | 4 +- locale/C-paper.c | 4 +- locale/C-telephone.c | 4 +- locale/C-time.c | 4 +- locale/findlocale.c | 33 +++-- locale/global-locale.c | 4 +- locale/loadarchive.c | 6 +- locale/loadlocale.c | 12 +- locale/localeinfo.h | 54 +++---- locale/nl_langinfo_l.c | 4 +- locale/setlocale.c | 14 +- locale/xlocale.c | 4 +- locale/xlocale.h | 4 +- nptl/ChangeLog | 4 + nptl/sysdeps/pthread/pthread.h | 16 +- posix/confstr.c | 214 ++++++++++++++------------- stdio-common/vfscanf.c | 22 +-- stdlib/stdlib.h | 22 ++- stdlib/strfmon_l.c | 4 +- stdlib/strtod_l.c | 54 +++---- stdlib/strtol_l.c | 4 +- string/strcoll_l.c | 4 +- string/string.h | 6 +- string/strxfrm_l.c | 7 +- sysdeps/mach/hurd/bits/stat.h | 5 +- sysdeps/unix/bsd/bits/stat.h | 4 +- sysdeps/unix/sysv/bits/stat.h | 4 +- sysdeps/unix/sysv/linux/bits/stat.h | 4 +- sysdeps/unix/sysv/linux/i386/bits/fcntl.h | 14 +- sysdeps/unix/sysv/linux/ia64/bits/fcntl.h | 15 +- sysdeps/unix/sysv/linux/ia64/bits/stat.h | 4 +- sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h | 14 +- sysdeps/unix/sysv/linux/powerpc/bits/stat.h | 4 +- sysdeps/unix/sysv/linux/s390/bits/fcntl.h | 15 +- sysdeps/unix/sysv/linux/s390/bits/stat.h | 4 +- sysdeps/unix/sysv/linux/sh/bits/fcntl.h | 15 +- sysdeps/unix/sysv/linux/sparc/bits/fcntl.h | 12 +- sysdeps/unix/sysv/linux/sparc/bits/stat.h | 4 +- sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h | 15 +- sysdeps/unix/sysv/linux/x86_64/bits/stat.h | 4 +- time/alt_digit.c | 10 +- time/asctime.c | 6 +- time/era.c | 10 +- time/lc-time-cleanup.c | 4 +- time/strftime_l.c | 4 +- time/strptime_l.c | 6 +- wcsmbs/wcsmbsload.c | 6 +- wcsmbs/wcsmbsload.h | 10 +- 115 files changed, 1243 insertions(+), 391 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6cbc86d2ca..a2f8d1b78f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,135 @@ +2010-01-09 Ulrich Drepper + + * conform/conformtest.pl: Update for XPG7 and some bug fixes. + * conform/data/ctype.h-data: Likewise. + * conform/data/dirent.h-data: Likewise. + * conform/data/errno.h-data: Likewise. + * conform/data/fcntl.h-data: Likewise. + * conform/data/fmtmsg.h-data: Likewise. + * conform/data/fnmatch.h-data: Likewise. + * conform/data/ftw.h-data: Likewise. + * conform/data/glob.h-data: Likewise. + * conform/data/grp.h-data: Likewise. + * conform/data/iconv.h-data: Likewise. + * conform/data/langinfo.h-data: Likewise. + * conform/data/libgen.h-data: Likewise. + * conform/data/limits.h-data: Likewise. + * conform/data/locale.h-data: Likewise. + * conform/data/math.h-data: Likewise. + * conform/data/monetary.h-data: Likewise. + * conform/data/mqueue.h-data: Likewise. + * conform/data/ndbm.h-data: Likewise. + * conform/data/netdb.h-data: Likewise. + * conform/data/pthread.h-data: Likewise. + * conform/data/pwd.h-data: Likewise. + * conform/data/regex.h-data: Likewise. + * conform/data/sched.h-data: Likewise. + * conform/data/search.h-data: Likewise. + * conform/data/semaphore.h-data: Likewise. + * conform/data/setjmp.h-data: Likewise. + * conform/data/signal.h-data: Likewise. + * conform/data/spawn.h-data: Likewise. + * conform/data/stdio.h-data: Likewise. + * conform/data/stdlib.h-data: Likewise. + * conform/data/string.h-data: Likewise. + * conform/data/strings.h-data: Likewise. + * conform/data/sys/ipc.h-data: Likewise. + * conform/data/sys/msg.h-data: Likewise. + * conform/data/sys/resource.h-data: Likewise. + * conform/data/sys/sem.h-data: Likewise. + * conform/data/sys/shm.h-data: Likewise. + * conform/data/sys/socket.h-data: Likewise. + * conform/data/sys/stat.h-data: Likewise. + * conform/data/sys/time.h-data: Likewise. + * conform/data/sys/types.h-data: Likewise. + * conform/data/sys/uio.h-data: Likewise. + * conform/data/sys/wait.h-data: Likewise. + * conform/data/syslog.h-data: Likewise. + * conform/data/tar.h-data: Likewise. + * conform/data/termios.h-data: Likewise. + * conform/data/time.h-data: Likewise. + * conform/data/ulimit.h-data: Likewise. + * conform/data/unistd.h-data: Likewise. + * conform/data/utmpx.h-data: Likewise. + * conform/data/wchar.h-data: Likewise. + * conform/data/wctype.h-data: Likewise. + * conform/data/wordexp.h-data: Likewise. + + * io/fcntl.h: Define mode_t macros instead of including sys/stat.h. + * sysdeps/unix/bsd/bits/stat.h: Enable using from fcntl.h. + * sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise. + * sysdeps/unix/sysv/bits/stat.h: Likewise. + * sysdeps/mach/hurd/bits/stat.h: Likewise. + + * stdlib/stdlib.h: Define wait-related bits for XPG7. + Don't declare valloc, mktemp, ecvt, fcvt, gcvt for XPG6 and up. + Declare mkstemp and getsubopt for XPG7. + Declare posix_openpt for XPG6 XSI. + + * include/features.h: Define __USE_XOPEN2KXSI for _XOPEN_SOURCE >= 600 + and __USE_XOPEN2K8XSI for _XOPEN_SOURCE >= 700. + + * string/string.h: Declare strdup for XPG7. + +2010-01-08 Ulrich Drepper + + * bits/confname.h: Define _CS_V6_ENV and _CS_V7_ENV. + * posix/confstr.c: Implement _CS_V6_ENV and _CS_V7_ENV. + + * dirent/dirent.h: Really fix feature selection. + + * locale/localeinfo.h: Rename struct locale_data to __locale_data. + Fix all users. + * locale/C-address.c: Fix all users. + * locale/C-collate.c: Likewise. + * locale/C-ctype.c: Likewise. + * locale/C-identification.c: Likewise. + * locale/C-measurement.c: Likewise. + * locale/C-messages.c: Likewise. + * locale/C-monetary.c: Likewise. + * locale/C-name.c: Likewise. + * locale/C-numeric.c: Likewise. + * locale/C-paper.c: Likewise. + * locale/C-telephone.c: Likewise. + * locale/C-time.c: Likewise. + * locale/findlocale.c: Likewise. + * locale/global-locale.c: Likewise. + * locale/loadarchive.c: Likewise. + * locale/loadlocale.c: Likewise. + * locale/nl_langinfo_l.c: Likewise. + * locale/setlocale.c: Likewise. + * locale/xlocale.c: Likewise. + * locale/xlocale.h: Likewise. + * stdio-common/vfscanf.c: Likewise. + * stdlib/strfmon_l.c: Likewise. + * stdlib/strtod_l.c: Likewise. + * stdlib/strtol_l.c: Likewise. + * string/strcoll_l.c: Likewise. + * string/strxfrm_l.c: Likewise. + * time/alt_digit.c: Likewise. + * time/asctime.c: Likewise. + * time/era.c: Likewise. + * time/lc-time-cleanup.c: Likewise. + * time/strftime_l.c: Likewise. + * time/strptime_l.c: Likewise. + * wcsmbs/wcsmbsload.c: Likewise. + * wcsmbs/wcsmbsload.h: Likewise. + + * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Define O_DIRECTORY, + O_NOFOLLOW, O_CLOEXEC, F_DUPFD_CLOEXEC, F_SETOWN, and F_GETOWN + for XPG7. + * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. + 2010-01-06 Ulrich Drepper * dirent/dirent.h: Fix typo in feature selection macro use. diff --git a/bits/confname.h b/bits/confname.h index 757ed4f3ca..b3c33a9864 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 b15656bd60..e594d87972 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"; @@ -704,6 +705,27 @@ while ($#headers >= 0) { } close (TESTFILE); + 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_]*) ([(].*[)])/) { diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data index 7454bd3288..d082230f94 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 e496dab0dd..761d5786b5 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 67225248a2..ffdf6b5c4d 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 c8caf0360f..7769a446dd 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 da1ed65ac4..67c35c1c93 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 ef34fc4e04..96591d6d43 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 81c50070d1..eb499243a5 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 221a3154cb..9f90f8b84b 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 91401b31d9..16519506e5 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 f1e2ea0527..7071d90f60 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 2fe38a266d..95bc3f934e 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 ca0126fbb1..b749b8dcde 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 9801ddeb86..2e720a9b78 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 84bd6abc09..f6e6c22c80 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 40312effdd..da9ce68fc2 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 eab8384d76..7935f2ab85 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 6ec1e312d5..16335a556f 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 6e606e589c..af091de0fd 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 483a3fcc96..254ea65027 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 aa5861f1d8..5a536c7bf9 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 1267708b98..a8edf27730 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 38495d5b83..73e06a8266 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 d4c5ae72cd..585145011a 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 da7f2a1332..dadb1ff71c 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 20fe0706b7..5484884fff 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 ef29c9cbe8..a89a33fa73 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 95bd37299b..b48a1ff7da 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 8afca02216..81f32d0308 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 c3f071e8f9..fcc61c9df4 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 c639bb52d0..760b5b3b4c 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 19c06d292c..1c4ae0814e 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 201780c8d3..fb4f02c75d 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 1b2ec99d37..28918c196d 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 7a1df4cbed..ae83356b54 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 d9f9b9ab8c..52f83f523b 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 8b4598b7b2..665b397c58 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 cac0163406..39df8944ab 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 dd1f265b2b..5fdd6cf6bf 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 c0f8d45a38..72c656f19e 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 174708b53d..7e3407ab07 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 ed7236b8b6..be61d08751 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 258032b871..7833e72268 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 731c9551f7..81c0dc44f8 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 87414e8a7e..f0aa65c693 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 919167d92b..fcbfb127b4 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 d867d4cd6b..d32bd6bf3c 100644 --- a/conform/data/termios.h-data +++ b/conform/data/termios.h-data @@ -1,9 +1,14 @@ +#ifndef ISO type cc_t type speed_t type tcflag_t type {struct termios} +#if defined XOPEN2K8 || defined POSIX2008 +type pid_t +#endif + element {struct termios} tcflag_t c_iflag element {struct termios} tcflag_t c_oflag element {struct termios} tcflag_t c_cflag @@ -32,18 +37,24 @@ constant IGNPAR constant INLCR constant INPCK constant ISTRIP +# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 constant IUCLC +# = 600 # if (_XOPEN_SOURCE - 0) >= 700 # define __USE_XOPEN2K8 1 +# define __USE_XOPEN2K8XSI 1 # endif # define __USE_XOPEN2K 1 +# define __USE_XOPEN2KXSI 1 # undef __USE_ISOC99 # define __USE_ISOC99 1 # endif diff --git a/io/fcntl.h b/io/fcntl.h index 2a2a29dc70..4eb003be46 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007, 2009 +/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -34,8 +34,54 @@ __BEGIN_DECLS #include /* For XPG all symbols from should also be available. */ -#ifdef __USE_XOPEN -# include +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 +# include /* For __mode_t and __dev_t. */ +# define __need_timespec +# include +# include + +# define S_IFMT __S_IFMT +# define S_IFDIR __S_IFDIR +# define S_IFCHR __S_IFCHR +# define S_IFBLK __S_IFBLK +# define S_IFREG __S_IFREG +# ifdef __S_IFIFO +# define S_IFIFO __S_IFIFO +# endif +# ifdef __S_IFLNK +# define S_IFLNK __S_IFLNK +# endif +# if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) && defined __S_IFSOCK +# define S_IFSOCK __S_IFSOCK +# endif + +/* Protection bits. */ + +# define S_ISUID __S_ISUID /* Set user ID on execution. */ +# define S_ISGID __S_ISGID /* Set group ID on execution. */ + +# if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN +/* Save swapped text after use (sticky bit). This is pretty well obsolete. */ +# define S_ISVTX __S_ISVTX +# endif + +# define S_IRUSR __S_IREAD /* Read by owner. */ +# define S_IWUSR __S_IWRITE /* Write by owner. */ +# define S_IXUSR __S_IEXEC /* Execute by owner. */ +/* Read, write, and execute by owner. */ +# define S_IRWXU (__S_IREAD|__S_IWRITE|__S_IEXEC) + +# define S_IRGRP (S_IRUSR >> 3) /* Read by group. */ +# define S_IWGRP (S_IWUSR >> 3) /* Write by group. */ +# define S_IXGRP (S_IXUSR >> 3) /* Execute by group. */ +/* Read, write, and execute by group. */ +# define S_IRWXG (S_IRWXU >> 3) + +# define S_IROTH (S_IRGRP >> 3) /* Read by others. */ +# define S_IWOTH (S_IWGRP >> 3) /* Write by others. */ +# define S_IXOTH (S_IXGRP >> 3) /* Execute by others. */ +/* Read, write, and execute by others. */ +# define S_IRWXO (S_IRWXG >> 3) #endif #ifdef __USE_MISC @@ -49,8 +95,8 @@ __BEGIN_DECLS # endif #endif /* Use misc. */ -/* XPG wants the following symbols. */ -#ifdef __USE_XOPEN /* has the same definitions. */ +/* XPG wants the following symbols. has the same definitions. */ +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 # define SEEK_SET 0 /* Seek from beginning of file. */ # define SEEK_CUR 1 /* Seek from current position. */ # define SEEK_END 2 /* Seek from end of file. */ @@ -116,9 +162,10 @@ extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag, # define openat openat64 # endif # endif - +# ifdef __USE_LARGEFILE64 extern int openat64 (int __fd, __const char *__file, int __oflag, ...) __nonnull ((2)); +# endif #endif /* Create and open FILE, with mode MODE. This takes an `int' MODE diff --git a/locale/C-address.c b/locale/C-address.c index e9e6b1aa81..0d30052613 100644 --- a/locale/C-address.c +++ b/locale/C-address.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.10 "LC_ADDRESS". */ -const struct locale_data _nl_C_LC_ADDRESS attribute_hidden = +const struct __locale_data _nl_C_LC_ADDRESS attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-collate.c b/locale/C-collate.c index cc8c8ee81f..a7e440fda7 100644 --- a/locale/C-collate.c +++ b/locale/C-collate.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1997,1999,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,1999,2000,2001,2002,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -98,7 +98,7 @@ static const uint32_t collseqwc[] = L'\xf8', L'\xf9', L'\xfa', L'\xfb', L'\xfc', L'\xfd', L'\xfe', L'\xff' }; -const struct locale_data _nl_C_LC_COLLATE attribute_hidden = +const struct __locale_data _nl_C_LC_COLLATE attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-ctype.c b/locale/C-ctype.c index 420b08a13f..0eb60d4da7 100644 --- a/locale/C-ctype.c +++ b/locale/C-ctype.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2002, 2003, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2003, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -538,7 +538,7 @@ _nl_C_LC_CTYPE_width attribute_hidden = NR_FIXED == _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1). */ typedef int assertion1[1 - 2 * (NR_FIXED != _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1))]; -const struct locale_data _nl_C_LC_CTYPE attribute_hidden = +const struct __locale_data _nl_C_LC_CTYPE attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-identification.c b/locale/C-identification.c index 628e8f145d..da465d2c82 100644 --- a/locale/C-identification.c +++ b/locale/C-identification.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.12 "LC_IDENTIFICATION". */ -const struct locale_data _nl_C_LC_IDENTIFICATION attribute_hidden = +const struct __locale_data _nl_C_LC_IDENTIFICATION attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-measurement.c b/locale/C-measurement.c index 796fe29ce5..16e45f6502 100644 --- a/locale/C-measurement.c +++ b/locale/C-measurement.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.12 "LC_MEASUREMENT". */ -const struct locale_data _nl_C_LC_MEASUREMENT attribute_hidden = +const struct __locale_data _nl_C_LC_MEASUREMENT attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-messages.c b/locale/C-messages.c index 499d4bf5a6..0d2a05f80d 100644 --- a/locale/C-messages.c +++ b/locale/C-messages.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,2000,2001,2002,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -24,7 +24,7 @@ The last two fields are a GNU extension. */ -const struct locale_data _nl_C_LC_MESSAGES attribute_hidden = +const struct __locale_data _nl_C_LC_MESSAGES attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-monetary.c b/locale/C-monetary.c index 8cccf9637a..e18c059e07 100644 --- a/locale/C-monetary.c +++ b/locale/C-monetary.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1995-1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -28,7 +28,7 @@ static const char not_available[] = "\377"; static const char not_available[] = "\177"; #endif -const struct locale_data _nl_C_LC_MONETARY attribute_hidden = +const struct __locale_data _nl_C_LC_MONETARY attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-name.c b/locale/C-name.c index 65033d6751..e59b42fa09 100644 --- a/locale/C-name.c +++ b/locale/C-name.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.9 "LC_NAME". */ -const struct locale_data _nl_C_LC_NAME attribute_hidden = +const struct __locale_data _nl_C_LC_NAME attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-numeric.c b/locale/C-numeric.c index 377c51cdfb..a16a841c78 100644 --- a/locale/C-numeric.c +++ b/locale/C-numeric.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,2000,2001,2002,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -21,7 +21,7 @@ /* This table's entries are taken from POSIX.2 Table 2-10 ``LC_NUMERIC Category Definition in the POSIX Locale''. */ -const struct locale_data _nl_C_LC_NUMERIC attribute_hidden = +const struct __locale_data _nl_C_LC_NUMERIC attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-paper.c b/locale/C-paper.c index 74e6401de7..2d060ca8ba 100644 --- a/locale/C-paper.c +++ b/locale/C-paper.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.8 "LC_PAPER". */ -const struct locale_data _nl_C_LC_PAPER attribute_hidden = +const struct __locale_data _nl_C_LC_PAPER attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-telephone.c b/locale/C-telephone.c index 561a1ef28a..522388866e 100644 --- a/locale/C-telephone.c +++ b/locale/C-telephone.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -24,7 +24,7 @@ /* This table's entries are taken from ISO 14652, the table in section 4.11 "LC_TELEPHONE". */ -const struct locale_data _nl_C_LC_TELEPHONE attribute_hidden = +const struct __locale_data _nl_C_LC_TELEPHONE attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/C-time.c b/locale/C-time.c index 368ffce7ad..16d387b938 100644 --- a/locale/C-time.c +++ b/locale/C-time.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2002, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2004, 2007, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -23,7 +23,7 @@ ``LC_TIME Category Definition in the POSIX Locale'', with additions from ISO 14652, section 4.6. */ -const struct locale_data _nl_C_LC_TIME attribute_hidden = +const struct __locale_data _nl_C_LC_TIME attribute_hidden = { _nl_C_name, NULL, 0, 0, /* no file mapped */ diff --git a/locale/findlocale.c b/locale/findlocale.c index ea24170df5..6b88c96341 100644 --- a/locale/findlocale.c +++ b/locale/findlocale.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2001, 2002, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -33,14 +33,14 @@ #ifdef NL_CURRENT_INDIRECT # define DEFINE_CATEGORY(category, category_name, items, a) \ -extern struct locale_data _nl_C_##category; \ +extern struct __locale_data _nl_C_##category; \ weak_extern (_nl_C_##category) # include "categories.def" # undef DEFINE_CATEGORY /* Array indexed by category of pointers to _nl_C_CATEGORY slots. Elements are zero for categories whose data is never used. */ -struct locale_data *const _nl_C[] attribute_hidden = +struct __locale_data *const _nl_C[] attribute_hidden = { # define DEFINE_CATEGORY(category, category_name, items, a) \ [category] = &_nl_C_##category, @@ -59,7 +59,7 @@ struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST]; const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR; -struct locale_data * +struct __locale_data * internal_function _nl_find_locale (const char *locale_path, size_t locale_path_len, int category, const char **name) @@ -104,7 +104,8 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, but only if there was no LOCPATH environment variable specified. */ if (__builtin_expect (locale_path == NULL, 1)) { - struct locale_data *data = _nl_load_locale_from_archive (category, name); + struct __locale_data *data + = _nl_load_locale_from_archive (category, name); if (__builtin_expect (data != NULL, 1)) return data; @@ -214,12 +215,12 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, [__LC_MEASUREMENT] = _NL_ITEM_INDEX (_NL_MEASUREMENT_CODESET), [__LC_IDENTIFICATION] = _NL_ITEM_INDEX (_NL_IDENTIFICATION_CODESET) }; - const struct locale_data *data; + const struct __locale_data *data; const char *locale_codeset; char *clocale_codeset; char *ccodeset; - data = (const struct locale_data *) locale_file->data; + data = (const struct __locale_data *) locale_file->data; locale_codeset = (const char *) data->values[codeset_idx[category]].string; assert (locale_codeset != NULL); @@ -241,7 +242,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, /* Determine the locale name for which loading succeeded. This information comes from the file name. The form is //LC_foo. We must extract the part. */ - if (((const struct locale_data *) locale_file->data)->name == NULL) + if (((const struct __locale_data *) locale_file->data)->name == NULL) { char *cp, *endp; @@ -249,20 +250,20 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, cp = endp - 1; while (cp[-1] != '/') --cp; - ((struct locale_data *) locale_file->data)->name = __strndup (cp, - endp - cp); + ((struct __locale_data *) locale_file->data)->name + = __strndup (cp, endp - cp); } /* Determine whether the user wants transliteration or not. */ if (modifier != NULL && __strcasecmp (modifier, "TRANSLIT") == 0) - ((struct locale_data *) locale_file->data)->use_translit = 1; + ((struct __locale_data *) locale_file->data)->use_translit = 1; /* Increment the usage count. */ - if (((const struct locale_data *) locale_file->data)->usage_count + if (((const struct __locale_data *) locale_file->data)->usage_count < MAX_USAGE_COUNT) - ++((struct locale_data *) locale_file->data)->usage_count; + ++((struct __locale_data *) locale_file->data)->usage_count; - return (struct locale_data *) locale_file->data; + return (struct __locale_data *) locale_file->data; } @@ -270,7 +271,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, is acquired. */ void internal_function -_nl_remove_locale (int locale, struct locale_data *data) +_nl_remove_locale (int locale, struct __locale_data *data) { if (--data->usage_count == 0) { @@ -281,7 +282,7 @@ _nl_remove_locale (int locale, struct locale_data *data) /* Search for the entry. It must be in the list. Otherwise it is a bug and we crash badly. */ - while ((struct locale_data *) ptr->data != data) + while ((struct __locale_data *) ptr->data != data) ptr = ptr->next; /* Mark the data as not available anymore. So when the data has diff --git a/locale/global-locale.c b/locale/global-locale.c index 771742e1be..63d1238fb0 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 d545f17fb5..663202e54e 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 467dff157a..6ef25b0234 100644 --- a/locale/loadlocale.c +++ b/locale/loadlocale.c @@ -1,5 +1,5 @@ /* Functions to read locale data files. - Copyright (C) 1996-2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1996-2004, 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -61,7 +61,7 @@ static const enum value_type *const _nl_value_types[] = }; -struct locale_data * +struct __locale_data * internal_function _nl_intern_locale_data (int category, const void *data, size_t datasize) { @@ -71,7 +71,7 @@ _nl_intern_locale_data (int category, const void *data, size_t datasize) unsigned int nstrings; unsigned int strindex[0]; } *const filedata = data; - struct locale_data *newdata; + struct __locale_data *newdata; size_t cnt; if (__builtin_expect (datasize < sizeof *filedata, 0) @@ -166,7 +166,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) int fd; void *filedata; struct stat64 st; - struct locale_data *newdata; + struct __locale_data *newdata; int save_err; int alloc = ld_mapped; @@ -187,7 +187,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) if (__builtin_expect (S_ISDIR (st.st_mode), 0)) { /* LOCALE/LC_foo is a directory; open LOCALE/LC_foo/SYS_LC_foo - instead. */ + instead. */ char *newp; size_t filenamelen; @@ -282,7 +282,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) void internal_function -_nl_unload_locale (struct locale_data *locale) +_nl_unload_locale (struct __locale_data *locale) { if (locale->private.cleanup) (*locale->private.cleanup) (locale); diff --git a/locale/localeinfo.h b/locale/localeinfo.h index 19ea41ae6d..72e9d3a6ea 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 08e1534a8b..573fed0c4e 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 05a55a96ed..4ebce78244 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 4573e6f390..f84e73ef0f 100644 --- a/locale/xlocale.c +++ b/locale/xlocale.c @@ -1,5 +1,5 @@ /* C locale object. - Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2005, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -22,7 +22,7 @@ #include "localeinfo.h" #define DEFINE_CATEGORY(category, category_name, items, a) \ -extern struct locale_data _nl_C_##category; +extern struct __locale_data _nl_C_##category; #include "categories.def" #undef DEFINE_CATEGORY diff --git a/locale/xlocale.h b/locale/xlocale.h index e879212b79..ce541528ce 100644 --- a/locale/xlocale.h +++ b/locale/xlocale.h @@ -1,5 +1,5 @@ /* Definition of locale datatype. - Copyright (C) 1997,2000,2002,2009 Free Software Foundation, Inc. + Copyright (C) 1997,2000,2002,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -28,7 +28,7 @@ typedef struct __locale_struct { /* Note: LC_ALL is not a valid index into this array. */ - struct locale_data *__locales[13]; /* 13 = __LC_LAST. */ + struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ /* To increase the speed of this solution we add some special members. */ const unsigned short int *__ctype_b; diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 389bed4a68..afa7790dde 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2010-01-08 Ulrich Drepper + + * sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration. + 2009-12-18 Thomas Schwinge * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h index d71b4cc47d..8a946ffc3a 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 9aa4b5aebb..5553f4b28a 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 a03e19c4e3..7356eeb362 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 dc51d67170..8669f35d76 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1991-2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -37,7 +37,7 @@ __BEGIN_DECLS #ifndef __need_malloc_and_calloc #define _STDLIB_H 1 -#if defined __USE_XOPEN && !defined _SYS_WAIT_H +#if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H /* XPG requires a few symbols from being defined. */ # include # include @@ -91,7 +91,7 @@ typedef union # ifdef __WIFCONTINUED # define WIFCONTINUED(status) __WIFCONTINUED (__WAIT_INT (status)) # endif -#endif /* X/Open and not included. */ +#endif /* X/Open or XPG7 and not included. */ __BEGIN_NAMESPACE_STD /* Returned by `div'. */ @@ -497,7 +497,8 @@ extern void cfree (void *__ptr) __THROW; # include #endif /* Use GNU, BSD, or misc. */ -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED +#if (defined __USE_BSD || defined __USE_XOPEN_EXTENDED) \ + && !defined __USE_XOPEN2K /* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */ extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur; #endif @@ -596,13 +597,17 @@ extern int clearenv (void) __THROW; #endif -#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +#if (defined __USE_MISC || defined __USE_XOPEN_EXTENDED) \ + && !defined __USE_XOPEN2K /* Generate a unique temporary file name from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique file name. */ extern char *mktemp (char *__template) __THROW __nonnull ((1)) __wur; +#endif +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED \ + || defined __USE_XOPEN2K8 /* Generate a unique temporary file name from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the filename unique. @@ -792,7 +797,8 @@ __END_NAMESPACE_C99 #endif -#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED +#if (defined __USE_SVID || defined __USE_XOPEN_EXTENDED) \ + && !defined __USE_XOPEN2K /* Convert floating point numbers to strings. The returned values are valid only until another call to the same function. */ @@ -880,7 +886,7 @@ extern int rpmatch (__const char *__response) __THROW __nonnull ((1)) __wur; #endif -#ifdef __USE_XOPEN_EXTENDED +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 /* Parse comma separated suboption from *OPTIONP and match against strings in TOKENS. If found return index and set *VALUEP to optional value introduced by an equal sign. If the suboption is @@ -902,7 +908,7 @@ extern void setkey (__const char *__key) __THROW __nonnull ((1)); /* X/Open pseudo terminal handling. */ -#ifdef __USE_XOPEN2K +#ifdef __USE_XOPEN2KXSI /* Return a master pseudo-terminal handle. */ extern int posix_openpt (int __oflag) __wur; #endif diff --git a/stdlib/strfmon_l.c b/stdlib/strfmon_l.c index eb7a17801a..7642753cb1 100644 --- a/stdlib/strfmon_l.c +++ b/stdlib/strfmon_l.c @@ -1,5 +1,5 @@ /* Formatting a monetary value according to the given locale. - Copyright (C) 1996,1997,2002,2004,2006,2009 Free Software Foundation, Inc. + Copyright (C) 1996,1997,2002,2004,2006,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -88,7 +88,7 @@ ssize_t __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, va_list ap) { - struct locale_data *current = loc->__locales[LC_MONETARY]; + struct __locale_data *current = loc->__locales[LC_MONETARY]; _IO_strfile f; struct printf_info info; char *dest; /* Pointer so copy the output. */ diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c index 9ddfa3fa66..cde1280e55 100644 --- a/stdlib/strtod_l.c +++ b/stdlib/strtod_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to float value, using given locale. - Copyright (C) 1997,1998,2002,2004,2005,2006,2007,2008,2009 + Copyright (C) 1997,1998,2002,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -214,15 +214,15 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, != 0); (void) __mpn_rshift (retval, &retval[shift / BITS_PER_MP_LIMB], - RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB), - shift % BITS_PER_MP_LIMB); - MPN_ZERO (&retval[RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB)], - shift / BITS_PER_MP_LIMB); + RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB), + shift % BITS_PER_MP_LIMB); + MPN_ZERO (&retval[RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB)], + shift / BITS_PER_MP_LIMB); } else if (shift > 0) { - round_limb = retval[0]; - round_bit = shift - 1; + round_limb = retval[0]; + round_bit = shift - 1; (void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, shift); } /* This is a hook for the m68k long double format, where the @@ -237,14 +237,14 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, if ((round_limb & (((mp_limb_t) 1) << round_bit)) != 0 && (more_bits || (retval[0] & 1) != 0 - || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) + || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) { mp_limb_t cy = __mpn_add_1 (retval, retval, RETURN_LIMB_SIZE, 1); if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy) || - ((MANT_DIG % BITS_PER_MP_LIMB) != 0 && - (retval[RETURN_LIMB_SIZE - 1] - & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0)) + ((MANT_DIG % BITS_PER_MP_LIMB) != 0 && + (retval[RETURN_LIMB_SIZE - 1] + & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0)) { ++exponent; (void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, 1); @@ -465,7 +465,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) /* Used in several places. */ int cnt; - struct locale_data *current = loc->__locales[LC_NUMERIC]; + struct __locale_data *current = loc->__locales[LC_NUMERIC]; if (__builtin_expect (group, 0)) { @@ -738,7 +738,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) grouping); #endif if (cp != tp) - { + { /* Less than the entire string was correctly grouped. */ if (tp == start_of_digits) @@ -1113,14 +1113,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) memcpy (retval, &num[least_idx], RETURN_LIMB_SIZE * sizeof (mp_limb_t)); else - { - for (i = least_idx; i < numsize - 1; ++i) - retval[i - least_idx] = (num[i] >> least_bit) - | (num[i + 1] - << (BITS_PER_MP_LIMB - least_bit)); - if (i - least_idx < RETURN_LIMB_SIZE) - retval[RETURN_LIMB_SIZE - 1] = num[i] >> least_bit; - } + { + for (i = least_idx; i < numsize - 1; ++i) + retval[i - least_idx] = (num[i] >> least_bit) + | (num[i + 1] + << (BITS_PER_MP_LIMB - least_bit)); + if (i - least_idx < RETURN_LIMB_SIZE) + retval[RETURN_LIMB_SIZE - 1] = num[i] >> least_bit; + } /* Check whether any limb beside the ones in RETVAL are non-zero. */ for (i = 0; num[i] == 0; ++i) @@ -1174,7 +1174,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) #if RETURN_LIMB_SIZE > 1 if (numsize < RETURN_LIMB_SIZE) # if RETURN_LIMB_SIZE == 2 - retval[numsize] = 0; + retval[numsize] = 0; # else MPN_ZERO (retval + numsize, RETURN_LIMB_SIZE - numsize); # endif @@ -1201,14 +1201,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) /* For the fractional part we need not process too many digits. One decimal digits gives us log_2(10) ~ 3.32 bits. If we now compute - ceil(BITS / 3) =: N + ceil(BITS / 3) =: N digits we should have enough bits for the result. The remaining decimal digits give us the information that more bits are following. This can be used while rounding. (Two added as a safety margin.) */ if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2) { - dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; - more_bits = 1; + dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; + more_bits = 1; } else more_bits = 0; @@ -1264,9 +1264,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) digits. This is done by a "quasi fix point" number representation. num: ddddddddddd . 0000000000000000000000 - |--- m ---| + |--- m ---| den: ddddddddddd n >= m - |--- n ---| + |--- n ---| */ count_leading_zeros (cnt, den[densize - 1]); diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c index ba0aba7919..9181bf10ee 100644 --- a/stdlib/strtol_l.c +++ b/stdlib/strtol_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to integer value, using given locale. - Copyright (C) 1997, 2002, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1997, 2002, 2004, 2006, 2007, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -243,7 +243,7 @@ INTERNAL (__strtol_l) (nptr, endptr, base, group, loc) #endif #ifdef USE_NUMBER_GROUPING - struct locale_data *current = loc->__locales[LC_NUMERIC]; + struct __locale_data *current = loc->__locales[LC_NUMERIC]; /* The thousands character of the current locale. */ # ifdef USE_WIDE_CHAR wchar_t thousands = L'\0'; diff --git a/string/strcoll_l.c b/string/strcoll_l.c index 8bd84b10aa..d8d11392e3 100644 --- a/string/strcoll_l.c +++ b/string/strcoll_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,96,97,2002, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,2002,2004,2007,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper , 1995. @@ -48,7 +48,7 @@ STRCOLL (s1, s2, l) const STRING_TYPE *s2; __locale_t l; { - struct locale_data *current = l->__locales[LC_COLLATE]; + struct __locale_data *current = l->__locales[LC_COLLATE]; uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; /* We don't assign the following values right away since it might be unnecessary in case there are no rules. */ diff --git a/string/string.h b/string/string.h index 3c760092f0..388402189f 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 20f2f149bd..351b426541 100644 --- a/string/strxfrm_l.c +++ b/string/strxfrm_l.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 2002, 2004, 2005, 2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,2002,2004-2006,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper , 1995. @@ -86,7 +85,7 @@ utf8_encode (char *buf, int val) size_t STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) { - struct locale_data *current = l->__locales[LC_COLLATE]; + struct __locale_data *current = l->__locales[LC_COLLATE]; uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; /* We don't assign the following values right away since it might be unnecessary in case there are no rules. */ @@ -137,7 +136,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) if (srclen == 0) { if (n != 0) - *dest = L('\0'); + *dest = L('\0'); return 0; } diff --git a/sysdeps/mach/hurd/bits/stat.h b/sysdeps/mach/hurd/bits/stat.h index c3f96660cc..3770f071de 100644 --- a/sysdeps/mach/hurd/bits/stat.h +++ b/sysdeps/mach/hurd/bits/stat.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1992,93,94,96,97,99,2000,2005 Free Software Foundation, Inc. +/* Copyright (C) 1992-1994,1996,1997,1999,2000,2005,2010 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/bsd/bits/stat.h b/sysdeps/unix/bsd/bits/stat.h index 84a58ffbc9..16e5c520fe 100644 --- a/sysdeps/unix/bsd/bits/stat.h +++ b/sysdeps/unix/bsd/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 96, 97, 99, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1996-2000,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/bits/stat.h b/sysdeps/unix/sysv/bits/stat.h index f9a9e614d5..a860b9fe8a 100644 --- a/sysdeps/unix/sysv/bits/stat.h +++ b/sysdeps/unix/sysv/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1996, 1997, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1996, 1997, 2000, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/bits/stat.h b/sysdeps/unix/sysv/linux/bits/stat.h index be5272333b..e3f1970086 100644 --- a/sysdeps/unix/sysv/linux/bits/stat.h +++ b/sysdeps/unix/sysv/linux/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995-2001, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995-2002, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h index 8eaf7c368b..6693889542 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 c65a11e1ca..33635fd9e0 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 75a3318286..98dadf9984 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/stat.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1999-2002, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h index 40fe1e50d7..fea347bfc2 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 81879ca1fe..9027376979 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2009 +/* Copyright (C) 1992, 1995-2002, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -17,7 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h index c9e6a4504b..aeb1e0fe9b 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 64be9a10fd..2cd5396eaa 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/stat.h +++ b/sysdeps/unix/sysv/linux/s390/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2001, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2002, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h index 8eaf7c368b..2a4123c610 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 03c5ba59bd..c491a415b4 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 175fdb8570..407ca2d7b5 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/stat.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995-2002, 2006, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1992,1995-2002,2006,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h b/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h index 43835081c0..aa04e0e490 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 9d12315e1a..cfc3f665dc 100644 --- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h +++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999,2000,2001,2002,2003,2009 Free Software Foundation, Inc. +/* Copyright (C) 1999-2003,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SYS_STAT_H +#if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." #endif diff --git a/time/alt_digit.c b/time/alt_digit.c index 95e4f07c73..9238911147 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 dc4fd54f4e..8cf266a3ff 100644 --- a/time/asctime.c +++ b/time/asctime.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1993,1995-1997,2000,2002,2005 +/* Copyright (C) 1991,1993,1995-1997,2000,2002,2005,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -24,12 +24,12 @@ #include /* This is defined in locale/C-time.c in the GNU libc. */ -extern const struct locale_data _nl_C_LC_TIME attribute_hidden; +extern const struct __locale_data _nl_C_LC_TIME attribute_hidden; #define ab_day_name(DAY) (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABDAY_1)+(DAY)].string) #define ab_month_name(MON) (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)+(MON)].string) static const char format[] = "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n"; -static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1]; +static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1]; static char * diff --git a/time/era.c b/time/era.c index a6f4a4cb07..6630747cc3 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 6777f487a2..aa91e3eb2b 100644 --- a/time/lc-time-cleanup.c +++ b/time/lc-time-cleanup.c @@ -1,5 +1,5 @@ /* Cleanup code for data structures kept by strftime/strptime helper functions. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ #include void internal_function -_nl_cleanup_time (struct locale_data *locale) +_nl_cleanup_time (struct __locale_data *locale) { struct lc_time_data *const data = locale->private.time; if (data != NULL) diff --git a/time/strftime_l.c b/time/strftime_l.c index deb75c8e94..08c2aeb32b 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 c4a0638fff..ccd2a90705 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 2b46131b14..328f16497c 100644 --- a/wcsmbs/wcsmbsload.c +++ b/wcsmbs/wcsmbsload.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2002,2004,2005,2008 Free Software Foundation, Inc. +/* Copyright (C) 1998-2002,2004,2005,2008,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -150,7 +150,7 @@ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) /* Load conversion functions for the currently selected locale. */ void internal_function -__wcsmbs_load_conv (struct locale_data *new_category) +__wcsmbs_load_conv (struct __locale_data *new_category) { /* Acquire the lock. */ __libc_rwlock_wrlock (__libc_setlocale_lock); @@ -253,7 +253,7 @@ __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name) } void internal_function -_nl_cleanup_ctype (struct locale_data *locale) +_nl_cleanup_ctype (struct __locale_data *locale) { const struct gconv_fcts *const data = locale->private.ctype; if (data != NULL) diff --git a/wcsmbs/wcsmbsload.h b/wcsmbs/wcsmbsload.h index 0cf5da4f88..e2b1bfa9c8 100644 --- a/wcsmbs/wcsmbsload.h +++ b/wcsmbs/wcsmbsload.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1998-2002, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -38,7 +38,7 @@ struct gconv_fcts extern const struct gconv_fcts __wcsmbs_gconv_fcts_c attribute_hidden; /* Load conversion functions for the currently selected locale. */ -extern void __wcsmbs_load_conv (struct locale_data *new_category) +extern void __wcsmbs_load_conv (struct __locale_data *new_category) internal_function; /* Clone the current `__wcsmbs_load_conv' value. */ @@ -50,7 +50,7 @@ extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name) internal_function; /* Function used for the `private.cleanup' hook. */ -extern void _nl_cleanup_ctype (struct locale_data *) +extern void _nl_cleanup_ctype (struct __locale_data *) internal_function attribute_hidden; @@ -62,12 +62,12 @@ extern struct __gconv_step *__wcsmbs_getfct (const char *to, const char *from, size_t *nstepsp) attribute_hidden; -extern const struct locale_data _nl_C_LC_CTYPE attribute_hidden; +extern const struct __locale_data _nl_C_LC_CTYPE attribute_hidden; /* Check whether the LC_CTYPE locale changed since the last call. Update the pointers appropriately. */ static inline const struct gconv_fcts * -get_gconv_fcts (struct locale_data *data) +get_gconv_fcts (struct __locale_data *data) { if (__builtin_expect (data->private.ctype == NULL, 0)) { -- cgit v1.2.3 From cd2f000c074b07931bd78ab5ff5fa3c0f7db628a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 00:39:22 -0800 Subject: Fix standalone stdio.h inclusion. --- ChangeLog | 7 +++++++ conform/conformtest.pl | 19 +++++++++++-------- conform/data/stdio.h-data | 3 +++ libio/stdio.h | 24 ++++++++++++++++++++++-- 4 files changed, 43 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0ff613c6f6..8c93df2699 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ +2010-01-10 Ulrich Drepper + + [BZ #11125] + * libio/stdio.h: Define va_list, off_t, and ssize_t. + 2010-01-09 Ulrich Drepper + * libio/stdio.h: Define va_list also for XPG7. + * conform/conformtest.pl: Update for XPG7 and some bug fixes. * conform/data/ctype.h-data: Likewise. * conform/data/dirent.h-data: Likewise. diff --git a/conform/conformtest.pl b/conform/conformtest.pl index e594d87972..c528127cee 100644 --- a/conform/conformtest.pl +++ b/conform/conformtest.pl @@ -56,14 +56,17 @@ $CFLAGS{"POSIX2008"} = "-I. -fno-builtin '-D__attribute__(x)=' -D_POSIX_C_SOURCE # These are symbols which are known to pollute the namespace. @knownproblems = ('unix', 'linux', 'i386'); -# Some headers need a bit more attention. -$mustprepend{'inttypes.h'} = "#include \n"; -$mustprepend{'regex.h'} = "#include \n"; -$mustprepend{'sched.h'} = "#include \n"; -$mustprepend{'signal.h'} = "#include \n"; -$mustprepend{'stdio.h'} = "#include \n"; -$mustprepend{'wchar.h'} = "#include \n"; -$mustprepend{'wordexp.h'} = "#include \n"; +if ($dialect ne "XOPEN2K8" && $dialect ne "POSIX2008") { + # Some headers need a bit more attention. At least with XPG7 + # all headers should be self-contained. + $mustprepend{'inttypes.h'} = "#include \n"; + $mustprepend{'regex.h'} = "#include \n"; + $mustprepend{'sched.h'} = "#include \n"; + $mustprepend{'signal.h'} = "#include \n"; + $mustprepend{'stdio.h'} = "#include \n"; + $mustprepend{'wchar.h'} = "#include \n"; + $mustprepend{'wordexp.h'} = "#include \n"; +} # Make a hash table from this information. while ($#keywords >= 0) { diff --git a/conform/data/stdio.h-data b/conform/data/stdio.h-data index fcc61c9df4..cba7721d9a 100644 --- a/conform/data/stdio.h-data +++ b/conform/data/stdio.h-data @@ -36,11 +36,14 @@ type va_list type size_t #if defined XOPEN2K8 || defined POSIX2008 type off_t +type ssize_t #endif function void clearerr (FILE*) function {char*} ctermid (char*) +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function {char*} cuserid (char*) +#endif #if defined XOPEN2K8 || defined POSIX2008 function int dprintf (int, const char*, ...) #endif diff --git a/libio/stdio.h b/libio/stdio.h index d7d241c925..85542b1cfd 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -1,5 +1,5 @@ /* Define ISO C stdio on top of C++ iostreams. - Copyright (C) 1991, 1994-2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1991, 1994-2008, 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 @@ -74,7 +74,7 @@ typedef struct _IO_FILE __FILE; #include -#ifdef __USE_XOPEN +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 # ifdef __GNUC__ # ifndef _VA_LIST_DEFINED typedef _G_va_list va_list; @@ -85,6 +85,26 @@ typedef _G_va_list va_list; # endif #endif +#ifdef __USE_XOPEN2K8 +# ifndef __off_t_defined +# ifndef __USE_FILE_OFFSET64 +typedef __off_t off_t; +# else +typedef __off64_t off_t; +# endif +# define __off_t_defined +# endif +# if defined __USE_LARGEFILE64 && !defined __off64_t_defined +typedef __off64_t off64_t; +# define __off64_t_defined +# endif + +# ifndef __ssize_t_defined +typedef __ssize_t ssize_t; +# define __ssize_t_defined +# endif +#endif + /* The type of the second argument to `fgetpos' and `fsetpos'. */ __BEGIN_NAMESPACE_STD #ifndef __USE_FILE_OFFSET64 -- cgit v1.2.3 From b2660fb6245b866f1123a85231b98a0c43b28e6b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 00:46:27 -0800 Subject: Missing CLs. --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 8c93df2699..066be217a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ [BZ #11125] * libio/stdio.h: Define va_list, off_t, and ssize_t. + * conform/conformtest.pl: For XPG7 testing the headers are supposed to + be self-contained. + + * conform/data/stdio.h-data: Expect off_t and ssize_t. + 2010-01-09 Ulrich Drepper * libio/stdio.h: Define va_list also for XPG7. -- cgit v1.2.3 From 18598ff1051f2cbe545822036a615d9a5dbae5c0 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 02:08:32 -0800 Subject: Cleanup strings.h. Cleanup the strings.h header for XPG7 and update the tests. --- ChangeLog | 8 ++++++++ conform/data/strings.h-data | 6 ++++-- string/strings.h | 33 +++++++++++++++++++-------------- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 066be217a5..63c3064f7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,16 @@ 2010-01-10 Ulrich Drepper + * string/strings.h: Don't declare obsolete functions for XPG7. + Declare ffs only for XSI. + * conform/data/strings.h-data: Update for XPG7. + +2010-01-10 Jakub Jelinek + [BZ #11125] * libio/stdio.h: Define va_list, off_t, and ssize_t. +2010-01-10 Ulrich Drepper + * conform/conformtest.pl: For XPG7 testing the headers are supposed to be self-contained. diff --git a/conform/data/strings.h-data b/conform/data/strings.h-data index fb4f02c75d..01cd867426 100644 --- a/conform/data/strings.h-data +++ b/conform/data/strings.h-data @@ -1,11 +1,13 @@ +#if !defined XOPEN2K8 && !defined POSIX2008 function int bcmp (const void*, const void*, size_t) function void bcopy (const void*, void*, size_t) function void bzero (void*, size_t) +function {char*} index (const char*, int) +function {char*} rindex (const char*, int) +#endif #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 diff --git a/string/strings.h b/string/strings.h index 16ab6b1c4d..a3dde714f3 100644 --- a/string/strings.h +++ b/string/strings.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,92,96,97,99,2000,2001,2009 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1996,1997,1999,2000,2001,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 @@ -35,6 +36,7 @@ __BEGIN_DECLS +# if !defined __USE_XOPEN2K8 || defined __USE_GNU /* Compare N bytes of S1 and S2 (same as memcmp). */ extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __THROW __attribute_pure__; @@ -45,12 +47,8 @@ extern void bcopy (__const void *__src, void *__dest, size_t __n) __THROW; /* Set N bytes of S to 0. */ extern void bzero (void *__s, size_t __n) __THROW; -/* Return the position of the first bit set in I, or 0 if none are set. - The least-significant bit is position 1, the most-significant 32. */ -extern int ffs (int __i) __THROW __attribute__ ((const)); - /* Find the first occurrence of C in S (same as strchr). */ -# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO +# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO extern "C++" { extern char *index (char *__s, int __c) @@ -58,7 +56,7 @@ extern char *index (char *__s, int __c) extern __const char *index (__const char *__s, int __c) __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); -# if defined __OPTIMIZE__ && !defined __CORRECT_ISO_CPP_STRING_H_PROTO +# if defined __OPTIMIZE__ && !defined __CORRECT_ISO_CPP_STRING_H_PROTO __extern_always_inline char * index (char *__s, int __c) __THROW { @@ -70,15 +68,15 @@ index (__const char *__s, int __c) __THROW { return __builtin_index (__s, __c); } -# endif +# endif } -# else +# else extern char *index (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); -# endif +# endif /* Find the last occurrence of C in S (same as strrchr). */ -# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO +# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO extern "C++" { extern char *rindex (char *__s, int __c) @@ -86,7 +84,7 @@ extern char *rindex (char *__s, int __c) extern __const char *rindex (__const char *__s, int __c) __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); -# if defined __OPTIMIZE__ && !defined __CORRECT_ISO_CPP_STRING_H_PROTO +# if defined __OPTIMIZE__ && !defined __CORRECT_ISO_CPP_STRING_H_PROTO __extern_always_inline char * rindex (char *__s, int __c) __THROW { @@ -98,13 +96,20 @@ rindex (__const char *__s, int __c) __THROW { return __builtin_rindex (__s, __c); } -#endif +# endif } -# else +# else extern char *rindex (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); +# endif # endif +#if !defined __USE_XOPEN2K8 || defined __USE_XOPEN2K8XSI +/* Return the position of the first bit set in I, or 0 if none are set. + The least-significant bit is position 1, the most-significant 32. */ +extern int ffs (int __i) __THROW __attribute__ ((const)); +#endif + /* Compare S1 and S2, ignoring case. */ extern int strcasecmp (__const char *__s1, __const char *__s2) __THROW __attribute_pure__; -- cgit v1.2.3 From df06f4855e94542fd69d920f2ddfb39275993f94 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 06:37:41 -0800 Subject: Fix glob.h for XPG7. --- ChangeLog | 2 ++ posix/glob.h | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 63c3064f7a..1d91788ba2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ [BZ #11125] * libio/stdio.h: Define va_list, off_t, and ssize_t. + * posix/glob.h: Define size_t. + 2010-01-10 Ulrich Drepper * conform/conformtest.pl: For XPG7 testing the headers are supposed to diff --git a/posix/glob.h b/posix/glob.h index 3d401f082c..89a1886b29 100644 --- a/posix/glob.h +++ b/posix/glob.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,92,95-98,2000,2001,2004 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1995-1998,2000,2001,2004,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 @@ -27,7 +28,7 @@ __BEGIN_DECLS #ifndef __size_t # if defined __GNUC__ && __GNUC__ >= 2 typedef __SIZE_TYPE__ __size_t; -# ifdef __USE_XOPEN +# if defined __USE_XOPEN || __USE_XOPEN2K8 typedef __SIZE_TYPE__ size_t; # endif # else -- cgit v1.2.3 From f9cfa295ae3f2556bd8808f0ff693cfe44f4ac25 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 07:16:54 -0800 Subject: Fix up sys/types.h for XPG7. Also fix a test. --- ChangeLog | 2 ++ conform/data/sys/types.h-data | 1 - posix/sys/types.h | 11 ++++++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1d91788ba2..1410b79e30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2010-01-10 Ulrich Drepper + * posix/sys/types.h: Define id_t, clock_t, blksize_t for XPG7. + * string/strings.h: Don't declare obsolete functions for XPG7. Declare ffs only for XSI. * conform/data/strings.h-data: Update for XPG7. diff --git a/conform/data/sys/types.h-data b/conform/data/sys/types.h-data index be61d08751..c0b4ab73ee 100644 --- a/conform/data/sys/types.h-data +++ b/conform/data/sys/types.h-data @@ -39,7 +39,6 @@ type suseconds_t type time_t type timer_t type uid_t -type useconds_t allow *_t #endif diff --git a/posix/sys/types.h b/posix/sys/types.h index 04563a4abc..a7e9084e2e 100644 --- a/posix/sys/types.h +++ b/posix/sys/types.h @@ -1,5 +1,4 @@ -/* Copyright (C) 1991,1992,1994,1995,1996,1997,1998,1999,2000,2001,2002,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1994-2002,2006,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 @@ -101,7 +100,8 @@ typedef __pid_t pid_t; # define __pid_t_defined #endif -#if (defined __USE_SVID || defined __USE_XOPEN) && !defined __id_t_defined +#if (defined __USE_SVID || defined __USE_XOPEN || defined __USE_XOPEN2K8) \ + && !defined __id_t_defined typedef __id_t id_t; # define __id_t_defined #endif @@ -124,7 +124,7 @@ typedef __key_t key_t; # define __key_t_defined #endif -#ifdef __USE_XOPEN +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 # define __need_clock_t #endif #define __need_time_t @@ -224,7 +224,8 @@ typedef int register_t __attribute__ ((__mode__ (__word__))); #endif /* Use BSD. */ -#if defined __USE_UNIX98 && !defined __blksize_t_defined +#if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) \ + && !defined __blksize_t_defined typedef __blksize_t blksize_t; # define __blksize_t_defined #endif -- cgit v1.2.3 From 99d46ae3794830e996717a53c8551d758a64eeb5 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 11:06:06 -0800 Subject: Fix up sys/wait.h header for XPG7. --- ChangeLog | 2 ++ conform/data/sys/wait.h-data | 2 ++ posix/sys/wait.h | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1410b79e30..00c7710658 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,8 @@ * posix/glob.h: Define size_t. + * posix/sys/wait.h: Define idtype_t and declare waitid for XPG7. + 2010-01-10 Ulrich Drepper * conform/conformtest.pl: For XPG7 testing the headers are supposed to diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data index 81c0dc44f8..2fd4c8decf 100644 --- a/conform/data/sys/wait.h-data +++ b/conform/data/sys/wait.h-data @@ -48,7 +48,9 @@ element {struct rusage} {struct timeval} ru_stime type pid_t function pid_t wait (int*) +#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 function pid_t wait3 (int*, int, struct rusage*) +#endif function int waitid (idtype_t, id_t, siginfo_t*, int) function pid_t waitpid (pid_t, int*, int) diff --git a/posix/sys/wait.h b/posix/sys/wait.h index d9248426dc..bb98c00396 100644 --- a/posix/sys/wait.h +++ b/posix/sys/wait.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1994,1996-2001,2003,2004,2005,2007,2009 +/* Copyright (C) 1991-1994,1996-2001,2003,2004,2005,2007,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -45,7 +45,7 @@ __BEGIN_DECLS # if defined __GNUC__ && !defined __cplusplus # define __WAIT_INT(status) \ (__extension__ (((union { __typeof(status) __in; int __i; }) \ - { .__in = (status) }).__i)) + { .__in = (status) }).__i)) # else # define __WAIT_INT(status) (*(__const int *) &(status)) # endif @@ -98,7 +98,7 @@ typedef union #endif /* The following values are used by the `waitid' function. */ -#if defined __USE_SVID || defined __USE_XOPEN +#if defined __USE_SVID || defined __USE_XOPEN || defined __USE_XOPEN2K8 typedef enum { P_ALL, /* Wait for any child. */ @@ -138,7 +138,7 @@ extern __pid_t wait (__WAIT_STATUS __stat_loc); __THROW. */ extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options); -#if defined __USE_SVID || defined __USE_XOPEN +#if defined __USE_SVID || defined __USE_XOPEN || defined __USE_XOPEN2K8 # define __need_siginfo_t # include /* Wait for a childing matching IDTYPE and ID to change the status and -- cgit v1.2.3 From 33780b6d332af9d94216eff880734be7748c2269 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Jan 2010 18:43:30 -0800 Subject: FIx up signal.h for XPG7. --- ChangeLog | 9 +++++++++ conform/data/signal.h-data | 9 ++++++++- signal/signal.h | 6 +++--- sysdeps/unix/sysv/linux/bits/sigaction.h | 4 +++- sysdeps/unix/sysv/linux/ia64/bits/sigaction.h | 4 +++- sysdeps/unix/sysv/linux/s390/bits/sigaction.h | 4 +++- sysdeps/unix/sysv/linux/sparc/bits/sigaction.h | 4 +++- 7 files changed, 32 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 00c7710658..8dd1c05efe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2010-01-10 Ulrich Drepper + * sysdeps/unix/sysv/linux/bits/sigaction.h: SA_RESTART, SA_NODEFER, + and SA_RESETHAND now available in Base. + * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. + * conform/data/signal.h-data: Update for XPG7. + * posix/sys/types.h: Define id_t, clock_t, blksize_t for XPG7. * string/strings.h: Don't declare obsolete functions for XPG7. @@ -15,6 +22,8 @@ * posix/sys/wait.h: Define idtype_t and declare waitid for XPG7. + * signal/signal.h: Define size_t, mcontext_t, and ucontext_t for XPG7. + 2010-01-10 Ulrich Drepper * conform/conformtest.pl: For XPG7 testing the headers are supposed to diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data index b48a1ff7da..6dbf1fb847 100644 --- a/conform/data/signal.h-data +++ b/conform/data/signal.h-data @@ -1,6 +1,8 @@ typed-constant SIG_DFL {void(*)(int)} typed-constant SIG_ERR {void(*)(int)} +#if !defined ISO && !defined POSIX && !defined POSIX2008 typed-constant SIG_HOLD {void(*)(int)} +#endif typed-constant SIG_IGN {void(*)(int)} type sig_atomic_t @@ -14,11 +16,14 @@ 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 + +type {struct timespec} +element {struct timespec} __time_t tv_sec +element {struct timespec} long tv_nsec #endif element {union sigval} int sival_int @@ -173,7 +178,9 @@ constant SI_TIMER constant SI_ASYNCIO constant SI_MESGQ +#if !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008 function void (*bsd_signal (int, void(*)(int)))(int) +#endif function int kill (pid_t, int) #if !defined POSIX && !defined POSIX2008 function int killpg (pid_t, int) diff --git a/signal/signal.h b/signal/signal.h index 67f8cb4d3c..2bdf648dff 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2003, 2004, 2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1991-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 @@ -344,7 +344,7 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; #endif /* use BSD. */ -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 # define __need_size_t # include @@ -354,7 +354,7 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; extern int siginterrupt (int __sig, int __interrupt) __THROW; # include -# ifdef __USE_XOPEN +# if defined __USE_XOPEN || defined __USE_XOPEN2K8 /* This will define `ucontext_t' and `mcontext_t'. */ # include # endif diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h index 48cc5312f4..62be069205 100644 --- a/sysdeps/unix/sysv/linux/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/bits/sigaction.h @@ -1,5 +1,5 @@ /* The proper definitions for Linux's sigaction. - Copyright (C) 1993-1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 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 @@ -57,6 +57,8 @@ struct sigaction three arguments instead of one. */ #if defined __USE_UNIX98 || defined __USE_MISC # define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ +#endif +#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8 # define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ # define SA_NODEFER 0x40000000 /* Don't automatically block the signal when its handler is being executed. */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h index 11599d5208..b557eaa3e0 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h @@ -1,5 +1,5 @@ /* Definitions for Linux/ia64 sigaction. - Copyright (C) 1996, 1997, 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000, 2003, 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 @@ -53,6 +53,8 @@ struct sigaction #define SA_SIGINFO 0x00000004 #if defined __USE_UNIX98 || defined __USE_MISC # define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ +#endif +#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8 # define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ # define SA_NODEFER 0x40000000 /* Don't automatically block the signal when its handler is being executed. */ diff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h index 308cb5bd7a..8767d67851 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h @@ -1,5 +1,5 @@ /* Definitions for 31 & 64 bit S/390 sigaction. - Copyright (C) 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 2001, 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 @@ -90,6 +90,8 @@ struct sigaction three arguments instead of one. */ #if defined __USE_UNIX98 || defined __USE_MISC # define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ +#endif +#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8 # define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ # define SA_NODEFER 0x40000000 /* Don't automatically block the signal when its handler is being executed. */ diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h index ee4196764d..e474dbe26f 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h @@ -1,5 +1,5 @@ /* The proper definitions for Linux/SPARC sigaction. - Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 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 @@ -58,6 +58,8 @@ struct sigaction three arguments instead of one. */ #if defined __USE_UNIX98 || defined __USE_MISC # define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */ +#endif +#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8 # define SA_RESTART 0x00000002 /* Restart syscall on signal return. */ # define SA_INTERRUPT 0x00000010 /* Historical no-op. */ # define SA_NOMASK 0x00000020 /* Don't automatically block the signal when -- cgit v1.2.3