[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r9737 - in /trunk: libc/ libc/bits/ libc/conform/ libc/conform/data/ libc/conform/data/sys/ libc/dirent/ libc/elf/ libc/grp/...



Author: joseph
Date: Tue Jan 26 03:27:38 2010
New Revision: 9737

Log:
Merge changes between r9569 and r9736 from /fsf/trunk.

Added:
    trunk/libc/sysdeps/i386/i686/bcopy.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/bcopy.S
    trunk/libc/sysdeps/i386/i686/multiarch/bcopy-ssse3-rep.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/bcopy-ssse3-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/bcopy-ssse3.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/bcopy-ssse3.S
    trunk/libc/sysdeps/i386/i686/multiarch/bcopy.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/bcopy.S
    trunk/libc/sysdeps/i386/i686/multiarch/bzero-sse2-rep.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/bzero-sse2-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/bzero-sse2.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/bzero-sse2.S
    trunk/libc/sysdeps/i386/i686/multiarch/bzero.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/bzero.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcpy.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memcpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcpy_chk.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memcpy_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/memmove-ssse3-rep.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memmove-ssse3-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/memmove-ssse3.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memmove-ssse3.S
    trunk/libc/sysdeps/i386/i686/multiarch/memmove.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memmove.S
    trunk/libc/sysdeps/i386/i686/multiarch/memmove_chk.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memmove_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/mempcpy-ssse3-rep.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/mempcpy-ssse3-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/mempcpy-ssse3.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/mempcpy-ssse3.S
    trunk/libc/sysdeps/i386/i686/multiarch/mempcpy.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/mempcpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/mempcpy_chk.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/mempcpy_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset-sse2.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memset-sse2.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memset.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset_chk.S
      - copied unchanged from r9736, fsf/trunk/libc/sysdeps/i386/i686/multiarch/memset_chk.S
    trunk/libc/sysdeps/powerpc/powerpc32/cell/
      - copied from r9736, fsf/trunk/libc/sysdeps/powerpc/powerpc32/cell/
    trunk/libc/sysdeps/powerpc/powerpc64/cell/
      - copied from r9736, fsf/trunk/libc/sysdeps/powerpc/powerpc64/cell/
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/
      - copied from r9736, fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/
      - copied from r9736, fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/
Modified:
    trunk/libc/ChangeLog
    trunk/libc/Makeconfig
    trunk/libc/Versions.def
    trunk/libc/bits/confname.h
    trunk/libc/conform/conformtest.pl
    trunk/libc/conform/data/complex.h-data
    trunk/libc/conform/data/ctype.h-data
    trunk/libc/conform/data/dirent.h-data
    trunk/libc/conform/data/errno.h-data
    trunk/libc/conform/data/fcntl.h-data
    trunk/libc/conform/data/fmtmsg.h-data
    trunk/libc/conform/data/fnmatch.h-data
    trunk/libc/conform/data/ftw.h-data
    trunk/libc/conform/data/glob.h-data
    trunk/libc/conform/data/grp.h-data
    trunk/libc/conform/data/iconv.h-data
    trunk/libc/conform/data/inttypes.h-data
    trunk/libc/conform/data/langinfo.h-data
    trunk/libc/conform/data/libgen.h-data
    trunk/libc/conform/data/limits.h-data
    trunk/libc/conform/data/locale.h-data
    trunk/libc/conform/data/math.h-data
    trunk/libc/conform/data/monetary.h-data
    trunk/libc/conform/data/mqueue.h-data
    trunk/libc/conform/data/ndbm.h-data
    trunk/libc/conform/data/netdb.h-data
    trunk/libc/conform/data/pthread.h-data
    trunk/libc/conform/data/pwd.h-data
    trunk/libc/conform/data/regex.h-data
    trunk/libc/conform/data/sched.h-data
    trunk/libc/conform/data/search.h-data
    trunk/libc/conform/data/semaphore.h-data
    trunk/libc/conform/data/setjmp.h-data
    trunk/libc/conform/data/signal.h-data
    trunk/libc/conform/data/spawn.h-data
    trunk/libc/conform/data/stdio.h-data
    trunk/libc/conform/data/stdlib.h-data
    trunk/libc/conform/data/string.h-data
    trunk/libc/conform/data/strings.h-data
    trunk/libc/conform/data/sys/ipc.h-data
    trunk/libc/conform/data/sys/msg.h-data
    trunk/libc/conform/data/sys/resource.h-data
    trunk/libc/conform/data/sys/select.h-data
    trunk/libc/conform/data/sys/sem.h-data
    trunk/libc/conform/data/sys/shm.h-data
    trunk/libc/conform/data/sys/socket.h-data
    trunk/libc/conform/data/sys/stat.h-data
    trunk/libc/conform/data/sys/time.h-data
    trunk/libc/conform/data/sys/types.h-data
    trunk/libc/conform/data/sys/uio.h-data
    trunk/libc/conform/data/sys/wait.h-data
    trunk/libc/conform/data/syslog.h-data
    trunk/libc/conform/data/tar.h-data
    trunk/libc/conform/data/termios.h-data
    trunk/libc/conform/data/tgmath.h-data
    trunk/libc/conform/data/time.h-data
    trunk/libc/conform/data/ulimit.h-data
    trunk/libc/conform/data/unistd.h-data
    trunk/libc/conform/data/utmpx.h-data
    trunk/libc/conform/data/wchar.h-data
    trunk/libc/conform/data/wctype.h-data
    trunk/libc/conform/data/wordexp.h-data
    trunk/libc/dirent/dirent.h
    trunk/libc/elf/dl-open.c
    trunk/libc/elf/dl-sysdep.c
    trunk/libc/elf/dynamic-link.h
    trunk/libc/elf/elf.h
    trunk/libc/elf/rtld.c
    trunk/libc/grp/grp.h
    trunk/libc/iconv/iconv_prog.c
    trunk/libc/include/features.h
    trunk/libc/io/fcntl.h
    trunk/libc/io/sys/stat.h
    trunk/libc/libio/stdio.h
    trunk/libc/locale/C-address.c
    trunk/libc/locale/C-collate.c
    trunk/libc/locale/C-ctype.c
    trunk/libc/locale/C-identification.c
    trunk/libc/locale/C-measurement.c
    trunk/libc/locale/C-messages.c
    trunk/libc/locale/C-monetary.c
    trunk/libc/locale/C-name.c
    trunk/libc/locale/C-numeric.c
    trunk/libc/locale/C-paper.c
    trunk/libc/locale/C-telephone.c
    trunk/libc/locale/C-time.c
    trunk/libc/locale/findlocale.c
    trunk/libc/locale/global-locale.c
    trunk/libc/locale/loadarchive.c
    trunk/libc/locale/loadlocale.c
    trunk/libc/locale/localeinfo.h
    trunk/libc/locale/nl_langinfo_l.c
    trunk/libc/locale/setlocale.c
    trunk/libc/locale/xlocale.c
    trunk/libc/locale/xlocale.h
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/locales/i18n
    trunk/libc/malloc/malloc.c
    trunk/libc/manual/install.texi
    trunk/libc/misc/bits/syslog.h
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/Versions
    trunk/libc/nptl/pthread_mutex_consistent.c
    trunk/libc/nptl/pthread_mutexattr_getrobust.c
    trunk/libc/nptl/pthread_mutexattr_setrobust.c
    trunk/libc/nptl/sysdeps/pthread/pthread.h
    trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
    trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
    trunk/libc/posix/confstr.c
    trunk/libc/posix/confstr.inc
    trunk/libc/posix/glob.h
    trunk/libc/posix/regcomp.c
    trunk/libc/posix/regex_internal.c
    trunk/libc/posix/regexec.c
    trunk/libc/posix/sched.h
    trunk/libc/posix/sys/types.h
    trunk/libc/posix/sys/wait.h
    trunk/libc/posix/unistd.h
    trunk/libc/resolv/netdb.h
    trunk/libc/resolv/res_send.c
    trunk/libc/signal/signal.h
    trunk/libc/stdio-common/vfscanf.c
    trunk/libc/stdlib/stdlib.h
    trunk/libc/stdlib/strfmon_l.c
    trunk/libc/stdlib/strtod_l.c
    trunk/libc/stdlib/strtol_l.c
    trunk/libc/string/strcoll_l.c
    trunk/libc/string/string.h
    trunk/libc/string/strings.h
    trunk/libc/string/strxfrm_l.c
    trunk/libc/sysdeps/generic/ldsodefs.h
    trunk/libc/sysdeps/generic/netinet/ip.h
    trunk/libc/sysdeps/i386/i686/cacheinfo.c
    trunk/libc/sysdeps/i386/i686/memcpy.S
    trunk/libc/sysdeps/i386/i686/memmove.S
    trunk/libc/sysdeps/i386/i686/mempcpy.S
    trunk/libc/sysdeps/i386/i686/memset.S
    trunk/libc/sysdeps/i386/i686/multiarch/Makefile
    trunk/libc/sysdeps/i386/i686/multiarch/ifunc-defines.sym
    trunk/libc/sysdeps/i386/sysdep.h
    trunk/libc/sysdeps/ieee754/ldbl-128/s_ceill.c
    trunk/libc/sysdeps/ieee754/ldbl-128/s_expm1l.c
    trunk/libc/sysdeps/ieee754/ldbl-128/s_floorl.c
    trunk/libc/sysdeps/ieee754/ldbl-128/s_log1pl.c
    trunk/libc/sysdeps/ieee754/ldbl-128/s_nexttowardf.c
    trunk/libc/sysdeps/mach/hurd/bits/libc-lock.h
    trunk/libc/sysdeps/mach/hurd/bits/stat.h
    trunk/libc/sysdeps/s390/s390-32/dl-machine.h
    trunk/libc/sysdeps/s390/s390-32/elf/start.S
    trunk/libc/sysdeps/unix/bsd/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/linux/bits/sigaction.h
    trunk/libc/sysdeps/unix/sysv/linux/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
    trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
    trunk/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/stat.h
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
    trunk/libc/sysdeps/x86_64/cacheinfo.c
    trunk/libc/sysdeps/x86_64/multiarch/ifunc-defines.sym
    trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
    trunk/libc/sysdeps/x86_64/multiarch/init-arch.h
    trunk/libc/sysdeps/x86_64/multiarch/strlen.S
    trunk/libc/sysdeps/x86_64/strcmp.S
    trunk/libc/termios/termios.h
    trunk/libc/time/alt_digit.c
    trunk/libc/time/asctime.c
    trunk/libc/time/era.c
    trunk/libc/time/lc-time-cleanup.c
    trunk/libc/time/strftime_l.c
    trunk/libc/time/strptime_l.c
    trunk/libc/wcsmbs/wcsmbsload.c
    trunk/libc/wcsmbs/wcsmbsload.h
    trunk/ports/ChangeLog.arm
    trunk/ports/ChangeLog.m68k
    trunk/ports/ChangeLog.mips
    trunk/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
    trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
    trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/stat.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/bits/stat.h

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Tue Jan 26 03:27:38 2010
@@ -1,3 +1,530 @@
+2010-01-25  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* iconv/iconv_prog.c (write_output): Fix check for open failure.
+
+2010-01-22  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #11200]
+	* locale/loadlocale.c (_nl_load_locale): Fix recognition of genuine
+	mmap resource problem.  Patch by Joe Landers <jlanders@xxxxxxxxxx>.
+
+2010-01-22  Jim Meyering  <jim@xxxxxxxxxxxx>
+
+	[BZ #11193]
+	* posix/regexec.c (extend_buffers): Avoid overflow in realloc
+	buffer length computation.
+
+	[BZ #11192]
+	* posix/regexec.c (re_copy_regs): Don't leak when allocation
+	of the start buffer succeeds but allocation of the "end" one fails.
+
+	[BZ #11191]
+	* posix/regexec.c (re_search_2_stub): Check for overflow
+	when adding the sizes of the two strings.
+
+	[BZ #11190]
+	* posix/regexec.c (re_search_internal): Avoid overflow
+	in computing re_malloc buffer size.
+
+	[BZ #11189]
+	* posix/regexec.c (prune_impossible_nodes): Avoid overflow
+	in computing re_malloc buffer size.
+
+	[BZ #11188]
+	* posix/regexec.c (build_trtable): Avoid arithmetic overflow
+	in size calculation.
+
+	[BZ #11187]
+	* posix/regexec.c (re_search_2_stub): Use simpler method than
+	boolean for freeing internal storage.
+
+2010-01-22  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* posix/regex_internal.c (re_string_skip_chars): Simplify test for
+	failed mbrtowc call.
+
+2010-01-22  Jim Meyering  <jim@xxxxxxxxxxxx>
+
+	[BZ #11186]
+	* posix/regex_internal.c (re_string_skip_chars): Don't assume WEOF
+	fits in wchar_t.  Problem reported by Eric Blake.
+
+	[BZ #11185]
+	* posix/regex_internal.c (re_string_reconstruct): Remove declaration
+	and stores into set-but-not-used local, "q".
+
+	[BZ #11184]
+	* posix/regex_internal.c (re_dfa_add_node): Extend the overflow
+	detection test.  Patch by Paul Eggert.
+
+	[BZ #11183]
+	* posix/regex_internal.c (re_string_realloc_buffers):
+	Detect and handle internal overflow.  Patch by Paul Eggert
+
+2010-01-20  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
+	(CHECK_SP): Fix check for alternate stack.
+	* sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
+	(CHECK_SP): Likewise.
+
+2010-01-19  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/i386/i686/multiarch/memmove.S: Also check
+	bit_Fast_Rep_String when SHARED isn't defined.
+
+2010-01-19  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #11194]
+	* misc/bits/syslog.h (syslog, vsyslog): Remove unnecessary return.
+
+2010-01-17  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
+
+	* sysdeps/mach/hurd/bits/libc-lock.h
+	(__rtld_lock_recursive_t): New type.
+	(__rtld_lock_initialize): New macro.
+
+2010-01-14  Ryan S. Arnold  <rsa@xxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/cell/memcpy.S: New file.
+	* sysdeps/powerpc/powerpc64/cell/memcpy.S: New file.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies: New file.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies: New file.
+
+2010-01-18  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Remove duplicate
+	definitions of O_DSYNC and O_RSYNC.
+
+	* elf/dynamic-link.h (elf_get_dynamic_info): Use correct type when
+	casting d_tag.
+
+	* elf/dynamic-link.h (elf_get_dynamic_info): Ignore negative
+	dynamic entry types.
+
+2010-01-16  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* sysdeps/ieee754/ldbl-128/s_ceill.c (huge): Add L suffix to the
+	constant.
+	* sysdeps/ieee754/ldbl-128/s_floorl.c (huge): Likewise.
+	* sysdeps/ieee754/ldbl-128/s_expm1l.c (big): Decrease to avoid
+	overflow.
+	* sysdeps/ieee754/ldbl-128/s_log1pl.c (big): Remove unused variable.
+
+	* sysdeps/ieee754/ldbl-128/s_nexttowardf.c (__nexttowardf): Use
+	math_opt_barrier and math_force_eval macros.
+
+2010-01-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* posix/regcomp.c: Fix a few more cases of ignored return values.
+	* posix/regex_internal.c: Likewise.
+	* posix/regexec.c: Likewise.
+
+	* include/features.h: _XOPEN_SOURCE_EXTENDED is not defined to be
+	used without _XOPEN_SOURCE.  Don't base any decisions on this macro
+	if _XOPEN_SOURCE is not defined as well.
+
+2010-01-15  Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
+
+	* sysdeps/s390/s390-32/elf/start.S (_start): Added check for the
+	high gprs kernel facility.
+	* sysdeps/s390/s390-32/dl-machine.h (elf_machine_matches_host):
+	Added high gprs check for DSOs.
+	* elf/elf.h (EF_S390_HIGH_GPRS): Added macro definition for the
+	new elf header flag.
+
+2010-01-13  Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
+
+	* elf/dl-sysdep.c (_dl_sysdep_start): Added the auxv parameter to
+	dl_main.
+	* elf/dl-open.c (_dl_sysdep_start): Likewise..
+	* sysdeps/generic/ldsodefs.h (_dl_sysdep_start): Likewise.
+	* elf/rtld.c (dl_main): Added new parameter auxv.  Adjust the
+	AT_PHDR, AT_PHNUM and AT_ENTRY fields if the ld.so is directly
+	started.
+
+2010-01-14  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #11027]
+	* sysdeps/generic/netinet/ip.h: Define IPTOS_CLASS_* macros according
+	to RFC 2474.
+	Patch by Philip Prindeville <philipp@xxxxxxxxxxxxxxxxxxxxx>.
+
+	[BZ #11141]
+	* resolv/res_send.c (reopen): Don't use IPv6 sockets for IPv4
+	addresses.
+
+	[BZ #11127]
+	* posix/regcomp.c (alc_eclosure_iter): Do not ignore
+	re_node_set_insert failure; return REG_ESPACE.
+	Patch by Paul Eggert.
+
+	* bits/confname.h: Make pre-C99-safe.
+
+2010-01-14  Ryan S. Arnold  <rsa@xxxxxxxxxx>
+
+	* Makeconfig (+prector, +postctor, +prectorS, +postctorS): Add
+	$(sysdep-LDFLAGS) to pre and post ctors so that the proper .o
+	files are found by GCC.
+
+2010-01-14  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* posix/unistd.h: Relax conditions for ualarm, usleep, getwd, vfork,
+	brk, and sbrk.
+
+	* string/strings.h: Relax condition for bcmp, bcopy, bzero, ffs,
+	index, and rindex.
+
+	* stdlib/stdlib.h: Relax conditions for *cvt functions and valloc.
+
+	* Versions.def: Add GLIBC_2.12 for libpthread.
+
+	[BZ #11126]
+	* malloc/malloc.c (malloc_info): Initialize malloc if not already
+	done.  Handle empty bin lists.
+
+	* posix/unistd.h: Change getpagesize and getdtablesize declaration
+	visibility some more.
+
+	* resolv/netdb.h: Relax condition to elide obsolete resolver constants.
+
+	* posix/unistd.h: Declare getpagesize in _GNU_SOURCE mode.
+
+	[BZ #11120]
+	* sysdeps/x86_64/strcmp.S: Prevent silent errors should strncmp be
+	needed outside libc.
+
+2010-01-13  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* stdlib/stdlib.h: Parameter of unsetenv must not be NULL.
+
+2010-01-12  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/strlen.S: Unroll the loop.
+
+2010-01-13  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* stdlib/stdlib.h: Be a bit more relaxed about obsoleted mktemp symbol.
+
+2010-01-12  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* conform/data/complex.h-data: Test for POSIX2008.
+
+	* conform/data/ctype.h-data: Fix POSIX testing.
+
+	* conform/data/dirent.h-data: ino_t only needed for XSI.
+
+	* grp/grp.h: Declare getgrent and endgrent for XPG7.
+
+	* conform/data/inttypes.h-data: Use same types as the headers.
+
+	* resolv/netdb.h: Don't define old resolver macros for XPG7.
+
+	* conform/data/sys/uio.h-data: Don't exclude POSIX2008.
+
+	* conform/conformtest.pl: Implement tag for allow-header.
+	Fix newline handling in allow-header implementation.
+
+	* conform/data/time.h-data: Use allow-header instead of duplicating
+	information.
+
+	* conform/data/time.h-data: Allow sigevent tag.
+
+	* posix/sched.h: Define time_t and pid_t for XPG7.
+
+2010-01-12  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/i386/i686/bcopy.S: New file.
+
+	* sysdeps/i386/i686/cacheinfo.c (__x86_64_data_cache_size): Define.
+
+	* sysdeps/i386/i686/memcpy.S (__memcpy_chk): Use ENTRY_CHK
+	and END_CHK.
+	* sysdeps/i386/i686/memmove.S (__memmove_chk): Likewise.
+	* sysdeps/i386/i686/mempcpy.S (__mempcpy_chk): Likewise.
+	* sysdeps/i386/i686/memset.S (__memset_chk): Likewise.
+
+	* sysdeps/i386/i686/memmove.S: Support USE_AS_BCOPY.
+
+	* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+	bzero-sse2 memset-sse2 memcpy-ssse3 mempcpy-ssse3 memmove-ssse3
+	memcpy-ssse3-rep mempcpy-ssse3-rep memmove-ssse3-rep
+	bcopy-ssse3 bcopy-ssse3-rep memset-sse2-rep bzero-sse2-rep
+	* sysdeps/i386/i686/multiarch/bcopy-ssse3-rep.S: New file.
+	* sysdeps/i386/i686/multiarch/bcopy-ssse3.S: New file.
+	* sysdeps/i386/i686/multiarch/bcopy.S: New file.
+	* sysdeps/i386/i686/multiarch/bzero-sse2-rep.S: New file.
+	* sysdeps/i386/i686/multiarch/bzero-sse2.S: New file.
+	* sysdeps/i386/i686/multiarch/bzero.S: New file.
+	* sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: New file.
+	* sysdeps/i386/i686/multiarch/memcpy-ssse3.S: New file.
+	* sysdeps/i386/i686/multiarch/memcpy.S: New file.
+	* sysdeps/i386/i686/multiarch/memcpy_chk.S: New file.
+	* sysdeps/i386/i686/multiarch/memmove-ssse3-rep.S: New file.
+	* sysdeps/i386/i686/multiarch/memmove-ssse3.S: New file.
+	* sysdeps/i386/i686/multiarch/memmove.S: New file.
+	* sysdeps/i386/i686/multiarch/memmove_chk.S: New file.
+	* sysdeps/i386/i686/multiarch/mempcpy-ssse3-rep.S: New file.
+	* sysdeps/i386/i686/multiarch/mempcpy-ssse3.S: New file.
+	* sysdeps/i386/i686/multiarch/mempcpy.S: New file.
+	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: New file.
+	* sysdeps/i386/i686/multiarch/memset-sse2-rep.S: New file.
+	* sysdeps/i386/i686/multiarch/memset-sse2.S: New file.
+	* sysdeps/i386/i686/multiarch/memset.S: New file.
+	* sysdeps/i386/i686/multiarch/memset_chk.S: New file.
+
+	* sysdeps/i386/sysdep.h (ENTRY_CHK): New.
+	(END_CHK): Likewise.
+
+	* sysdeps/i386/i686/multiarch/ifunc-defines.sym: Add
+	FEATURE_OFFSET, FEATURE_SIZE and FEATURE_INDEX_1.
+	* sysdeps/x86_64/multiarch/ifunc-defines.sym: Likewise.
+
+	* sysdeps/x86_64/cacheinfo.c (intel_02_cache_info): Add entries
+	for 0x0e and 0x80.
+	(__x86_64_data_cache_size): New.
+	(init_cacheinfo): Set __x86_64_data_cache_size.
+
+	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Turn
+	on bit_Fast_Rep_String for Intel Core i7.
+
+	* sysdeps/x86_64/multiarch/init-arch.h (bit_Fast_Rep_String): New.
+	(index_Fast_Rep_String): Likewise.
+	(FEATURE_INDEX_1): Likewise.
+	(FEATURE_INDEX_MAX): Likewise.
+	(cpu_features): Add feature.
+
+2010-01-12  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* conform/data/sys/select.h-data: Fix up for XPG7.
+
+2010-01-12  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* posix/sys/wait.h: Don't define W* macros etc. if
+	stdlib.h has been included with _POSIX_C_SOURCE >= 200809L.
+
+2010-01-11  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* io/sys/stat.h: Declare fchmod for XPG7.
+	* conform/data/sys/stat.h-data: Fix up for XPG7.
+
+	* termios/termios.h: Define pid_t for XPG7.
+
+	* conform/data/math.h-data: Fix up for XPG6 and XPG7.
+	* conform/data/tgmath.h-data: Likewise.
+
+	* conform/data/time.h-data: Fix POSIX tests.
+
+	* conform/data/wchar.h-data: Fix up XPG7 tests.
+
+	* include/features.h: Fix __USE_ISOC95 handling.
+
+	* conform/data/wordexp.h-data: Fix typo in last change.
+
+	* conform/data/unistd.h-data: Fix up older POSIX tests.
+
+	* stdlib/stdlib.h: Fix handling symbols removed in XPG7.
+	* posix/unistd.h: Likewise.
+
+	* posix/unistd.h: Include environments.h also for XPG6 and up.
+	Define intptr_t for XPG6 and up.
+	Fix up for XPG7.
+	* conform/data/unistd.h-data: Fix up for XPG6 and XPG7.
+
+	* conform/data/sys/types.h-data: Fix up for XPG7.
+
+	* sysdeps/unix/bsd/bits/stat.h: Fix double-inclusion problem.
+	* 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.
+
+	* bits/confname.h: Fix typo in last change.
+
+	* conform/data/unistd.h-data: lockf-constants Not needed for POSIX.
+
+2010-01-10  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* 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.
+	Declare ffs only for XSI.
+	* conform/data/strings.h-data: Update for XPG7.
+
+2010-01-10  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	[BZ #11125]
+	* libio/stdio.h: Define va_list, off_t, and ssize_t.
+
+	* posix/glob.h: Define size_t.
+
+	* 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  <drepper@xxxxxxxxxx>
+
+	* 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  <drepper@xxxxxxxxxx>
+
+	* 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.
+	* conform/data/errno.h-data: Likewise.
+	* conform/data/fcntl.h-data: Likewise.
+	* conform/data/fmtmsg.h-data: Likewise.
+	* conform/data/fnmatch.h-data: Likewise.
+	* conform/data/ftw.h-data: Likewise.
+	* conform/data/glob.h-data: Likewise.
+	* conform/data/grp.h-data: Likewise.
+	* conform/data/iconv.h-data: Likewise.
+	* conform/data/langinfo.h-data: Likewise.
+	* conform/data/libgen.h-data: Likewise.
+	* conform/data/limits.h-data: Likewise.
+	* conform/data/locale.h-data: Likewise.
+	* conform/data/math.h-data: Likewise.
+	* conform/data/monetary.h-data: Likewise.
+	* conform/data/mqueue.h-data: Likewise.
+	* conform/data/ndbm.h-data: Likewise.
+	* conform/data/netdb.h-data: Likewise.
+	* conform/data/pthread.h-data: Likewise.
+	* conform/data/pwd.h-data: Likewise.
+	* conform/data/regex.h-data: Likewise.
+	* conform/data/sched.h-data: Likewise.
+	* conform/data/search.h-data: Likewise.
+	* conform/data/semaphore.h-data: Likewise.
+	* conform/data/setjmp.h-data: Likewise.
+	* conform/data/signal.h-data: Likewise.
+	* conform/data/spawn.h-data: Likewise.
+	* conform/data/stdio.h-data: Likewise.
+	* conform/data/stdlib.h-data: Likewise.
+	* conform/data/string.h-data: Likewise.
+	* conform/data/strings.h-data: Likewise.
+	* conform/data/sys/ipc.h-data: Likewise.
+	* conform/data/sys/msg.h-data: Likewise.
+	* conform/data/sys/resource.h-data: Likewise.
+	* conform/data/sys/sem.h-data: Likewise.
+	* conform/data/sys/shm.h-data: Likewise.
+	* conform/data/sys/socket.h-data: Likewise.
+	* conform/data/sys/stat.h-data: Likewise.
+	* conform/data/sys/time.h-data: Likewise.
+	* conform/data/sys/types.h-data: Likewise.
+	* conform/data/sys/uio.h-data: Likewise.
+	* conform/data/sys/wait.h-data: Likewise.
+	* conform/data/syslog.h-data: Likewise.
+	* conform/data/tar.h-data: Likewise.
+	* conform/data/termios.h-data: Likewise.
+	* conform/data/time.h-data: Likewise.
+	* conform/data/ulimit.h-data: Likewise.
+	* conform/data/unistd.h-data: Likewise.
+	* conform/data/utmpx.h-data: Likewise.
+	* conform/data/wchar.h-data: Likewise.
+	* conform/data/wctype.h-data: Likewise.
+	* conform/data/wordexp.h-data: Likewise.
+
+	* io/fcntl.h: Define mode_t macros instead of including sys/stat.h.
+	* sysdeps/unix/bsd/bits/stat.h: Enable using from fcntl.h.
+	* sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise.
+	* sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise.
+	* sysdeps/unix/sysv/bits/stat.h: Likewise.
+	* sysdeps/mach/hurd/bits/stat.h: Likewise.
+
+	* stdlib/stdlib.h: Define wait-related bits for XPG7.
+	Don't declare valloc, mktemp, ecvt, fcvt, gcvt for XPG6 and  up.
+	Declare mkstemp and getsubopt for XPG7.
+	Declare posix_openpt for XPG6 XSI.
+
+	* include/features.h: Define __USE_XOPEN2KXSI for _XOPEN_SOURCE >= 600
+	and __USE_XOPEN2K8XSI for _XOPEN_SOURCE >= 700.
+
+	* string/string.h: Declare strdup for XPG7.
+
+2010-01-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* 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-07  Roland McGrath  <roland@xxxxxxxxxx>
+
+	* elf/elf.h (PN_XNUM): New macro.
+
+	* elf/dl-sysdep.c (_dl_important_hwcaps): Use NT_GNU_HWCAP instead of
+	literal 2.
+
+2010-01-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* dirent/dirent.h: Fix typo in feature selection macro use.
+
 2009-12-15  Maciej W. Rozycki  <macro@xxxxxxxxxxxxxxxx>
 
 	[BZ #11115]

Modified: trunk/libc/Makeconfig
==============================================================================
--- trunk/libc/Makeconfig (original)
+++ trunk/libc/Makeconfig Tue Jan 26 03:27:38 2010
@@ -549,11 +549,11 @@
 ifeq ($(elf),yes)
 +preinit = $(addprefix $(csu-objpfx),crti.o)
 +postinit = $(addprefix $(csu-objpfx),crtn.o)
-+prector = `$(CC) --print-file-name=crtbegin.o`
-+postctor = `$(CC) --print-file-name=crtend.o`
++prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
++postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
 # Variants of the two previous definitions for linking PIE programs.
-+prectorS = `$(CC) --print-file-name=crtbeginS.o`
-+postctorS = `$(CC) --print-file-name=crtendS.o`
++prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
++postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
 +interp = $(addprefix $(elf-objpfx),interp.os)
 endif
 csu-objpfx = $(common-objpfx)csu/

Modified: trunk/libc/Versions.def
==============================================================================
--- trunk/libc/Versions.def (original)
+++ trunk/libc/Versions.def Tue Jan 26 03:27:38 2010
@@ -91,6 +91,7 @@
   GLIBC_2.4
   GLIBC_2.6
   GLIBC_2.11
+  GLIBC_2.12
   GLIBC_PRIVATE
 }
 libresolv {

Modified: trunk/libc/bits/confname.h
==============================================================================
--- trunk/libc/bits/confname.h (original)
+++ trunk/libc/bits/confname.h Tue Jan 26 03:27:38 2010
@@ -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.
 
@@ -527,7 +527,7 @@
 
     _SC_THREAD_ROBUST_PRIO_INHERIT,
 #define _SC_THREAD_ROBUST_PRIO_INHERIT	_SC_THREAD_ROBUST_PRIO_INHERIT
-    _SC_THREAD_ROBUST_PRIO_PROTECT,
+    _SC_THREAD_ROBUST_PRIO_PROTECT
 #define _SC_THREAD_ROBUST_PRIO_PROTECT	_SC_THREAD_ROBUST_PRIO_PROTECT
   };
 
@@ -667,6 +667,11 @@
 #define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
     _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
 #define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
-    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+    _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
   };

Modified: trunk/libc/conform/conformtest.pl
==============================================================================
--- trunk/libc/conform/conformtest.pl (original)
+++ trunk/libc/conform/conformtest.pl Tue Jan 26 03:27:38 2010
@@ -1,6 +1,7 @@
 #! /usr/bin/perl
 
 use Getopt::Long;
+use POSIX;
 
 $CC = "gcc";
 
@@ -30,7 +31,8 @@
 }
 
 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{"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.
@@ -52,14 +56,17 @@
 # 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 <stddef.h>\n";
-$mustprepend{'regex.h'} = "#include <sys/types.h>\n";
-$mustprepend{'sched.h'} = "#include <sys/types.h>\n";
-$mustprepend{'signal.h'} = "#include <pthread.h>\n";
-$mustprepend{'stdio.h'} = "#include <sys/types.h>\n";
-$mustprepend{'wchar.h'} = "#include <stdarg.h>\n";
-$mustprepend{'wordexp.h'} = "#include <stddef.h>\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 <stddef.h>\n";
+  $mustprepend{'regex.h'} = "#include <sys/types.h>\n";
+  $mustprepend{'sched.h'} = "#include <sys/types.h>\n";
+  $mustprepend{'signal.h'} = "#include <pthread.h>\n";
+  $mustprepend{'stdio.h'} = "#include <sys/types.h>\n";
+  $mustprepend{'wchar.h'} = "#include <stdarg.h>\n";
+  $mustprepend{'wordexp.h'} = "#include <stddef.h>\n";
+}
 
 # Make a hash table from this information.
 while ($#keywords >= 0) {
@@ -71,7 +78,10 @@
   $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 +670,6 @@
 	$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 +697,6 @@
 	$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";
@@ -702,6 +706,27 @@
       } else {
 	print TESTFILE "$type a;\n";
       }
+      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",
@@ -1023,6 +1048,7 @@
 
     open (ALLOW, "$CC -E -D$dialect - < data/$ah-data |");
     acontrol: while (<ALLOW>) {
+      chop;
       next acontrol if (/^#/);
       next acontrol if (/^[	]*$/);
 
@@ -1032,8 +1058,8 @@
 	push @allow, $1;
       } elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
 	push @allow, 1;
-      } elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) {
-	my($type) = "$2$3";
+      } elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
+	my($type) = "$3$4";
 
 	# Remember that this name is allowed.
 	if ($type =~ /^struct *(.*)/) {

Modified: trunk/libc/conform/data/complex.h-data
==============================================================================
--- trunk/libc/conform/data/complex.h-data (original)
+++ trunk/libc/conform/data/complex.h-data Tue Jan 26 03:27:38 2010
@@ -1,4 +1,4 @@
-#ifdef XOPEN2K
+#if defined XOPEN2K || defined POSIX2008
 macro complex
 macro _Complex_I
 optional-macro imaginary

Modified: trunk/libc/conform/data/ctype.h-data
==============================================================================
--- trunk/libc/conform/data/ctype.h-data (original)
+++ trunk/libc/conform/data/ctype.h-data Tue Jan 26 03:27:38 2010
@@ -12,13 +12,32 @@
 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)
 
 // XPG says the following two are macros.  But we test a bit more strictly.
 function int _toupper (int)
 function int _tolower (int)
+#endif
+
+# if 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
 
 // The following is not entirely correct.  It should be is[a-z]* but the
 // replacement fnmatch implementation does not grok it.
@@ -26,4 +45,3 @@
 allow to*
 
 allow *_t
-#endif

Modified: trunk/libc/conform/data/dirent.h-data
==============================================================================
--- trunk/libc/conform/data/dirent.h-data (original)
+++ trunk/libc/conform/data/dirent.h-data Tue Jan 26 03:27:38 2010
@@ -3,19 +3,32 @@
 
 type {struct dirent}
 
+# if !defined POSIX && !defined POSIX2008
 element {struct dirent} ino_t d_ino
+# endif
 element {struct dirent} char d_name []
 
+# if !defined POSIX && !defined POSIX2008
 type ino_t
+#endif
 
 function int closedir (DIR*)
 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

Modified: trunk/libc/conform/data/errno.h-data
==============================================================================
--- trunk/libc/conform/data/errno.h-data (original)
+++ trunk/libc/conform/data/errno.h-data Tue Jan 26 03:27:38 2010
@@ -79,6 +79,11 @@
 constant EWOULDBLOCK
 constant EXDEV
 
+# if defined XOPEN2K8 || defined POSIX2008
+constant ENOTRECOVERABLE
+constant EOWNERDEAD
+# endif
+
 // variable int errno
 allow errno
 

Modified: trunk/libc/conform/data/fcntl.h-data
==============================================================================
--- trunk/libc/conform/data/fcntl.h-data (original)
+++ trunk/libc/conform/data/fcntl.h-data Tue Jan 26 03:27:38 2010
@@ -60,9 +60,11 @@
 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,9 +88,30 @@
 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
@@ -99,4 +122,8 @@
 allow O_*
 allow S_*
 allow *_t
+
+allow timespec
+allow tv_nsec
+allow tv_sec
 #endif

Modified: trunk/libc/conform/data/fmtmsg.h-data
==============================================================================
--- trunk/libc/conform/data/fmtmsg.h-data (original)
+++ trunk/libc/conform/data/fmtmsg.h-data Tue Jan 26 03:27:38 2010
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 macro MM_HARD
 constant MM_HARD
 

Modified: trunk/libc/conform/data/fnmatch.h-data
==============================================================================
--- trunk/libc/conform/data/fnmatch.h-data (original)
+++ trunk/libc/conform/data/fnmatch.h-data Tue Jan 26 03:27:38 2010
@@ -3,7 +3,9 @@
 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)
 

Modified: trunk/libc/conform/data/ftw.h-data
==============================================================================
--- trunk/libc/conform/data/ftw.h-data (original)
+++ trunk/libc/conform/data/ftw.h-data Tue Jan 26 03:27:38 2010
@@ -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

Modified: trunk/libc/conform/data/glob.h-data
==============================================================================
--- trunk/libc/conform/data/glob.h-data (original)
+++ trunk/libc/conform/data/glob.h-data Tue Jan 26 03:27:38 2010
@@ -15,7 +15,9 @@
 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 *)

Modified: trunk/libc/conform/data/grp.h-data
==============================================================================
--- trunk/libc/conform/data/grp.h-data (original)
+++ trunk/libc/conform/data/grp.h-data Tue Jan 26 03:27:38 2010
@@ -7,6 +7,9 @@
 # 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 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_*

Modified: trunk/libc/conform/data/iconv.h-data
==============================================================================
--- trunk/libc/conform/data/iconv.h-data (original)
+++ trunk/libc/conform/data/iconv.h-data Tue Jan 26 03:27:38 2010
@@ -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*)

Modified: trunk/libc/conform/data/inttypes.h-data
==============================================================================
--- trunk/libc/conform/data/inttypes.h-data (original)
+++ trunk/libc/conform/data/inttypes.h-data Tue Jan 26 03:27:38 2010
@@ -17,8 +17,8 @@
 function imaxdiv_t imaxdiv (intmax_t, intmax_t)
 function intmax_t strtoimax (const char*, char**, int)
 function uintmax_t strtoumax (const char*, char**, int)
-function intmax_t wcstoimax (const wchar_t*, wchar_t**, int)
-function uintmax_t wcstoumax (const wchar_t*, wchar_t**, int)
+function intmax_t wcstoimax (const __gwchar_t*, __gwchar_t**, int)
+function uintmax_t wcstoumax (const __gwchar_t*, __gwchar_t**, int)
 
 allow PRI*
 allow SCN*

Modified: trunk/libc/conform/data/langinfo.h-data
==============================================================================
--- trunk/libc/conform/data/langinfo.h-data (original)
+++ trunk/libc/conform/data/langinfo.h-data Tue Jan 26 03:27:38 2010
@@ -55,7 +55,15 @@
 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
 

Modified: trunk/libc/conform/data/libgen.h-data
==============================================================================
--- trunk/libc/conform/data/libgen.h-data (original)
+++ trunk/libc/conform/data/libgen.h-data Tue Jan 26 03:27:38 2010
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 function {char*} basename (char*)
 function {char*} dirname (char*)
 

Modified: trunk/libc/conform/data/limits.h-data
==============================================================================
--- trunk/libc/conform/data/limits.h-data (original)
+++ trunk/libc/conform/data/limits.h-data Tue Jan 26 03:27:38 2010
@@ -11,7 +11,9 @@
 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 @@
 
 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

Modified: trunk/libc/conform/data/locale.h-data
==============================================================================
--- trunk/libc/conform/data/locale.h-data (original)
+++ trunk/libc/conform/data/locale.h-data Tue Jan 26 03:27:38 2010
@@ -17,7 +17,7 @@
 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_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

Modified: trunk/libc/conform/data/math.h-data
==============================================================================
--- trunk/libc/conform/data/math.h-data (original)
+++ trunk/libc/conform/data/math.h-data Tue Jan 26 03:27:38 2010
@@ -12,6 +12,7 @@
 macro islessgreater
 macro isunordered
 
+# ifndef POSIX2008
 constant M_E
 constant M_LOG2E
 constant M_LOG10E
@@ -27,6 +28,7 @@
 constant M_SQRT1_2
 
 constant MAXFLOAT
+# endif
 constant HUGE_VAL
 constant HUGE_VALF
 constant HUGE_VALL
@@ -49,6 +51,8 @@
 macro MATH_ERRNO == 1
 macro MATH_ERREXCEPT == 2
 #endif
+
+macro math_errhandling
 
 function double acos (double)
 function double asin (double)
@@ -77,17 +81,22 @@
 function double tanh (double)
 function double erf (double)
 function double erfc (double)
+#if defined XPG3 || defined XPG4 || defined UNIX98
 function double gamma (double)
+#endif
 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)
-function int isnan (double)
+#endif
 function double acosh (double)
 function double asinh (double)
 function double atanh (double)
@@ -108,7 +117,9 @@
 function long lround (double)
 function {long long} llround (double)
 function double remquo (double, double, int*)
+#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
 function double scalb (double, double)
+#endif
 function double scalbn (double, int)
 function double scalbln (double, long)
 function double fdim (double, double)
@@ -117,8 +128,10 @@
 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)
@@ -148,17 +161,22 @@
 function float tanhf (float)
 function float erff (float)
 function float erfcf (float)
+#if defined XPG3 || defined XPG4 || defined UNIX98
 function float gammaf (float)
+#endif
 function float hypotf (float, float)
+#if !defined POSIX && !defined POSIX2008
 function float j0f (float)
 function float j1f (float)
 function float jnf (int, float)
+#endif
 function float lgammaf (float)
 function float tgammaf (float)
+#if !defined POSIX && !defined POSIX2008
 function float y0f (float)
 function float y1f (float)
 function float ynf (int, float)
-function int isnanf (float)
+#endif
 function float acoshf (float)
 function float asinhf (float)
 function float atanhf (float)
@@ -179,7 +197,9 @@
 function long lroundf (float)
 function {long long} llroundf (float)
 function float remquof (float, float, int*)
+#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
 function float scalbf (float, float)
+#endif
 function float scalbnf (float, int)
 function float scalblnf (float, long)
 function float fdimf (float, float)
@@ -215,17 +235,22 @@
 function {long double} tanhl (long double)
 function {long double} erfl (long double)
 function {long double} erfcl (long double)
+#if defined XPG3 || defined XPG4 || defined UNIX98
 function {long double} gammal (long double)
+#endif
 function {long double} hypotl (long double, long double)
+#if !defined POSIX && !defined POSIX2008
 function {long double} j0l (long double)
 function {long double} j1l (long double)
 function {long double} jnl (int, long double)
+#endif
 function {long double} lgammal (long double)
 function {long double} tgammal (long double)
+#if !defined POSIX && !defined POSIX2008
 function {long double} y0l (long double)
 function {long double} y1l (long double)
 function {long double} ynl (int, long double)
-function int isnanl (long double)
+#endif
 function {long double} acoshl (long double)
 function {long double} asinhl (long double)
 function {long double} atanhl (long double)
@@ -246,7 +271,9 @@
 function long lroundl (long double)
 function {long long} llroundl (long double)
 function {long double} remquol (long double, long double, int*)
+#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
 function {long double} scalbl (long double, long double)
+#endif
 function {long double} scalbnl (long double, int)
 function {long double} scalblnl (long double, long)
 function {long double} fdiml (long double, long double)

Modified: trunk/libc/conform/data/monetary.h-data
==============================================================================
--- trunk/libc/conform/data/monetary.h-data (original)
+++ trunk/libc/conform/data/monetary.h-data Tue Jan 26 03:27:38 2010
@@ -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

Modified: trunk/libc/conform/data/mqueue.h-data
==============================================================================
--- trunk/libc/conform/data/mqueue.h-data (original)
+++ trunk/libc/conform/data/mqueue.h-data Tue Jan 26 03:27:38 2010
@@ -18,9 +18,17 @@
 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

Modified: trunk/libc/conform/data/ndbm.h-data
==============================================================================
--- trunk/libc/conform/data/ndbm.h-data (original)
+++ trunk/libc/conform/data/ndbm.h-data Tue Jan 26 03:27:38 2010
@@ -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

Modified: trunk/libc/conform/data/netdb.h-data
==============================================================================
--- trunk/libc/conform/data/netdb.h-data (original)
+++ trunk/libc/conform/data/netdb.h-data Tue Jan 26 03:27:38 2010
@@ -34,6 +34,7 @@
 
 macro IPPORT_RESERVED
 
+#if !defined XOPEN2K8 && !defined POSIX2008
 // variable int h_errno
 allow h_errno
 
@@ -41,6 +42,7 @@
 macro NO_DATA
 macro NO_RECOVERY
 macro TRY_AGAIN
+#endif
 
 type {struct addrinfo}
 element {struct addrinfo} int ai_flags

Modified: trunk/libc/conform/data/pthread.h-data
==============================================================================
--- trunk/libc/conform/data/pthread.h-data (original)
+++ trunk/libc/conform/data/pthread.h-data Tue Jan 26 03:27:38 2010
@@ -24,6 +24,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
@@ -90,7 +94,7 @@
 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 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_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

Modified: trunk/libc/conform/data/pwd.h-data
==============================================================================
--- trunk/libc/conform/data/pwd.h-data (original)
+++ trunk/libc/conform/data/pwd.h-data Tue Jan 26 03:27:38 2010
@@ -9,15 +9,20 @@
 # 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

Modified: trunk/libc/conform/data/regex.h-data
==============================================================================
--- trunk/libc/conform/data/regex.h-data (original)
+++ trunk/libc/conform/data/regex.h-data Tue Jan 26 03:27:38 2010
@@ -28,7 +28,9 @@
 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)

Modified: trunk/libc/conform/data/sched.h-data
==============================================================================
--- trunk/libc/conform/data/sched.h-data (original)
+++ trunk/libc/conform/data/sched.h-data Tue Jan 26 03:27:38 2010
@@ -5,6 +5,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

Modified: trunk/libc/conform/data/search.h-data
==============================================================================
--- trunk/libc/conform/data/search.h-data (original)
+++ trunk/libc/conform/data/search.h-data Tue Jan 26 03:27:38 2010
@@ -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

Modified: trunk/libc/conform/data/semaphore.h-data
==============================================================================
--- trunk/libc/conform/data/semaphore.h-data (original)
+++ trunk/libc/conform/data/semaphore.h-data Tue Jan 26 03:27:38 2010
@@ -14,7 +14,7 @@
 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

Modified: trunk/libc/conform/data/setjmp.h-data
==============================================================================
--- trunk/libc/conform/data/setjmp.h-data (original)
+++ trunk/libc/conform/data/setjmp.h-data Tue Jan 26 03:27:38 2010
@@ -6,7 +6,7 @@
 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 @@
 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

Modified: trunk/libc/conform/data/signal.h-data
==============================================================================
--- trunk/libc/conform/data/signal.h-data (original)
+++ trunk/libc/conform/data/signal.h-data Tue Jan 26 03:27:38 2010
@@ -1,11 +1,30 @@
 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
 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
+
+type {struct timespec}
+element {struct timespec} __time_t tv_sec
+element {struct timespec} long tv_nsec
+#endif
 
 element {union sigval} int sival_int
 element {union sigval} {void*} sival_ptr
@@ -52,7 +71,9 @@
 constant SIGPOLL
 constant SIGPROF
 constant SIGSYS
+#if !defined POSIX && !defined POSIX2008
 constant SIGTRAP
+#endif
 constant SIGURG
 constant SIGVTALRM
 constant SIGXCPU
@@ -69,16 +90,20 @@
 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 +126,9 @@
 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
@@ -151,34 +178,50 @@
 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)
+#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.

Modified: trunk/libc/conform/data/spawn.h-data
==============================================================================
--- trunk/libc/conform/data/spawn.h-data (original)
+++ trunk/libc/conform/data/spawn.h-data Tue Jan 26 03:27:38 2010
@@ -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

Modified: trunk/libc/conform/data/stdio.h-data
==============================================================================
--- trunk/libc/conform/data/stdio.h-data (original)
+++ trunk/libc/conform/data/stdio.h-data Tue Jan 26 03:27:38 2010
@@ -7,7 +7,9 @@
 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 NULL
 
+#if !defined POSIX && !defined POSIX2008
 constant P_tmpdir
+#endif
 
 macro stdin
 macro stdout
@@ -30,10 +34,19 @@
 type fpos_t
 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
 function int fclose (FILE*)
 function {FILE*} fdopen (int, const char*)
 function int feof (FILE*)
@@ -44,6 +57,9 @@
 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,12 +79,19 @@
 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*)
@@ -79,11 +102,14 @@
 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 +117,31 @@
 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

Modified: trunk/libc/conform/data/stdlib.h-data
==============================================================================
--- trunk/libc/conform/data/stdlib.h-data (original)
+++ trunk/libc/conform/data/stdlib.h-data Tue Jan 26 03:27:38 2010
@@ -10,7 +10,7 @@
 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 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)
 

Modified: trunk/libc/conform/data/string.h-data
==============================================================================
--- trunk/libc/conform/data/string.h-data (original)
+++ trunk/libc/conform/data/string.h-data Tue Jan 26 03:27:38 2010
@@ -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
 

Modified: trunk/libc/conform/data/strings.h-data
==============================================================================
--- trunk/libc/conform/data/strings.h-data (original)
+++ trunk/libc/conform/data/strings.h-data Tue Jan 26 03:27:38 2010
@@ -1,12 +1,23 @@
+#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 int ffs (int)
 function {char*} index (const char*, int)
 function {char*} rindex (const char*, int)
+#endif
+#if !defined POSIX && !defined POSIX2008
+function int ffs (int)
+#endif
 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

Modified: trunk/libc/conform/data/sys/ipc.h-data
==============================================================================
--- trunk/libc/conform/data/sys/ipc.h-data (original)
+++ trunk/libc/conform/data/sys/ipc.h-data Tue Jan 26 03:27:38 2010
@@ -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 @@
 allow ipc_*
 allow IPC_*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/sys/msg.h-data
==============================================================================
--- trunk/libc/conform/data/sys/msg.h-data (original)
+++ trunk/libc/conform/data/sys/msg.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 type {struct msqid_ds}
 
 type msgqnum_t
@@ -30,3 +31,4 @@
 allow msg*
 allow MSG*
 allow *_h
+#endif

Modified: trunk/libc/conform/data/sys/resource.h-data
==============================================================================
--- trunk/libc/conform/data/sys/resource.h-data (original)
+++ trunk/libc/conform/data/sys/resource.h-data Tue Jan 26 03:27:38 2010
@@ -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 RLIMIT_*
 allow RUSAGE_*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/sys/select.h-data
==============================================================================
--- trunk/libc/conform/data/sys/select.h-data (original)
+++ trunk/libc/conform/data/sys/select.h-data Tue Jan 26 03:27:38 2010
@@ -13,16 +13,18 @@
 element {struct timespec} long tv_nsec
 
 type fd_set
+#if defined XPG3 || defined XPG4 || defined UNIX98
 element fd_set long fds_bits []
+#endif
 
-function-macro void FD_CLR (int, fd_set*)
-function-macro int FD_ISSET (int, fd_set*)
-function-macro void FD_SET (int, fd_set*)
-function-macro void FD_ZERO (fd_set*)
+macro FD_CLR
+macro FD_ISSET
+macro FD_SET
+macro FD_ZERO
 
 macro FD_SETSIZE
 
-#ifdef XOPEN2K
+#if defined XOPEN2K || defined POSIX2008
 function int pselect (int, fd_set*, fd_set*, fd_set*, const struct timespec*, const sigset_t*)
 #endif
 function int select (int, fd_set*, fd_set*, fd_set*, struct timeval*)

Modified: trunk/libc/conform/data/sys/sem.h-data
==============================================================================
--- trunk/libc/conform/data/sys/sem.h-data (original)
+++ trunk/libc/conform/data/sys/sem.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 constant SEM_UNDO
 
 constant GETNCNT
@@ -35,3 +36,4 @@
 allow sem*
 allow SEM_*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/sys/shm.h-data
==============================================================================
--- trunk/libc/conform/data/sys/shm.h-data (original)
+++ trunk/libc/conform/data/sys/shm.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 constant SHM_RDONLY
 symbol SHMLBA
 constant SHM_RND
@@ -30,3 +31,4 @@
 allow shm*
 allow SHM*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/sys/socket.h-data
==============================================================================
--- trunk/libc/conform/data/sys/socket.h-data (original)
+++ trunk/libc/conform/data/sys/socket.h-data Tue Jan 26 03:27:38 2010
@@ -2,6 +2,11 @@
 type socklen_t
 
 type sa_family_t
+
+# if defined XOPEN2K8 || defined POSIX2008
+type size_t
+type ssize_t
+# endif
 
 type {struct sockaddr}
 
@@ -76,6 +81,9 @@
 macro MSG_PEEK
 macro MSG_TRUNC
 macro MSG_WAITALL
+# if defined XOPEN2K8 || defined POSIX2008
+constant MSG_NOSIGNAL
+# endif
 
 macro AF_UNIX
 macro AF_UNSPEC

Modified: trunk/libc/conform/data/sys/stat.h-data
==============================================================================
--- trunk/libc/conform/data/sys/stat.h-data (original)
+++ trunk/libc/conform/data/sys/stat.h-data Tue Jan 26 03:27:38 2010
@@ -8,16 +8,22 @@
 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
 
+#if !defined POSIX && !defined POSIX2008
 type blkcnt_t
 type blksize_t
+#endif
 type dev_t
 type ino_t
 type mode_t
@@ -26,7 +32,13 @@
 type gid_t
 type off_t
 type time_t
+# if defined XOPEN2K8 || defined POSIX2008
+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 +46,8 @@
 constant S_IFREG
 constant S_IFDIR
 constant S_IFLNK
+constant S_IFSOCK
+#endif
 
 constant S_IRWXU
 constant S_IRUSR
@@ -48,14 +62,20 @@
 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 +83,39 @@
 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)
+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_*

Modified: trunk/libc/conform/data/sys/time.h-data
==============================================================================
--- trunk/libc/conform/data/sys/time.h-data (original)
+++ trunk/libc/conform/data/sys/time.h-data Tue Jan 26 03:27:38 2010
@@ -1,4 +1,4 @@
-#ifndef ISO
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 type {struct timeval}
 
 element {struct timeval} time_t tv_sec

Modified: trunk/libc/conform/data/sys/types.h-data
==============================================================================
--- trunk/libc/conform/data/sys/types.h-data (original)
+++ trunk/libc/conform/data/sys/types.h-data Tue Jan 26 03:27:38 2010
@@ -1,14 +1,19 @@
+#ifndef ISO
 type blkcnt_t
 type blksize_t
 type clock_t
 type clockid_t
 type dev_t
+# if !defined POSIX
 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,12 @@
 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

Modified: trunk/libc/conform/data/sys/uio.h-data
==============================================================================
--- trunk/libc/conform/data/sys/uio.h-data (original)
+++ trunk/libc/conform/data/sys/uio.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX
 type {struct iovec}
 
 element {struct iovec} {void*} iov_base
@@ -10,3 +11,4 @@
 allow IOV_*
 allow *_t
 allow UIO_MAXIOV
+#endif

Modified: trunk/libc/conform/data/sys/wait.h-data
==============================================================================
--- trunk/libc/conform/data/sys/wait.h-data (original)
+++ trunk/libc/conform/data/sys/wait.h-data Tue Jan 26 03:27:38 2010
@@ -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 @@
 
 constant WEXITED
 constant WSTOPPED
+# if !defined POSIX && !defined POSIX2008
 constant WCONTINUED
+# endif
 constant WNOHANG
 constant WNOWAIT
 
@@ -43,7 +48,9 @@
 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)
 
@@ -62,3 +69,4 @@
 allow SI_
 allow TRAP_
 allow *_t
+#endif

Modified: trunk/libc/conform/data/syslog.h-data
==============================================================================
--- trunk/libc/conform/data/syslog.h-data (original)
+++ trunk/libc/conform/data/syslog.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 constant LOG_PID
 constant LOG_CONS
 constant LOG_NDELAY
@@ -40,3 +41,4 @@
 
 allow LOG_*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/tar.h-data
==============================================================================
--- trunk/libc/conform/data/tar.h-data (original)
+++ trunk/libc/conform/data/tar.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#ifndef ISO
 macro-str TMAGIC "ustar"
 constant TMAGLEN 6
 macro-str TVERSION "00"
@@ -15,7 +16,9 @@
 
 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 TOEXEC 00001
 
 allow *_t
+#endif

Modified: trunk/libc/conform/data/termios.h-data
==============================================================================
--- trunk/libc/conform/data/termios.h-data (original)
+++ trunk/libc/conform/data/termios.h-data Tue Jan 26 03:27:38 2010
@@ -1,8 +1,13 @@
+#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
@@ -32,18 +37,24 @@
 constant INLCR
 constant INPCK
 constant ISTRIP
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 constant IUCLC
+# <endif
 constant IXANY
 constant IXOFF
 constant IXON
 constant PARMRK
 
 constant OPOST
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 constant OLCUC
+# endif
+# if !defined POSIX && !defined POSIX2008
 constant ONLCR
 constant OCRNL
 constant ONOCR
 constant ONLRET
+constant OFDEL
 constant OFILL
 constant NLDLY
 constant NL0
@@ -67,6 +78,7 @@
 constant FFDLY
 constant FF0
 constant FF1
+# endif
 
 constant B0
 constant B50
@@ -106,7 +118,9 @@
 constant ISIG
 constant NOFLSH
 constant TOSTOP
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 constant XCASE
+# endif
 
 constant TCSANOW
 constant TCSADRAIN
@@ -157,3 +171,4 @@
 allow TC*
 allow B*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/tgmath.h-data
==============================================================================
--- trunk/libc/conform/data/tgmath.h-data (original)
+++ trunk/libc/conform/data/tgmath.h-data Tue Jan 26 03:27:38 2010
@@ -1,4 +1,4 @@
-#ifdef XOPEN2K
+#if defined XOPEN2K || defined POSIX2008
 // <math.h>
 macro fpclassify
 macro isfinite
@@ -13,6 +13,7 @@
 macro islessgreater
 macro isunordered
 
+#ifndef POSIX2008
 constant M_E
 constant M_LOG2E
 constant M_LOG10E
@@ -28,6 +29,7 @@
 constant M_SQRT1_2
 
 constant MAXFLOAT
+#endif
 constant HUGE_VAL
 constant HUGE_VALF
 constant HUGE_VALL
@@ -49,6 +51,8 @@
 
 macro MATH_ERRNO == 1
 macro MATH_ERREXCEPT == 2
+
+macro math_errhandling
 
 function double acos (double)
 function double asin (double)
@@ -77,17 +81,22 @@
 function double tanh (double)
 function double erf (double)
 function double erfc (double)
+#if defined XPG3 || defined XPG4 || defined UNIX98
 function double gamma (double)
+#endif
 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)
-function int isnan (double)
+#endif
 function double acosh (double)
 function double asinh (double)
 function double atanh (double)
@@ -108,7 +117,9 @@
 function long lround (double)
 function {long long} llround (double)
 function double remquo (double, double, int*)
+#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
 function double scalb (double, double)
+#endif
 function double scalbn (double, int)
 function double scalbln (double, long)
 function double fdim (double, double)
@@ -147,17 +158,22 @@
 function float tanhf (float)
 function float erff (float)
 function float erfcf (float)
+#if defined XPG3 || defined XPG4 || defined UNIX98
 function float gammaf (float)
+#endif
 function float hypotf (float, float)
+#if !defined POSIX && !defined POSIX2008
 function float j0f (float)
 function float j1f (float)
 function float jnf (int, float)
+#endif
 function float lgammaf (float)
 function float tgammaf (float)
+#if !defined POSIX && !defined POSIX2008
 function float y0f (float)
 function float y1f (float)
 function float ynf (int, float)
-function int isnanf (float)
+#endif
 function float acoshf (float)
 function float asinhf (float)
 function float atanhf (float)
@@ -178,7 +194,9 @@
 function long lroundf (float)
 function {long long} llroundf (float)
 function float remquof (float, float, int*)
+#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
 function float scalbf (float, float)
+#endif
 function float scalbnf (float, int)
 function float scalblnf (float, long)
 function float fdimf (float, float)
@@ -214,17 +232,22 @@
 function {long double} tanhl (long double)
 function {long double} erfl (long double)
 function {long double} erfcl (long double)
+#if defined XPG3 || defined XPG4 || defined UNIX98
 function {long double} gammal (long double)
+#endif
 function {long double} hypotl (long double, long double)
+#if !defined POSIX && !defined POSIX2008
 function {long double} j0l (long double)
 function {long double} j1l (long double)
 function {long double} jnl (int, long double)
+#endif
 function {long double} lgammal (long double)
 function {long double} tgammal (long double)
+#if !defined POSIX && !defined POSIX2008
 function {long double} y0l (long double)
 function {long double} y1l (long double)
 function {long double} ynl (int, long double)
-function int isnanl (long double)
+#endif
 function {long double} acoshl (long double)
 function {long double} asinhl (long double)
 function {long double} atanhl (long double)
@@ -245,7 +268,9 @@
 function long lroundl (long double)
 function {long long} llroundl (long double)
 function {long double} remquol (long double, long double, int*)
+#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
 function {long double} scalbl (long double, long double)
+#endif
 function {long double} scalbnl (long double, int)
 function {long double} scalblnl (long double, long)
 function {long double} fdiml (long double, long double)

Modified: trunk/libc/conform/data/time.h-data
==============================================================================
--- trunk/libc/conform/data/time.h-data (original)
+++ trunk/libc/conform/data/time.h-data Tue Jan 26 03:27:38 2010
@@ -11,7 +11,7 @@
 element {struct tm} int tm_isdst
 
 constant NULL
-#ifndef XOPEN2K
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 constant CLK_TCK
 #endif
 constant CLOCKS_PER_SEC
@@ -38,7 +38,15 @@
 type time_t
 type timer_t
 
+#if defined XOPEN2K8 || defined POSIX2008
+type pid_t
+type locale_t
+tag {struct sigevent}
+#endif
+
+#if !defined POSIX && !defined POSIX2008
 variable int getdate_err
+#endif
 
 function {char*} asctime (const struct tm*)
 function {char*} asctime_r (const struct tm*, char*)
@@ -51,7 +59,9 @@
 function {char*} ctime (const time_t*)
 function {char*} ctime_r (const time_t*, char*)
 function double difftime (time_t, time_t)
+#if !defined POSIX && !defined POSIX2008
 function {struct tm*} getdate (const char*)
+#endif
 function {struct tm*} gmtime (const time_t*)
 function {struct tm*} gmtime_r (const time_t*, struct tm*)
 function {struct tm*} localtime (const time_t*)
@@ -59,7 +69,12 @@
 function time_t mktime (struct tm*)
 function int nanosleep (const struct timespec*, struct timespec*)
 function size_t strftime (char*, size_t, const char*, const struct tm*)
+#if defined XOPEN2K8 || defined POSIX2008
+function size_t strftime_l (char*, size_t, const char*, const struct tm*, locale_t)
+#endif
+#if !defined POSIX && !defined POSIX2008
 function {char*} strptime (const char*, const char*, struct tm*)
+#endif
 function time_t time (time_t*)
 function int timer_create (clockid_t, struct sigevent*, timer_t*)
 function int timer_delete (timer_t)
@@ -68,8 +83,10 @@
 function int timer_settime (timer_t, int, const struct itimerspec*, struct itimerspec*)
 function void tzset (void)
 
+#if !defined POSIX && !defined POSIX2008
 variable int daylight
 variable {long int} timezone
+#endif
 variable {char*} tzname [2]
 
 allow tm_*
@@ -80,3 +97,4 @@
 allow CLOCK_*
 allow TIMER_*
 allow *_t
+allow sigevent

Modified: trunk/libc/conform/data/ulimit.h-data
==============================================================================
--- trunk/libc/conform/data/ulimit.h-data (original)
+++ trunk/libc/conform/data/ulimit.h-data Tue Jan 26 03:27:38 2010
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 constant UL_GETFSIZE
 constant UL_SETFSIZE
 
@@ -5,3 +6,4 @@
 
 allow UL_*
 allow *_t
+#endif

Modified: trunk/libc/conform/data/unistd.h-data
==============================================================================
--- trunk/libc/conform/data/unistd.h-data (original)
+++ trunk/libc/conform/data/unistd.h-data Tue Jan 26 03:27:38 2010
@@ -41,10 +41,24 @@
 optional-constant _POSIX_THREAD_SAFE_FUNCTIONS
 optional-constant _POSIX_THREAD_SPORADIC_SERVER
 
+# ifdef XOPEN2K
+optional-constant _POSIX_V6_ILP32_OFF32
+optional-constant _POSIX_V6_ILP32_OFFBIG
+optional-constant _POSIX_V6_LP64_OFF64
+optional-constant _POSIX_V6_LPBIG_OFFBIG
+# endif
+# if defined XOPEN2K8 || defined POSIX2008
+optional-constant _POSIX_V7_ILP32_OFF32
+optional-constant _POSIX_V7_ILP32_OFFBIG
+optional-constant _POSIX_V7_LP64_OFF64
+optional-constant _POSIX_V7_LPBIG_OFFBIG
+# endif
+
 optional-constant _POSIX2_C_DEV
 optional-constant _POSIX2_FORT_DEV
 optional-constant _POSIX2_FORT_RUN
 optional-constant _POSIX2_SW_DEV
+# if !defined POSIX && !defined POSIX2008
 optional-constant _XOPEN_CRYPT
 optional-constant _XOPEN_ENH_I18N
 optional-constant _XOPEN_LEGACY
@@ -52,6 +66,7 @@
 optional-constant _XOPEN_REALTIME_THREADS
 optional-constant _XOPEN_SHM
 optional-constant _XOPEN_STREAMS
+# endif
 allow _XBS5_ILP32_OFF32
 allow _XBS5_ILP32_OFBIG
 allow _XBS5_LP64_OFF64
@@ -88,6 +103,8 @@
 optional-constant _POSIX2_PBS_LOCATE
 optional-constant _POSIX2_PBS_MESSAGE
 optional-constant _POSIX2_PBS_TRACK
+
+optional-constant _POSIX_TIMESTAMP_RESOLUTION
 
 constant NULL
 
@@ -219,7 +236,20 @@
 constant _SC_TZNAME_MAX
 constant _SC_USER_GROUPS
 constant _SC_USER_GROUPS_R
+# ifdef XOPEN2K
+constant _SC_V6_ILP32_OFF32
+constant _SC_V6_ILP32_OFFBIG
+constant _SC_V6_LP64_OFF64
+constant _SC_V6_LPBIG_OFFBIG
+# endif
+# if defined XOPEN2K8 || defined POSIX2008
+constant _SC_V7_ILP32_OFF32
+constant _SC_V7_ILP32_OFFBIG
+constant _SC_V7_LP64_OFF64
+constant _SC_V7_LPBIG_OFFBIG
+# endif
 constant _SC_VERSION
+# if !defined POSIX && !defined POSIX2008
 constant _SC_XOPEN_VERSION
 constant _SC_XOPEN_CRYPT
 constant _SC_XOPEN_ENH_I18N
@@ -229,16 +259,53 @@
 constant _SC_XOPEN_LEGACY
 constant _SC_XOPEN_REALTIME

[... 8698 lines stripped ...]