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

[Commits] r18577 - in /fsf/trunk/libc: ./ bits/ include/ malloc/ manual/ sunrpc/ sysdeps/ieee754/ldbl-opt/ sysdeps/mach/hurd/bits/ sys...



Author: eglibc
Date: Thu May 17 00:01:38 2012
New Revision: 18577

Log:
Import glibc-mainline for 2012-05-17

Added:
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/glob.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort64.c
    fsf/trunk/libc/sysdeps/x86_64/x32/divdi3.c
    fsf/trunk/libc/sysdeps/x86_64/x32/ffs.c
    fsf/trunk/libc/sysdeps/x86_64/x32/gmp-mparam.h
    fsf/trunk/libc/sysdeps/x86_64/x32/symbol-hacks.h
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/INSTALL
    fsf/trunk/libc/Makeconfig
    fsf/trunk/libc/Makerules
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/bits/types.h
    fsf/trunk/libc/bits/typesizes.h
    fsf/trunk/libc/config.make.in
    fsf/trunk/libc/configure
    fsf/trunk/libc/configure.in
    fsf/trunk/libc/include/stdc-predef.h
    fsf/trunk/libc/malloc/malloc.c
    fsf/trunk/libc/manual/install.texi
    fsf/trunk/libc/sunrpc/Makefile
    fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/Makefile
    fsf/trunk/libc/sysdeps/mach/hurd/bits/typesizes.h
    fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/ipc.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/mqueue.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/user.h
    fsf/trunk/libc/sysvipc/sys/msg.h
    fsf/trunk/libc/time/ctime.c
    fsf/trunk/libc/time/time.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu May 17 00:01:38 2012
@@ -1,3 +1,218 @@
+2012-05-16  Paul Pluzhnikov  <ppluzhnikov@xxxxxxxxxx>
+
+	[BZ #208]
+	* malloc.c (int_mallinfo): Add parameter to accumulate statistics
+	in instead of returning them.  Return void.
+	(__libc_mallinfo): Accumulate over all arenas.
+	(__malloc_stats): Adjust for change in int_mallinfo interface.
+
+2012-05-16  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	[BZ #10375]
+	* configure.in (NM): Add AC_CHECK_TOOL for it.
+	(libc_extra_cflags): New substituted variable.
+	Check for -fstack-protector being used implicitly.
+	* configure: Regenerated.
+	* config.make.in (config-extra-cflags): New variable,
+	gets @libc_extra_cflags@.
+	* Makeconfig (CFLAGS): Add $(config-extra-cflags) near the front.
+
+	[BZ #10375]
+	* configure.in: Check for _FORTIFY_SOURCE being predefined.
+	(CPPUNDEFS): New substituted variable; add -U_FORTIFY_SOURCE if needed.
+	* configure: Regenerated.
+	* config.make.in (CPPUNDEFS): New substituted variable.
+	* Makeconfig (CPPFLAGS): Put $(CPPUNDEFS) at the beginning.
+	* Makerules ($(stdio_lim:h=st)): Use $(CPPUNDEFS).
+	* time/ctime.c: Don't #undef __OPTIMIZE__ and ctime.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/bits/mqueue.h: Include <bits/types.h>.
+	(mq_attr): Use __syscall_slong_t.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h (_STAT_VER_SVR4):
+	Check __x86_64__ instead of __WORDSIZE.
+	(_STAT_VER_LINUX): Likewise.
+	(stat): Check __x86_64__ instead of __WORDSIZE.  Use
+	__syscall_ulong_t and __syscall_slong_t.
+	(stat64): Likewise.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: New file.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h: New file.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/bits/ipc.h (ipc_perm): Use
+	__syscall_ulong_t.
+
+	* sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: Don't
+	include <bits/wordsize.h>.  Check __x86_64__ instead of
+	__WORDSIZE.
+	(greg_t): Use "__extension__ long long int" if __x86_64__ is
+	defined.
+	(mcontext_t): Replace "unsigned long" with "unsigned long long".
+
+	* sysdeps/unix/sysv/linux/x86_64/sys/user.h: Don't
+	include <bits/wordsize.h>.  Check __x86_64__ instead of
+	__WORDSIZE.
+	(user_regs_struct): Use "__extension__ unsigned long long"
+	instead of "unsigned long" if __x86_64__ is defined.
+	(user): Likewise.  Pad after pointer field if __ILP32__ is
+	defined.
+
+2012-05-16  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* configure.in (makeinfo): Require version 4.5 or later.  Allow
+	versions 5 to 9.
+	* configure: Regenerated.
+	* manual/install.texi (texinfo): Increase version requirement to
+	4.5 or later.
+	* INSTALL: Regenerated.
+
+	* include/stdc-predef.h (__STDC_ISO_10646__): Increase to 201103L.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86_64/x32/gmp-mparam.h: New file.
+
+	* sysdeps/x86_64/x32/ffs.c: New file.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/shm.h (shmatt_t): Use
+	__syscall_ulong_t.
+	(shmid_ds): Add __unused1 and __unused2 only if __x86_64__ isn't
+	defined.  Use __syscall_ulong_t.
+	(shminfo): Use __syscall_ulong_t.
+	(shm_info): Likewise.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/sem.h (semid_ds): Use
+	__syscall_ulong_t.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/msq.h: Don't include
+	<bits/wordsize.h>.
+	(msgqnum_t): Use __syscall_ulong_t.
+	(msglen_t): Likewise.
+	(msqid_ds): Check __x86_64__ instead of __WORDSIZE.  Use
+	__syscall_ulong_t.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/a.out.h: Don't include
+	<bits/wordsize.h>.  Check __x86_64__ instead of __WORDSIZE.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h: New file.
+
+	* sysdeps/x86_64/x32/divdi3.c: New dummy file.
+	* sysdeps/x86_64/x32/symbol-hacks.h: Likewise.
+
+	* sysvipc/sys/msg.h (msgbuf): Replace long int with
+	__syscall_slong_t.
+
+	* sysdeps/unix/sysv/linux/x86_64/sys/reg.h: Don't
+	include <bits/wordsize.h>.  Check __x86_64__ instead of
+	__WORDSIZE.
+
+	* sysdeps/unix/sysv/linux/x86_64/sys/procfs.h (elf_greg_t): Use
+	"unsigned long long int" if __x86_64__ is defined.
+	(elf_fpregset_t): Check __x86_64__ instead of __WORDSIZE.
+
+	* sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h: Don't include
+	<bits/wordsize.h>.  Check __x86_64__ instead of __WORDSIZE.
+	(DR_CONTROL_RESERVED): Use ULL instead of UL suffix.
+
+	* sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h: Include
+	<stdint.h>.
+	(GET_PC): Cast to uintptr_t first.
+	(GET_FRAME): Likewise.
+	(GET_STACK): Likewise.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/alphasort.c: New file.
+	* sysdeps/unix/sysv/linux/x86_64/x32/alphasort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/fseeko.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/fseeko64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/ftello.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/ftello64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/ftw.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/glob.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/iofopen.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/iofopen64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/lockf.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/lockf64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/mkostemp.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/mkostemp64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/mkstemp.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/mkstemp64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/scandir.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/scandir64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/scandirat.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/scandirat64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/versionsort.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/versionsort64.c: Likewise.
+
+2012-05-16  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* Makerules (+depfiles): Also collect depfiles from .oS in
+	$(extra-objs).
+	* sysdeps/ieee754/ldbl-opt/Makefile (extra-objs): Add $(addsuffix
+	.oS, $(libnldbl-routines)).
+
+	* Makerules (native-compile-mkdep-flags): Define.
+	* sunrpc/Makefile (extra-objs): Add $(addprefix
+	cross-,$(rpcgen-objs)), don't add $(cross-rpcgen-objs).
+	($(cross-rpcgen-objs)): Use $(native-compile-mkdep-flags) instead
+	of $(compile-mkdep-flags).  Depend on $(before-compile) instead of
+	calling $(make-target-directory).
+
+2012-05-15  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* bits/types.h (__snseconds_t): Removed.
+	* time/time.h (struct timespec): Replace __snseconds_t with
+	__syscall_slong_t.
+	* bits/typesizes.h (__SNSECONDS_T_TYPE): Removed.
+	* sysdeps/mach/hurd/bits/typesizes.h (__SNSECONDS_T_TYPE):
+	Likewise.
+	* sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/mach/hurd/bits/typesizes.h
+	(__SYSCALL_SLONG_TYPE): New macro.
+	(__SYSCALL_ULONG_TYPE): Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* bits/types.h (__syscall_slong_t): New type.
+	(__syscall_ulong_t): Likewise.
+
+	* bits/typesizes.h (__SYSCALL_SLONG_TYPE): New macro.
+	(__SYSCALL_ULONG_TYPE): Likewise.
+	* sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+	(__SYSCALL_SLONG_TYPE): Likewise.
+	(__SYSCALL_ULONG_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+	(__SYSCALL_SLONG_TYPE): Likewise.
+	(__SYSCALL_ULONG_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+	(__SYSCALL_SLONG_TYPE): Likewise.
+	(__SYSCALL_ULONG_TYPE): Likewise.
+
 2012-05-15  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/x86_64/Makefile (gen-as-const-headers):

Modified: fsf/trunk/libc/INSTALL
==============================================================================
--- fsf/trunk/libc/INSTALL (original)
+++ fsf/trunk/libc/INSTALL Thu May 17 00:01:38 2012
@@ -1,10 +1,10 @@
 Installing the GNU C Library
 ****************************
 
-Before you do anything else, you should read the file `FAQ' located at
-the top level of the source tree.  This file answers common questions
+Before you do anything else, you should read the FAQ at
+`http://sourceware.org/glibc/wiki/FAQ'.  It answers common questions
 and describes problems you may experience with compilation and
-installation.  It is updated more frequently than this manual.
+installation.
 
    Features can be added to the GNU C Library via "add-on" bundles.
 These are separate tar files, which you unpack into the top level of
@@ -177,9 +177,9 @@
 
    To format the `GNU C Library Reference Manual' for printing, type
 `make dvi'.  You need a working TeX installation to do this.  The
-distribution already includes the on-line formatted version of the
-manual, as Info files.  You can regenerate those with `make info', but
-it shouldn't be necessary.
+distribution builds the on-line formatted version of the manual, as
+Info files, as part of the build process.  You can build them manually
+with `make info'.
 
    The library has a number of special-purpose configuration parameters
 which you can find in `Makeconfig'.  These can be overwritten with the
@@ -297,7 +297,7 @@
      No other assembler or linker has the necessary functionality at the
      moment.
 
-   * GNU `texinfo' 3.12f
+   * GNU `texinfo' 4.5 or later
 
      To correctly translate and install the Texinfo documentation you
      need this version of the `texinfo' package.  Earlier versions do
@@ -393,7 +393,7 @@
    It is a good idea to verify that the problem has not already been
 reported.  Bugs are documented in two places: The file `BUGS' describes
 a number of well known bugs and the bug tracking system has a WWW
-interface at `http://sources.redhat.com/bugzilla/'.  The WWW interface
+interface at `http://sourceware.org/bugzilla/'.  The WWW interface
 gives you access to open and closed reports.  A closed report normally
 includes a patch or a hint on solving the problem.
 

Modified: fsf/trunk/libc/Makeconfig
==============================================================================
--- fsf/trunk/libc/Makeconfig (original)
+++ fsf/trunk/libc/Makeconfig Thu May 17 00:01:38 2012
@@ -661,13 +661,14 @@
 # Note that we can't use -std=* in CPPFLAGS, because it overrides
 # the implicit -lang-asm and breaks cpp behavior for .S files--notably
 # it causes cpp to stop predefining __ASSEMBLER__.
-CPPFLAGS = $(CPPFLAGS-config) $($(subdir)-CPPFLAGS) $(+includes) $(defines) \
+CPPFLAGS = $(CPPUNDEFS) $(CPPFLAGS-config) $($(subdir)-CPPFLAGS) \
+	   $(+includes) $(defines) \
 	   -include $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \
 	   $(CPPFLAGS-$(suffix $@)) \
 	   $(foreach lib,$(libof-$(basename $(@F))) \
 			 $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
 	   $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
-override CFLAGS	= -std=gnu99 $(gnu89-inline-CFLAGS) \
+override CFLAGS	= -std=gnu99 $(gnu89-inline-CFLAGS) $(config-extra-cflags) \
 		  $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
 		  $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
 		  $(CFLAGS-$(@F)) \

Modified: fsf/trunk/libc/Makerules
==============================================================================
--- fsf/trunk/libc/Makerules (original)
+++ fsf/trunk/libc/Makerules Thu May 17 00:01:38 2012
@@ -368,6 +368,11 @@
 compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags)
 compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags)
 compile-command.cc = $(compile.cc) $(OUTPUT_OPTION) $(compile-mkdep-flags)
+
+# Like compile-mkdep-flags, but for use with $(BUILD_CC).  We don't want to
+# track system includes here, they may spuriously trigger an install rule,
+# and would cause the check-local-headers test to fail.
+native-compile-mkdep-flags = -MMD -MP -MF $@.dt -MT $@
 
 # GCC can grok options after the file name, and it looks nicer that way.
 compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS)
@@ -642,6 +647,7 @@
 
 +depfiles := $(sources:.c=.d) \
 	     $(patsubst %.o,%.d,$(filter %.o,$(extra-objs:.os=.o))) \
+	     $(patsubst %.oS,%.d,$(filter %.oS,$(extra-objs))) \
 	     $(patsubst %.o,%.d,$(filter %.o,$(extra-test-objs:.os=.o))) \
 	     $(addsuffix .d,$(tests) $(xtests) $(test-srcs))
 ifeq ($(build-programs),yes)
@@ -1227,7 +1233,7 @@
 	  echo '#define _LIBC 1';					\
 	  echo '#include "$(..)misc/sys/uio.h"'; } |			\
 	$(CC) -E -dM -MD -MP -MF $(@:st=dT) -MT '$(@:st=h) $(@:st=d)' 	\
-	      $(+includes) -xc - -o $(@:st=hT)
+	      $(CPPUNDEFS) $(+includes) -xc - -o $(@:st=hT)
 	sed $(sed-remove-objpfx) $(sed-remove-dotdot)			\
 	    $(@:st=dT) > $(@:st=dt)
 	mv -f $(@:st=dt) $(@:st=d)

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu May 17 00:01:38 2012
@@ -9,25 +9,25 @@
 
 * The following bugs are resolved with this release:
 
-  174, 350, 369, 411, 706, 766, 887, 2074, 2541, 2547, 2548, 2550, 2551,
-  2552, 2553, 2554, 2562, 2563, 2565, 2566, 2570, 2576, 2636, 2678, 3335,
-  3440, 3748, 3768, 3866, 3868, 3906, 3976, 3992, 4026, 4108, 4596, 4822,
-  5077, 5461, 5805, 5993, 6471, 6486, 6578, 6649, 6730, 6770, 6794, 6884,
-  6890, 6894, 6895, 6907, 6911, 6959, 7064, 9739, 9902, 10110, 10135, 10140,
-  10153, 10210, 10254, 10346, 10545, 10716, 11174, 11322, 11365, 11451,
-  11494, 11521, 11677, 11837, 11959, 12047, 12097, 12193, 12297, 12298,
-  12301, 12340, 12354, 13058, 13361, 13525, 13526, 13527, 13528, 13529,
-  13530, 13531, 13532, 13533, 13547, 13551, 13552, 13553, 13555, 13556,
-  13559, 13563, 13566, 13583, 13592, 13594, 13613, 13618, 13637, 13656,
-  13658, 13673, 13691, 13695, 13704, 13705, 13706, 13726, 13738, 13739,
-  13750, 13758, 13760, 13761, 13775, 13786, 13787, 13792, 13806, 13824,
-  13840, 13841, 13844, 13846, 13851, 13852, 13854, 13871, 13872, 13873,
-  13879, 13883, 13884, 13885, 13886, 13892, 13895, 13908, 13910, 13911,
-  13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921,
-  13922, 13923, 13924, 13926, 13927, 13928, 13938, 13941, 13942, 13954,
-  13955, 13956, 13963, 13967, 13970, 13973, 13979, 13983, 13986, 14012,
-  14027, 14033, 14034, 14040, 14043, 14044, 14049, 14053, 14055, 14064,
-  14080, 14083, 14103, 14104, 14109
+  174, 208, 350, 369, 411, 706, 766, 887, 2074, 2541, 2547, 2548, 2550,
+  2551, 2552, 2553, 2554, 2562, 2563, 2565, 2566, 2570, 2576, 2636, 2678,
+  3335, 3440, 3748, 3768, 3866, 3868, 3906, 3976, 3992, 4026, 4108, 4596,
+  4822, 5077, 5461, 5805, 5993, 6471, 6486, 6578, 6649, 6730, 6770, 6794,
+  6884, 6890, 6894, 6895, 6907, 6911, 6959, 7064, 9739, 9902, 10110,
+  10135, 10140, 10153, 10210, 10254, 10346, 10375 10545, 10716, 11174,
+  11322, 11365, 11451, 11494, 11521, 11677, 11837, 11959, 12047, 12097,
+  12193, 12297, 12298, 12301, 12340, 12354, 13058, 13361, 13525, 13526,
+  13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552,
+  13553, 13555, 13556, 13559, 13563, 13566, 13583, 13592, 13594, 13613,
+  13618, 13637, 13656, 13658, 13673, 13691, 13695, 13704, 13705, 13706,
+  13726, 13738, 13739, 13750, 13758, 13760, 13761, 13775, 13786, 13787,
+  13792, 13806, 13824, 13840, 13841, 13844, 13846, 13851, 13852, 13854,
+  13871, 13872, 13873, 13879, 13883, 13884, 13885, 13886, 13892, 13895,
+  13908, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918,
+  13919, 13920, 13921, 13922, 13923, 13924, 13926, 13927, 13928, 13938,
+  13941, 13942, 13954, 13955, 13956, 13963, 13967, 13970, 13973, 13979,
+  13983, 13986, 14012, 14027, 14033, 14034, 14040, 14043, 14044, 14049,
+  14053, 14055, 14064, 14080, 14083, 14103, 14104, 14109
 
 * ISO C11 support:
 

Modified: fsf/trunk/libc/bits/types.h
==============================================================================
--- fsf/trunk/libc/bits/types.h (original)
+++ fsf/trunk/libc/bits/types.h Thu May 17 00:01:38 2012
@@ -1,5 +1,6 @@
 /* bits/types.h -- definitions of __*_t types underlying *_t types.
-   Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -148,7 +149,6 @@
 __STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch.  */
 __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
 __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */
-__STD_TYPE __SNSECONDS_T_TYPE __snseconds_t; /* Signed count of nanoseconds.  */
 
 __STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address.  */
 __STD_TYPE __SWBLK_T_TYPE __swblk_t;	/* Type of a swap block maybe?  */
@@ -178,6 +178,11 @@
 __STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
 
 __STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error.  */
+
+/* Signed long type used in system calls.  */
+__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t;
+/* Unsigned long type used in system calls.  */
+__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t;
 
 /* These few don't really vary by system, they always correspond
    to one of the other defined types.  */

Modified: fsf/trunk/libc/bits/typesizes.h
==============================================================================
--- fsf/trunk/libc/bits/typesizes.h (original)
+++ fsf/trunk/libc/bits/typesizes.h Thu May 17 00:01:38 2012
@@ -1,5 +1,6 @@
 /* bits/typesizes.h -- underlying types for *_t.  Generic version.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,7 +58,8 @@
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024

Modified: fsf/trunk/libc/config.make.in
==============================================================================
--- fsf/trunk/libc/config.make.in (original)
+++ fsf/trunk/libc/config.make.in Thu May 17 00:01:38 2012
@@ -34,6 +34,7 @@
 cflags-cpu = @libc_cv_cc_submachine@
 asflags-cpu = @libc_cv_cc_submachine@
 
+config-extra-cflags = @libc_extra_cflags@
 config-cflags-sse4 = @libc_cv_cc_sse4@
 config-cflags-avx = @libc_cv_cc_avx@
 config-cflags-sse2avx = @libc_cv_cc_sse2avx@
@@ -104,6 +105,7 @@
 BUILD_CC = @BUILD_CC@
 CFLAGS = @CFLAGS@
 CPPFLAGS-config = @CPPFLAGS@
+CPPUNDEFS = @CPPUNDEFS@
 ASFLAGS-config = @ASFLAGS_config@
 AR = @AR@
 MAKEINFO = @MAKEINFO@

Modified: fsf/trunk/libc/configure
==============================================================================
--- fsf/trunk/libc/configure (original)
+++ fsf/trunk/libc/configure Thu May 17 00:01:38 2012
@@ -632,6 +632,8 @@
 libc_cv_slibdir
 old_glibc_headers
 libc_cv_gcc_unwind_find_fde
+libc_extra_cflags
+CPPUNDEFS
 sizeof_long_double
 EGREP
 GREP
@@ -665,6 +667,7 @@
 CXX_SYSINCLUDES
 SYSINCLUDES
 AUTOCONF
+NM
 READELF
 SED
 MAKEINFO
@@ -4985,7 +4988,7 @@
   ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    4.*)
+    4.[5-9]*|4.[1-9][0-9]*|[5-9].*)
        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
 
@@ -5151,6 +5154,98 @@
   fi
 else
   READELF="$ac_cv_prog_READELF"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  ac_cv_prog_NM="$NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_NM="${ac_tool_prefix}nm"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+NM=$ac_cv_prog_NM
+if test -n "$NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NM"; then
+  ac_ct_NM=$NM
+  # Extract the first word of "nm", so it can be a program name with args.
+set dummy nm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NM"; then
+  ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_NM="nm"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NM=$ac_cv_prog_ac_ct_NM
+if test -n "$ac_ct_NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5
+$as_echo "$ac_ct_NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NM" = x; then
+    NM="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NM=$ac_ct_NM
+  fi
+else
+  NM="$ac_cv_prog_NM"
 fi
 
 
@@ -7540,6 +7635,85 @@
 
 
 sizeof_long_double=$ac_cv_sizeof_long_double
+
+
+CPPUNDEFS=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FORTIFY_SOURCE predefine" >&5
+$as_echo_n "checking for _FORTIFY_SOURCE predefine... " >&6; }
+if ${libc_cv_predef_fortify_source+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+#ifdef _FORTIFY_SOURCE
+# error bogon
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_cv_predef_fortify_source=no
+else
+  libc_cv_predef_fortify_source=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_predef_fortify_source" >&5
+$as_echo "$libc_cv_predef_fortify_source" >&6; }
+if test $libc_cv_predef_fortify_source = yes; then
+  CPPUNDEFS="${CPPUNDEFS:+$CPPUNDEFS }-U_FORTIFY_SOURCE"
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implicitly enables -fstack-protector" >&5
+$as_echo_n "checking whether $CC implicitly enables -fstack-protector... " >&6; }
+if ${libc_cv_predef_stack_protector+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+extern void foobar (char *);
+int
+main ()
+{
+char large_array[2048]; foobar (large_array);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+libc_undefs=`$NM -u conftest.o |
+  LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
+    2>&5` || {
+  as_fn_error $? "confusing output from $NM -u" "$LINENO" 5
+}
+echo >&5 "libc_undefs='$libc_undefs'"
+case "$libc_undefs" in
+foobar) libc_cv_predef_stack_protector=no ;;
+'__stack_chk_fail
+foobar') libc_cv_predef_stack_protector=yes ;;
+*) as_fn_error $? "unexpected symbols in test: $libc_undefs" "$LINENO" 5 ;;
+esac
+else
+  as_fn_error $? "test compilation failed" "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_predef_stack_protector" >&5
+$as_echo "$libc_cv_predef_stack_protector" >&6; }
+libc_extra_cflags=
+if test $libc_cv_predef_stack_protector = yes; then
+  libc_extra_cflags=-fno-stack-protector
+fi
 
 
 ### End of automated tests.

Modified: fsf/trunk/libc/configure.in
==============================================================================
--- fsf/trunk/libc/configure.in (original)
+++ fsf/trunk/libc/configure.in Thu May 17 00:01:38 2012
@@ -919,7 +919,7 @@
   MSGFMT=: aux_missing="$aux_missing msgfmt")
 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
   [GNU texinfo.* \([0-9][0-9.]*\)],
-  [4.*],
+  [4.[5-9]*|4.[1-9][0-9]*|[5-9].*],
   MAKEINFO=: aux_missing="$aux_missing makeinfo")
 AC_CHECK_PROG_VER(SED, sed, --version,
   [GNU sed version \([0-9]*\.[0-9.]*\)],
@@ -927,6 +927,7 @@
   SED=: aux_missing="$aux_missing sed")
 
 AC_CHECK_TOOL(READELF, readelf, false)
+AC_CHECK_TOOL(NM, nm, false)
 
 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
 case "x$AUTOCONF" in
@@ -2036,6 +2037,55 @@
 sizeof_long_double=$ac_cv_sizeof_long_double
 AC_SUBST(sizeof_long_double)
 
+CPPUNDEFS=
+dnl Check for silly hacked compilers predefining _FORTIFY_SOURCE.
+dnl Since we are building the implementations of the fortified functions here,
+dnl having the macro defined interacts very badly.
+AC_CACHE_CHECK([for _FORTIFY_SOURCE predefine], libc_cv_predef_fortify_source,
+[AC_TRY_COMPILE([], [
+#ifdef _FORTIFY_SOURCE
+# error bogon
+#endif],
+		[libc_cv_predef_fortify_source=no],
+		[libc_cv_predef_fortify_source=yes])])
+if test $libc_cv_predef_fortify_source = yes; then
+  CPPUNDEFS="${CPPUNDEFS:+$CPPUNDEFS }-U_FORTIFY_SOURCE"
+fi
+AC_SUBST(CPPUNDEFS)
+
+dnl Check for silly hacked compilers inserting -fstack-protector.
+dnl This breaks badly for the early startup code we compile, since
+dnl the compiled code can refer to a magic machine-dependent location
+dnl for the canary value before we have sufficient setup for that to
+dnl work.  It's also questionable to build all of libc with this flag
+dnl even when you're doing that for most applications you build, since
+dnl libc's code is so heavily-used and performance-sensitive.  If we
+dnl ever really want to make that work, it should be enabled explicitly
+dnl in the libc build, not inherited from implicit compiler settings.
+AC_CACHE_CHECK([whether $CC implicitly enables -fstack-protector],
+	       libc_cv_predef_stack_protector, [
+AC_TRY_COMPILE([extern void foobar (char *);],
+	       [char large_array[2048]; foobar (large_array);], [
+libc_undefs=`$NM -u conftest.o |
+  LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
+    2>&AS_MESSAGE_LOG_FD` || {
+  AC_MSG_ERROR([confusing output from $NM -u])
+}
+echo >&AS_MESSAGE_LOG_FD "libc_undefs='$libc_undefs'"
+case "$libc_undefs" in
+foobar) libc_cv_predef_stack_protector=no ;;
+'__stack_chk_fail
+foobar') libc_cv_predef_stack_protector=yes ;;
+*) AC_MSG_ERROR([unexpected symbols in test: $libc_undefs]) ;;
+esac],
+	       [AC_MSG_ERROR([test compilation failed])])
+])
+libc_extra_cflags=
+if test $libc_cv_predef_stack_protector = yes; then
+  libc_extra_cflags=-fno-stack-protector
+fi
+AC_SUBST(libc_extra_cflags)
+
 ### End of automated tests.
 ### Now run sysdeps configure fragments.
 

Modified: fsf/trunk/libc/include/stdc-predef.h
==============================================================================
--- fsf/trunk/libc/include/stdc-predef.h (original)
+++ fsf/trunk/libc/include/stdc-predef.h Thu May 17 00:01:38 2012
@@ -30,8 +30,9 @@
 #define __STDC_IEC_559__		1
 #define __STDC_IEC_559_COMPLEX__	1
 
-/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
-#define __STDC_ISO_10646__		200009L
+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /
+   Unicode 6.0.  */
+#define __STDC_ISO_10646__		201103L
 
 /* We do not support C11 <threads.h>.  */
 #define __STDC_NO_THREADS__		1

Modified: fsf/trunk/libc/malloc/malloc.c
==============================================================================
--- fsf/trunk/libc/malloc/malloc.c (original)
+++ fsf/trunk/libc/malloc/malloc.c Thu May 17 00:01:38 2012
@@ -4513,12 +4513,12 @@
 
 /*
   ------------------------------ mallinfo ------------------------------
-*/
-
-static struct mallinfo
-int_mallinfo(mstate av)
+  Accumulate malloc statistics for arena AV into M.
+*/
+
+static void
+int_mallinfo(mstate av, struct mallinfo *m)
 {
-  struct mallinfo mi;
   size_t i;
   mbinptr b;
   mchunkptr p;
@@ -4558,29 +4558,40 @@
     }
   }
 
-  mi.smblks = nfastblocks;
-  mi.ordblks = nblocks;
-  mi.fordblks = avail;
-  mi.uordblks = av->system_mem - avail;
-  mi.arena = av->system_mem;
-  mi.hblks = mp_.n_mmaps;
-  mi.hblkhd = mp_.mmapped_mem;
-  mi.fsmblks = fastavail;
-  mi.keepcost = chunksize(av->top);
-  mi.usmblks = mp_.max_total_mem;
-  return mi;
+  m->smblks += nfastblocks;
+  m->ordblks += nblocks;
+  m->fordblks += avail;
+  m->uordblks += av->system_mem - avail;
+  m->arena += av->system_mem;
+  m->fsmblks += fastavail;
+  if (av == &main_arena)
+    {
+      m->hblks = mp_.n_mmaps;
+      m->hblkhd = mp_.mmapped_mem;
+      m->usmblks = mp_.max_total_mem;
+      m->keepcost = chunksize(av->top);
+    }
 }
 
 
 struct mallinfo __libc_mallinfo()
 {
   struct mallinfo m;
+  mstate ar_ptr;
 
   if(__malloc_initialized < 0)
     ptmalloc_init ();
-  (void)mutex_lock(&main_arena.mutex);
-  m = int_mallinfo(&main_arena);
-  (void)mutex_unlock(&main_arena.mutex);
+
+  memset(&m, 0, sizeof (m));
+  ar_ptr = &main_arena;
+  do {
+    (void)mutex_lock(&ar_ptr->mutex);
+    int_mallinfo(ar_ptr, &m);
+    (void)mutex_unlock(&ar_ptr->mutex);
+
+    ar_ptr = ar_ptr->next;
+  } while (ar_ptr != &main_arena);
+
   return m;
 }
 
@@ -4593,7 +4604,6 @@
 {
   int i;
   mstate ar_ptr;
-  struct mallinfo mi;
   unsigned int in_use_b = mp_.mmapped_mem, system_b = in_use_b;
 #if THREAD_STATS
   long stat_lock_direct = 0, stat_lock_loop = 0, stat_lock_wait = 0;
@@ -4605,8 +4615,11 @@
   int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
   ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
   for (i=0, ar_ptr = &main_arena;; i++) {
+    struct mallinfo mi;
+
+    memset(&mi, 0, sizeof(mi));
     (void)mutex_lock(&ar_ptr->mutex);
-    mi = int_mallinfo(ar_ptr);
+    int_mallinfo(ar_ptr, &mi);
     fprintf(stderr, "Arena %d:\n", i);
     fprintf(stderr, "system bytes     = %10u\n", (unsigned int)mi.arena);
     fprintf(stderr, "in use bytes     = %10u\n", (unsigned int)mi.uordblks);

Modified: fsf/trunk/libc/manual/install.texi
==============================================================================
--- fsf/trunk/libc/manual/install.texi (original)
+++ fsf/trunk/libc/manual/install.texi Thu May 17 00:01:38 2012
@@ -334,7 +334,7 @@
 moment.
 
 @item
-GNU @code{texinfo} 3.12f
+GNU @code{texinfo} 4.5 or later
 
 To correctly translate and install the Texinfo documentation you need
 this version of the @code{texinfo} package.  Earlier versions do not

Modified: fsf/trunk/libc/sunrpc/Makefile
==============================================================================
--- fsf/trunk/libc/sunrpc/Makefile (original)
+++ fsf/trunk/libc/sunrpc/Makefile Thu May 17 00:01:38 2012
@@ -91,7 +91,7 @@
 rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
 	      rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
 	      rpc_tblout.o rpc_sample.o
-extra-objs = $(rpcgen-objs)
+extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs))
 others += rpcgen
 
 all: # Make this the default target; it will be defined in Rules.
@@ -157,15 +157,13 @@
 $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs))
 
 cross-rpcgen-objs := $(addprefix $(objpfx)cross-,$(rpcgen-objs))
-extra-objs += $(cross-rpcgen-objs)
 
 # When generic makefile support for build system programs is
 # available, it should replace this code.  See
 # <http://sourceware.org/bugzilla/show_bug.cgi?id=14087>.
-$(cross-rpcgen-objs): $(objpfx)cross-%.o: %.c
-	$(make-target-directory)
+$(cross-rpcgen-objs): $(objpfx)cross-%.o: %.c $(before-compile)
 	$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) $< \
-		$(OUTPUT_OPTION) $(compile-mkdep-flags) -c
+		$(OUTPUT_OPTION) $(native-compile-mkdep-flags) -c
 
 $(objpfx)cross-rpcgen: $(cross-rpcgen-objs)
 	$(BUILD_CC) $^ $(BUILD_LDFLAGS) -o $@

Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/Makefile (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/Makefile Thu May 17 00:01:38 2012
@@ -44,5 +44,6 @@
 libnldbl-routines = $(libnldbl-calls:%=nldbl-%)
 libnldbl-inhibit-o = $(object-suffixes)
 libnldbl-static-only-routines = $(libnldbl-routines)
+extra-objs += $(addsuffix .oS, $(libnldbl-routines))
 
 endif

Modified: fsf/trunk/libc/sysdeps/mach/hurd/bits/typesizes.h
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/bits/typesizes.h (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/bits/typesizes.h Thu May 17 00:01:38 2012
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Hurd version.
-   Copyright (C) 2002,2003 Free Software Foundation, Inc.
+   Copyright (C) 2002,2003,2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,7 +57,8 @@
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		__UQUAD_TYPE
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		256

Modified: fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h (original)
+++ fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h Thu May 17 00:01:38 2012
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  FreeBSD version.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,7 +57,8 @@
 #define __BLKSIZE_T_TYPE	__U32_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/ipc.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/ipc.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/ipc.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,6 +50,6 @@
     unsigned short int __pad1;
     unsigned short int __seq;		/* Sequence number.  */
     unsigned short int __pad2;
-    unsigned long int __unused1;
-    unsigned long int __unused2;
+    __syscall_ulong_t __unused1;
+    __syscall_ulong_t __unused2;
   };

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/mqueue.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/mqueue.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/mqueue.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,13 +19,15 @@
 # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
 #endif
 
+#include <bits/types.h>
+
 typedef int mqd_t;
 
 struct mq_attr
 {
-  long int mq_flags;	/* Message queue flags.  */
-  long int mq_maxmsg;	/* Maximum number of messages.  */
-  long int mq_msgsize;	/* Maximum message size.  */
-  long int mq_curmsgs;	/* Number of messages currently queued.  */
-  long int __pad[4];
+  __syscall_slong_t mq_flags;	/* Message queue flags.  */
+  __syscall_slong_t mq_maxmsg;	/* Maximum number of messages.  */
+  __syscall_slong_t mq_msgsize;	/* Maximum message size.  */
+  __syscall_slong_t mq_curmsgs;	/* Number of messages currently queued.  */
+  __syscall_slong_t __pad[4];
 };

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h Thu May 17 00:01:38 2012
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Linux/s390 version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -63,7 +63,8 @@
 /* size_t is unsigned long int on s390 -m31.  */
 #define __SSIZE_T_TYPE		__SLONGWORD_TYPE
 #endif
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h Thu May 17 00:01:38 2012
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Linux/SPARC version.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,7 +57,8 @@
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h Thu May 17 00:01:38 2012
@@ -2,9 +2,7 @@
 # error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
 #endif
 
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
+#ifdef __x86_64__
 
 /* Signal to users of this header that this architecture really doesn't
    support a.out binary format.  */

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h Thu May 17 00:01:38 2012
@@ -1,0 +1,33 @@
+/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipctypes.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#ifndef _BITS_IPCTYPES_H
+#define _BITS_IPCTYPES_H	1
+
+/* Used in `struct shmid_ds'.  */
+# ifdef __x86_64__
+typedef int __ipc_pid_t;
+# else
+typedef unsigned short int __ipc_pid_t;
+# endif
+
+#endif /* bits/ipctypes.h */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/msq.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/msq.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,6 @@
 #endif
 
 #include <bits/types.h>
-#include <bits/wordsize.h>
 
 /* Define options for message queue functions.  */
 #define MSG_NOERROR	010000	/* no error if message is too big */
@@ -29,8 +28,8 @@
 #endif
 
 /* Types used in the structure definition.  */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
+typedef __syscall_ulong_t msgqnum_t;
+typedef __syscall_ulong_t msglen_t;
 
 /* Structure of record for one message inside the kernel.
    The type `struct msg' is opaque.  */
@@ -38,24 +37,24 @@
 {
   struct ipc_perm msg_perm;	/* structure describing operation permission */
   __time_t msg_stime;		/* time of last msgsnd command */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
   unsigned long int __unused1;
 #endif
   __time_t msg_rtime;		/* time of last msgrcv command */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
   unsigned long int __unused2;
 #endif
   __time_t msg_ctime;		/* time of last change */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
   unsigned long int __unused3;
 #endif
-  unsigned long int __msg_cbytes; /* current number of bytes on queue */
+  __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
   msgqnum_t msg_qnum;		/* number of messages currently on queue */
   msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
   __pid_t msg_lspid;		/* pid of last msgsnd() */
   __pid_t msg_lrpid;		/* pid of last msgrcv() */
-  unsigned long int __unused4;
-  unsigned long int __unused5;
+  __syscall_ulong_t __unused4;
+  __syscall_ulong_t __unused5;
 };
 
 #ifdef __USE_MISC

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/sem.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/sem.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -39,12 +39,12 @@
 {
   struct ipc_perm sem_perm;		/* operation permission struct */
   __time_t sem_otime;			/* last semop() time */
-  unsigned long int __unused1;
+  __syscall_ulong_t __unused1;
   __time_t sem_ctime;			/* last time changed by semctl() */
-  unsigned long int __unused2;
-  unsigned long int sem_nsems;		/* number of semaphores in set */
-  unsigned long int __unused3;
-  unsigned long int __unused4;
+  __syscall_ulong_t __unused2;
+  __syscall_ulong_t sem_nsems;		/* number of semaphores in set */
+  __syscall_ulong_t __unused3;
+  __syscall_ulong_t __unused4;
 };
 
 /* The user should define a union like the following to use it for arguments

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h Thu May 17 00:01:38 2012
@@ -1,5 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004, 2009
-   Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -44,7 +43,7 @@
 
 
 /* Type to count number of attaches.  */
-typedef unsigned long int shmatt_t;
+typedef __syscall_ulong_t shmatt_t;
 
 /* Data structure describing a shared memory segment.  */
 struct shmid_ds
@@ -52,22 +51,22 @@
     struct ipc_perm shm_perm;		/* operation permission struct */
     size_t shm_segsz;			/* size of segment in bytes */
     __time_t shm_atime;			/* time of last shmat() */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
     unsigned long int __unused1;
 #endif
     __time_t shm_dtime;			/* time of last shmdt() */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
     unsigned long int __unused2;
 #endif
     __time_t shm_ctime;			/* time of last change by shmctl() */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
     unsigned long int __unused3;
 #endif
     __pid_t shm_cpid;			/* pid of creator */
     __pid_t shm_lpid;			/* pid of last shmop */
     shmatt_t shm_nattch;		/* number of current attaches */
-    unsigned long int __unused4;
-    unsigned long int __unused5;
+    __syscall_ulong_t __unused4;
+    __syscall_ulong_t __unused5;
   };
 
 #ifdef __USE_MISC
@@ -84,25 +83,25 @@
 
 struct	shminfo
   {
-    unsigned long int shmmax;
-    unsigned long int shmmin;
-    unsigned long int shmmni;
-    unsigned long int shmseg;
-    unsigned long int shmall;
-    unsigned long int __unused1;
-    unsigned long int __unused2;
-    unsigned long int __unused3;
-    unsigned long int __unused4;
+    __syscall_ulong_t shmmax;
+    __syscall_ulong_t shmmin;
+    __syscall_ulong_t shmmni;
+    __syscall_ulong_t shmseg;
+    __syscall_ulong_t shmall;
+    __syscall_ulong_t __unused1;
+    __syscall_ulong_t __unused2;
+    __syscall_ulong_t __unused3;
+    __syscall_ulong_t __unused4;
   };
 
 struct shm_info
   {
     int used_ids;
-    unsigned long int shm_tot;	/* total allocated shm */
-    unsigned long int shm_rss;	/* total resident shm */
-    unsigned long int shm_swp;	/* total swapped shm */
-    unsigned long int swap_attempts;
-    unsigned long int swap_successes;
+    __syscall_ulong_t shm_tot;	/* total allocated shm */
+    __syscall_ulong_t shm_rss;	/* total resident shm */
+    __syscall_ulong_t shm_swp;	/* total swapped shm */
+    __syscall_ulong_t swap_attempts;
+    __syscall_ulong_t swap_successes;
   };
 
 #endif /* __USE_MISC */

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h Thu May 17 00:01:38 2012
@@ -1,0 +1,330 @@
+/* siginfo_t, sigevent and constants.  Linux x86-64 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#if !defined _SIGNAL_H && !defined __need_siginfo_t \
+    && !defined __need_sigevent_t
+# error "Never include this file directly.  Use <signal.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+#if (!defined __have_sigval_t \
+     && (defined _SIGNAL_H || defined __need_siginfo_t \
+	 || defined __need_sigevent_t))
+# define __have_sigval_t	1
+
+/* Type for data associated with a signal.  */
+typedef union sigval
+  {
+    int sival_int;
+    void *sival_ptr;
+  } sigval_t;
+#endif
+
+#if (!defined __have_siginfo_t \
+     && (defined _SIGNAL_H || defined __need_siginfo_t))
+# define __have_siginfo_t	1
+
+# define __SI_MAX_SIZE     128
+# if __WORDSIZE == 64
+#  define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof (int)) - 4)
+# else
+#  define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof (int)) - 3)
+# endif
+
+# if defined __x86_64__ && __WORDSIZE == 32
+/* si_utime and si_stime must be 4 byte aligned for x32 to match the
+   kernel.  We align siginfo_t to 8 bytes so that si_utime and si_stime
+   are actually aligned to 8 bytes since their offsets are multiple of
+   8 bytes.  */
+typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t;
+#  define __SI_ALIGNMENT __attribute__ ((__aligned__ (8)))
+# else
+typedef __clock_t __sigchld_clock_t;
+#  define __SI_ALIGNMENT
+# endif
+
+typedef struct
+  {
+    int si_signo;		/* Signal number.  */
+    int si_errno;		/* If non-zero, an errno value associated with
+				   this signal, as defined in <errno.h>.  */
+    int si_code;		/* Signal code.  */
+
+    union
+      {
+	int _pad[__SI_PAD_SIZE];
+
+	 /* kill().  */
+	struct
+	  {
+	    __pid_t si_pid;	/* Sending process ID.  */
+	    __uid_t si_uid;	/* Real user ID of sending process.  */
+	  } _kill;
+
+	/* POSIX.1b timers.  */
+	struct
+	  {
+	    int si_tid;		/* Timer ID.  */
+	    int si_overrun;	/* Overrun count.  */
+	    sigval_t si_sigval;	/* Signal value.  */
+	  } _timer;
+
+	/* POSIX.1b signals.  */
+	struct
+	  {
+	    __pid_t si_pid;	/* Sending process ID.  */
+	    __uid_t si_uid;	/* Real user ID of sending process.  */
+	    sigval_t si_sigval;	/* Signal value.  */
+	  } _rt;
+
+	/* SIGCHLD.  */
+	struct
+	  {
+	    __pid_t si_pid;	/* Which child.  */
+	    __uid_t si_uid;	/* Real user ID of sending process.  */
+	    int si_status;	/* Exit value or signal.  */
+	    __sigchld_clock_t si_utime;
+	    __sigchld_clock_t si_stime;
+	  } _sigchld;
+
+	/* SIGILL, SIGFPE, SIGSEGV, SIGBUS.  */
+	struct
+	  {
+	    void *si_addr;	/* Faulting insn/memory ref.  */
+	  } _sigfault;
+
+	/* SIGPOLL.  */
+	struct
+	  {
+	    long int si_band;	/* Band event for SIGPOLL.  */
+	    int si_fd;
+	  } _sigpoll;
+      } _sifields;
+  } siginfo_t __SI_ALIGNMENT;
+
+
+/* X/Open requires some more fields with fixed names.  */
+# define si_pid		_sifields._kill.si_pid
+# define si_uid		_sifields._kill.si_uid
+# define si_timerid	_sifields._timer.si_tid
+# define si_overrun	_sifields._timer.si_overrun
+# define si_status	_sifields._sigchld.si_status
+# define si_utime	_sifields._sigchld.si_utime
+# define si_stime	_sifields._sigchld.si_stime
+# define si_value	_sifields._rt.si_sigval
+# define si_int		_sifields._rt.si_sigval.sival_int
+# define si_ptr		_sifields._rt.si_sigval.sival_ptr
+# define si_addr	_sifields._sigfault.si_addr
+# define si_band	_sifields._sigpoll.si_band
+# define si_fd		_sifields._sigpoll.si_fd
+
+
+/* Values for `si_code'.  Positive values are reserved for kernel-generated
+   signals.  */
+enum
+{
+  SI_ASYNCNL = -60,		/* Sent by asynch name lookup completion.  */
+# define SI_ASYNCNL	SI_ASYNCNL
+  SI_TKILL = -6,		/* Sent by tkill.  */
+# define SI_TKILL	SI_TKILL
+  SI_SIGIO,			/* Sent by queued SIGIO. */
+# define SI_SIGIO	SI_SIGIO
+  SI_ASYNCIO,			/* Sent by AIO completion.  */
+# define SI_ASYNCIO	SI_ASYNCIO
+  SI_MESGQ,			/* Sent by real time mesq state change.  */
+# define SI_MESGQ	SI_MESGQ
+  SI_TIMER,			/* Sent by timer expiration.  */
+# define SI_TIMER	SI_TIMER
+  SI_QUEUE,			/* Sent by sigqueue.  */
+# define SI_QUEUE	SI_QUEUE
+  SI_USER,			/* Sent by kill, sigsend.  */
+# define SI_USER	SI_USER
+  SI_KERNEL = 0x80		/* Send by kernel.  */
+#define SI_KERNEL	SI_KERNEL
+};
+
+
+/* `si_code' values for SIGILL signal.  */
+enum
+{
+  ILL_ILLOPC = 1,		/* Illegal opcode.  */
+# define ILL_ILLOPC	ILL_ILLOPC
+  ILL_ILLOPN,			/* Illegal operand.  */
+# define ILL_ILLOPN	ILL_ILLOPN
+  ILL_ILLADR,			/* Illegal addressing mode.  */
+# define ILL_ILLADR	ILL_ILLADR
+  ILL_ILLTRP,			/* Illegal trap. */
+# define ILL_ILLTRP	ILL_ILLTRP
+  ILL_PRVOPC,			/* Privileged opcode.  */
+# define ILL_PRVOPC	ILL_PRVOPC
+  ILL_PRVREG,			/* Privileged register.  */
+# define ILL_PRVREG	ILL_PRVREG
+  ILL_COPROC,			/* Coprocessor error.  */
+# define ILL_COPROC	ILL_COPROC
+  ILL_BADSTK			/* Internal stack error.  */
+# define ILL_BADSTK	ILL_BADSTK
+};
+
+/* `si_code' values for SIGFPE signal.  */
+enum
+{
+  FPE_INTDIV = 1,		/* Integer divide by zero.  */
+# define FPE_INTDIV	FPE_INTDIV
+  FPE_INTOVF,			/* Integer overflow.  */
+# define FPE_INTOVF	FPE_INTOVF
+  FPE_FLTDIV,			/* Floating point divide by zero.  */
+# define FPE_FLTDIV	FPE_FLTDIV
+  FPE_FLTOVF,			/* Floating point overflow.  */
+# define FPE_FLTOVF	FPE_FLTOVF
+  FPE_FLTUND,			/* Floating point underflow.  */
+# define FPE_FLTUND	FPE_FLTUND
+  FPE_FLTRES,			/* Floating point inexact result.  */
+# define FPE_FLTRES	FPE_FLTRES
+  FPE_FLTINV,			/* Floating point invalid operation.  */
+# define FPE_FLTINV	FPE_FLTINV
+  FPE_FLTSUB			/* Subscript out of range.  */
+# define FPE_FLTSUB	FPE_FLTSUB
+};
+
+/* `si_code' values for SIGSEGV signal.  */
+enum
+{
+  SEGV_MAPERR = 1,		/* Address not mapped to object.  */
+# define SEGV_MAPERR	SEGV_MAPERR
+  SEGV_ACCERR			/* Invalid permissions for mapped object.  */
+# define SEGV_ACCERR	SEGV_ACCERR
+};
+
+/* `si_code' values for SIGBUS signal.  */
+enum
+{
+  BUS_ADRALN = 1,		/* Invalid address alignment.  */
+# define BUS_ADRALN	BUS_ADRALN
+  BUS_ADRERR,			/* Non-existant physical address.  */
+# define BUS_ADRERR	BUS_ADRERR
+  BUS_OBJERR			/* Object specific hardware error.  */
+# define BUS_OBJERR	BUS_OBJERR
+};
+
+/* `si_code' values for SIGTRAP signal.  */
+enum
+{
+  TRAP_BRKPT = 1,		/* Process breakpoint.  */
+# define TRAP_BRKPT	TRAP_BRKPT
+  TRAP_TRACE			/* Process trace trap.  */
+# define TRAP_TRACE	TRAP_TRACE
+};
+
+/* `si_code' values for SIGCHLD signal.  */
+enum
+{
+  CLD_EXITED = 1,		/* Child has exited.  */
+# define CLD_EXITED	CLD_EXITED
+  CLD_KILLED,			/* Child was killed.  */
+# define CLD_KILLED	CLD_KILLED
+  CLD_DUMPED,			/* Child terminated abnormally.  */
+# define CLD_DUMPED	CLD_DUMPED
+  CLD_TRAPPED,			/* Traced child has trapped.  */
+# define CLD_TRAPPED	CLD_TRAPPED
+  CLD_STOPPED,			/* Child has stopped.  */
+# define CLD_STOPPED	CLD_STOPPED
+  CLD_CONTINUED			/* Stopped child has continued.  */
+# define CLD_CONTINUED	CLD_CONTINUED
+};
+
+/* `si_code' values for SIGPOLL signal.  */
+enum
+{
+  POLL_IN = 1,			/* Data input available.  */
+# define POLL_IN	POLL_IN
+  POLL_OUT,			/* Output buffers available.  */
+# define POLL_OUT	POLL_OUT
+  POLL_MSG,			/* Input message available.   */
+# define POLL_MSG	POLL_MSG
+  POLL_ERR,			/* I/O error.  */
+# define POLL_ERR	POLL_ERR
+  POLL_PRI,			/* High priority input available.  */
+# define POLL_PRI	POLL_PRI
+  POLL_HUP			/* Device disconnected.  */
+# define POLL_HUP	POLL_HUP
+};
+
+# undef __need_siginfo_t
+#endif	/* !have siginfo_t && (have _SIGNAL_H || need siginfo_t).  */
+
+
+#if (defined _SIGNAL_H || defined __need_sigevent_t) \
+    && !defined __have_sigevent_t
+# define __have_sigevent_t	1
+
+/* Structure to transport application-defined values with signals.  */
+# define __SIGEV_MAX_SIZE	64
+# if __WORDSIZE == 64
+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
+# else
+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
+# endif
+
+/* Forward declaration.  */
+# ifndef __have_pthread_attr_t
+typedef union pthread_attr_t pthread_attr_t;
+#  define __have_pthread_attr_t	1
+# endif
+
+typedef struct sigevent
+  {
+    sigval_t sigev_value;
+    int sigev_signo;
+    int sigev_notify;
+
+    union
+      {
+	int _pad[__SIGEV_PAD_SIZE];
+
+	/* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
+	   thread to receive the signal.  */
+	__pid_t _tid;
+
+	struct
+	  {
+	    void (*_function) (sigval_t);	/* Function to start.  */
+	    pthread_attr_t *_attribute;		/* Thread attributes.  */
+	  } _sigev_thread;
+      } _sigev_un;
+  } sigevent_t;
+
+/* POSIX names to access some of the members.  */
+# define sigev_notify_function   _sigev_un._sigev_thread._function
+# define sigev_notify_attributes _sigev_un._sigev_thread._attribute
+
+/* `sigev_notify' values.  */
+enum
+{
+  SIGEV_SIGNAL = 0,		/* Notify via signal.  */
+# define SIGEV_SIGNAL	SIGEV_SIGNAL
+  SIGEV_NONE,			/* Other notification: meaningless.  */
+# define SIGEV_NONE	SIGEV_NONE
+  SIGEV_THREAD,			/* Deliver via thread creation.  */
+# define SIGEV_THREAD	SIGEV_THREAD
+
+  SIGEV_THREAD_ID = 4		/* Send signal to specific thread.  */
+#define SIGEV_THREAD_ID	SIGEV_THREAD_ID
+};
+
+#endif	/* have _SIGNAL_H.  */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2003,2009,2010 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
 /* Versions of the `struct stat' data structure.  */
 #define _STAT_VER_KERNEL	0
 
-#if __WORDSIZE == 32
+#ifndef __x86_64__
 # define _STAT_VER_SVR4		2
 # define _STAT_VER_LINUX	3
 
@@ -45,15 +45,15 @@
 struct stat
   {
     __dev_t st_dev;		/* Device.  */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
     unsigned short int __pad1;
 #endif
-#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
+#if defined __x86_64__ || !defined __USE_FILE_OFFSET64
     __ino_t st_ino;		/* File serial number.	*/
 #else
     __ino_t __st_ino;			/* 32bit file serial number.	*/
 #endif
-#if __WORDSIZE == 32
+#ifndef __x86_64__
     __mode_t st_mode;			/* File mode.  */
     __nlink_t st_nlink;			/* Link count.  */
 #else
@@ -62,20 +62,20 @@
 #endif
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
-#if __WORDSIZE == 64
+#ifdef __x86_64__
     int __pad0;
 #endif
     __dev_t st_rdev;		/* Device number, if device.  */
-#if __WORDSIZE == 32
+#ifndef __x86_64__
     unsigned short int __pad2;
 #endif
-#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
+#if defined __x86_64__ || !defined __USE_FILE_OFFSET64
     __off_t st_size;			/* Size of file, in bytes.  */
 #else
     __off64_t st_size;			/* Size of file, in bytes.  */
 #endif
     __blksize_t st_blksize;	/* Optimal block size for I/O.  */
-#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
+#if defined __x86_64__  || !defined __USE_FILE_OFFSET64
     __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */
 #else
     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
@@ -95,14 +95,14 @@
 # define st_ctime st_ctim.tv_sec
 #else
     __time_t st_atime;			/* Time of last access.  */
-    unsigned long int st_atimensec;	/* Nscecs of last access.  */
+    __syscall_ulong_t st_atimensec;	/* Nscecs of last access.  */
     __time_t st_mtime;			/* Time of last modification.  */
-    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
+    __syscall_ulong_t st_mtimensec;	/* Nsecs of last modification.  */
     __time_t st_ctime;			/* Time of last status change.  */
-    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
-#endif
-#if __WORDSIZE == 64
-    long int __unused[3];
+    __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change.  */
+#endif
+#ifdef __x86_64__
+    __syscall_slong_t __unused[3];
 #else
 # ifndef __USE_FILE_OFFSET64
     unsigned long int __unused4;
@@ -118,7 +118,7 @@
 struct stat64
   {
     __dev_t st_dev;		/* Device.  */
-# if __WORDSIZE == 64
+# ifdef __x86_64__
     __ino64_t st_ino;		/* File serial number.  */
     __nlink_t st_nlink;		/* Link count.  */
     __mode_t st_mode;		/* File mode.  */
@@ -130,7 +130,7 @@
 # endif
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
-# if __WORDSIZE == 64
+# ifdef __x86_64__
     int __pad0;
     __dev_t st_rdev;		/* Device number, if device.  */
     __off_t st_size;		/* Size of file, in bytes.  */
@@ -156,14 +156,14 @@
 #  define st_ctime st_ctim.tv_sec
 # else
     __time_t st_atime;			/* Time of last access.  */
-    unsigned long int st_atimensec;	/* Nscecs of last access.  */
+    __syscall_ulong_t st_atimensec;	/* Nscecs of last access.  */
     __time_t st_mtime;			/* Time of last modification.  */
-    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
+    __syscall_ulong_t st_mtimensec;	/* Nsecs of last modification.  */
     __time_t st_ctime;			/* Time of last status change.  */
-    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
-# endif
-# if __WORDSIZE == 64
-    long int __unused[3];
+    __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change.  */
+# endif
+# ifdef __x86_64__
+    __syscall_slong_t __unused[3];
 # else
     __ino64_t st_ino;			/* File serial number.		*/
 # endif

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h Thu May 17 00:01:38 2012
@@ -1,0 +1,74 @@
+/* bits/typesizes.h -- underlying types for *_t.  Linux/x86-64 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef	_BITS_TYPESIZES_H
+#define	_BITS_TYPESIZES_H	1
+
+/* See <bits/types.h> for the meaning of these macros.  This file exists so
+   that <bits/types.h> need not vary across different GNU platforms.  */
+
+/* X32 kernel interface is 64-bit.  */
+#if defined __x86_64__ && defined __ILP32__
+# define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE
+# define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE
+#else
+# define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+# define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
+#endif
+
+#define __DEV_T_TYPE		__UQUAD_TYPE
+#define __UID_T_TYPE		__U32_TYPE
+#define __GID_T_TYPE		__U32_TYPE
+#define __INO_T_TYPE		__SYSCALL_ULONG_TYPE
+#define __INO64_T_TYPE		__UQUAD_TYPE
+#define __MODE_T_TYPE		__U32_TYPE
+#define __NLINK_T_TYPE		__SYSCALL_ULONG_TYPE
+#define __OFF_T_TYPE		__SYSCALL_SLONG_TYPE
+#define __OFF64_T_TYPE		__SQUAD_TYPE
+#define __PID_T_TYPE		__S32_TYPE
+#define __RLIM_T_TYPE		__SYSCALL_ULONG_TYPE
+#define __RLIM64_T_TYPE		__UQUAD_TYPE
+#define __BLKCNT_T_TYPE		__SYSCALL_SLONG_TYPE
+#define __BLKCNT64_T_TYPE	__SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE	__SYSCALL_ULONG_TYPE
+#define __FSBLKCNT64_T_TYPE	__UQUAD_TYPE
+#define __FSFILCNT_T_TYPE	__SYSCALL_ULONG_TYPE
+#define __FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define __ID_T_TYPE		__U32_TYPE
+#define __CLOCK_T_TYPE		__SYSCALL_SLONG_TYPE
+#define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE
+#define __USECONDS_T_TYPE	__U32_TYPE
+#define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE
+#define __DADDR_T_TYPE		__S32_TYPE
+#define __SWBLK_T_TYPE		__SYSCALL_SLONG_TYPE
+#define __KEY_T_TYPE		__S32_TYPE
+#define __CLOCKID_T_TYPE	__S32_TYPE
+#define __TIMER_T_TYPE		void *
+#define __BLKSIZE_T_TYPE	__SYSCALL_SLONG_TYPE
+#define __FSID_T_TYPE		struct { int __val[2]; }
+#define __SSIZE_T_TYPE		__SWORD_TYPE
+
+/* Number of descriptors that can fit in an `fd_set'.  */
+#define __FD_SETSIZE		1024
+
+
+#endif /* bits/typesizes.h */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,11 +15,16 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <stdint.h>
+
 #define SIGCONTEXT siginfo_t *_si, struct ucontext *
 #define SIGCONTEXT_EXTRA_ARGS _si,
-#define GET_PC(ctx)	((void *) (ctx)->uc_mcontext.gregs[REG_RIP])
-#define GET_FRAME(ctx)	((void *) (ctx)->uc_mcontext.gregs[REG_RBP])
-#define GET_STACK(ctx)	((void *) (ctx)->uc_mcontext.gregs[REG_RSP])
+#define GET_PC(ctx)	\
+  ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RIP])
+#define GET_FRAME(ctx)	\
+  ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RBP])
+#define GET_STACK(ctx)	\
+  ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RSP])
 
 #define CALL_SIGHANDLER(handler, signo, ctx) \
   (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,6 @@
 
 #ifndef _SYS_DEBUGREG_H
 #define _SYS_DEBUGREG_H	1
-#include <bits/wordsize.h>
 
 /* Indicate the register numbers for a number of the specific
    debug registers.  Registers 0-3 contain the addresses we wish to trap on */
@@ -76,8 +75,8 @@
 
 
 
-#if __WORDSIZE == 64
-# define DR_CONTROL_RESERVED (0xFFFFFFFF0000FC00UL) /* Reserved */
+#ifdef __x86_64__
+# define DR_CONTROL_RESERVED (0xFFFFFFFF0000FC00ULL) /* Reserved */
 #else
 # define DR_CONTROL_RESERVED (0x00FC00U) /* Reserved */
 #endif

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2004, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -35,7 +35,11 @@
 __BEGIN_DECLS
 
 /* Type for a general-purpose register.  */
+#ifdef __x86_64__
+typedef unsigned long long elf_greg_t;
+#else
 typedef unsigned long elf_greg_t;
+#endif
 
 /* And the whole bunch of them.  We could have used `struct
    user_regs_struct' directly in the typedef, but tradition says that
@@ -44,7 +48,7 @@
 #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
 
-#if __WORDSIZE == 32
+#ifndef __x86_64__
 /* Register set for the floating-point registers.  */
 typedef struct user_fpregs_struct elf_fpregset_t;
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/reg.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/reg.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,9 @@
 
 #ifndef _SYS_REG_H
 #define _SYS_REG_H	1
-#include <bits/wordsize.h>
 
 
-#if __WORDSIZE == 64
+#ifdef __x86_64__
 /* Index into an array of 8 byte longs returned from ptrace for
    location of the users' stored general purpose registers.  */
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,16 +20,15 @@
 
 #include <features.h>
 #include <signal.h>
-#include <bits/wordsize.h>
 
 /* We need the signal context definitions even if they are not used
    included in <signal.h>.  */
 #include <bits/sigcontext.h>
 
-#if __WORDSIZE == 64
+#ifdef __x86_64__
 
 /* Type for general register.  */
-typedef long int greg_t;
+__extension__ typedef long long int greg_t;
 
 /* Number of general registers.  */
 #define NGREG	23
@@ -127,7 +126,7 @@
     gregset_t gregs;
     /* Note that fpregs is a pointer.  */
     fpregset_t fpregs;
-    unsigned long __reserved1 [8];
+    __extension__ unsigned long long __reserved1 [8];
 } mcontext_t;
 
 /* Userlevel context.  */
@@ -141,7 +140,7 @@
     struct _libc_fpstate __fpregs_mem;
   } ucontext_t;
 
-#else /* __WORDSIZE == 32 */
+#else /* !__x86_64__ */
 
 /* Type for general register.  */
 typedef int greg_t;
@@ -242,6 +241,6 @@
     struct _libc_fpstate __fpregs_mem;
   } ucontext_t;
 
-#endif /* __WORDSIZE == 32 */
+#endif /* !__x86_64__ */
 
 #endif /* sys/ucontext.h */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/user.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/user.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/user.h Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2004, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -22,9 +22,7 @@
    too much into it.  Don't use it for anything other than GDB unless
    you know what you are doing.  */
 
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
+#ifdef __x86_64__
 
 struct user_fpregs_struct
 {
@@ -32,8 +30,8 @@
   unsigned short int	swd;
   unsigned short int	ftw;
   unsigned short int	fop;
-  unsigned long int	rip;
-  unsigned long int	rdp;
+  __extension__ unsigned long long int rip;
+  __extension__ unsigned long long int rdp;
   unsigned int		mxcsr;
   unsigned int		mxcr_mask;
   unsigned int		st_space[32];   /* 8*16 bytes for each FP-reg = 128 bytes */
@@ -43,33 +41,33 @@
 
 struct user_regs_struct
 {
-  unsigned long int r15;
-  unsigned long int r14;
-  unsigned long int r13;
-  unsigned long int r12;
-  unsigned long int rbp;
-  unsigned long int rbx;
-  unsigned long int r11;
-  unsigned long int r10;
-  unsigned long int r9;
-  unsigned long int r8;
-  unsigned long int rax;
-  unsigned long int rcx;
-  unsigned long int rdx;
-  unsigned long int rsi;
-  unsigned long int rdi;
-  unsigned long int orig_rax;
-  unsigned long int rip;
-  unsigned long int cs;
-  unsigned long int eflags;
-  unsigned long int rsp;
-  unsigned long int ss;
-  unsigned long int fs_base;
-  unsigned long int gs_base;
-  unsigned long int ds;
-  unsigned long int es;
-  unsigned long int fs;
-  unsigned long int gs;
+  __extension__ unsigned long long int r15;
+  __extension__ unsigned long long int r14;
+  __extension__ unsigned long long int r13;
+  __extension__ unsigned long long int r12;
+  __extension__ unsigned long long int rbp;
+  __extension__ unsigned long long int rbx;
+  __extension__ unsigned long long int r11;
+  __extension__ unsigned long long int r10;
+  __extension__ unsigned long long int r9;
+  __extension__ unsigned long long int r8;
+  __extension__ unsigned long long int rax;
+  __extension__ unsigned long long int rcx;
+  __extension__ unsigned long long int rdx;
+  __extension__ unsigned long long int rsi;
+  __extension__ unsigned long long int rdi;
+  __extension__ unsigned long long int orig_rax;
+  __extension__ unsigned long long int rip;
+  __extension__ unsigned long long int cs;
+  __extension__ unsigned long long int eflags;
+  __extension__ unsigned long long int rsp;
+  __extension__ unsigned long long int ss;
+  __extension__ unsigned long long int fs_base;
+  __extension__ unsigned long long int gs_base;
+  __extension__ unsigned long long int ds;
+  __extension__ unsigned long long int es;
+  __extension__ unsigned long long int fs;
+  __extension__ unsigned long long int gs;
 };
 
 struct user
@@ -77,18 +75,24 @@
   struct user_regs_struct	regs;
   int				u_fpvalid;
   struct user_fpregs_struct	i387;
-  unsigned long int		u_tsize;
-  unsigned long int		u_dsize;
-  unsigned long int		u_ssize;
-  unsigned long int		start_code;
-  unsigned long int		start_stack;
-  long int			signal;
+  __extension__ unsigned long long int	u_tsize;
+  __extension__ unsigned long long int	u_dsize;
+  __extension__ unsigned long long int	u_ssize;
+  __extension__ unsigned long long int	start_code;
+  __extension__ unsigned long long int	start_stack;
+  __extension__ long long int		signal;
   int				reserved;
   struct user_regs_struct*	u_ar0;
+# ifdef __ILP32__
+  unsigned int			pad0;
+# endif
   struct user_fpregs_struct*	u_fpstate;
-  unsigned long int		magic;
+# ifdef __ILP32__
+  unsigned int			pad1;
+# endif
+  __extension__ unsigned long long int	magic;
   char				u_comm [32];
-  unsigned long int		u_debugreg [8];
+  __extension__ unsigned long long int	u_debugreg [8];
 };
 
 #else
@@ -161,7 +165,7 @@
   char				u_comm [32];
   int				u_debugreg [8];
 };
-#endif  /* __WORDSIZE */
+#endif  /* __x86_64__ */
 
 #define PAGE_SHIFT		12
 #define PAGE_SIZE		(1UL << PAGE_SHIFT)

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/alphasort.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/alphasort64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/alphasort64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/fseeko.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/fseeko64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/fseeko64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/ftello.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftello64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/ftello64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/ftw.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/ftw64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/glob.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/glob.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/glob.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/glob.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/iofgetpos.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofgetpos64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/iofgetpos64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/iofopen.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofopen64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/iofopen64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/iofsetpos.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/iofsetpos64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/iofsetpos64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/lockf.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/lockf64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/lockf64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/mkostemp.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkostemp64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/mkostemp64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/mkstemp.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/mkstemp64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/mkstemp64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/scandir.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandir64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/scandir64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/scandirat.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/scandirat64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/scandirat64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/tmpfile.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/tmpfile64.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/versionsort.c>

Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort64.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/versionsort64.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+#include <sysdeps/wordsize-64/versionsort64.c>

Added: fsf/trunk/libc/sysdeps/x86_64/x32/divdi3.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/x32/divdi3.c (added)
+++ fsf/trunk/libc/sysdeps/x86_64/x32/divdi3.c Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+/* Fortunately nothing to do.  */

Added: fsf/trunk/libc/sysdeps/x86_64/x32/ffs.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/x32/ffs.c (added)
+++ fsf/trunk/libc/sysdeps/x86_64/x32/ffs.c Thu May 17 00:01:38 2012
@@ -1,0 +1,4 @@
+#define ffsl __something_else
+#include <sysdeps/x86_64/ffs.c>
+#undef ffsl
+weak_alias (__ffs, ffsl)

Added: fsf/trunk/libc/sysdeps/x86_64/x32/gmp-mparam.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/x32/gmp-mparam.h (added)
+++ fsf/trunk/libc/sysdeps/x86_64/x32/gmp-mparam.h Thu May 17 00:01:38 2012
@@ -1,0 +1,33 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or (at your
+option) any later version.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+#if defined __GMP_H__ && ! defined _LONG_LONG_LIMB
+#error "Included too late for _LONG_LONG_LIMB to take effect"
+#endif
+
+#define _LONG_LONG_LIMB
+#define BITS_PER_MP_LIMB 64
+#define BYTES_PER_MP_LIMB 8
+#define BITS_PER_LONGINT 32
+#define BITS_PER_INT 32
+#define BITS_PER_SHORTINT 16
+#define BITS_PER_CHAR 8
+
+#define IEEE_DOUBLE_BIG_ENDIAN 0

Added: fsf/trunk/libc/sysdeps/x86_64/x32/symbol-hacks.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/x32/symbol-hacks.h (added)
+++ fsf/trunk/libc/sysdeps/x86_64/x32/symbol-hacks.h Thu May 17 00:01:38 2012
@@ -1,0 +1,1 @@
+/* Fortunately nothing to do.  */

Modified: fsf/trunk/libc/sysvipc/sys/msg.h
==============================================================================
--- fsf/trunk/libc/sysvipc/sys/msg.h (original)
+++ fsf/trunk/libc/sysvipc/sys/msg.h Thu May 17 00:01:38 2012
@@ -51,7 +51,7 @@
 /* Template for struct to be used as argument for `msgsnd' and `msgrcv'.  */
 struct msgbuf
   {
-    long int mtype;		/* type of received/sent message */
+    __syscall_slong_t mtype;	/* type of received/sent message */
     char mtext[1];		/* text of the message */
   };
 #endif

Modified: fsf/trunk/libc/time/ctime.c
==============================================================================
--- fsf/trunk/libc/time/ctime.c (original)
+++ fsf/trunk/libc/time/ctime.c Thu May 17 00:01:38 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,11 +15,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#undef	__OPTIMIZE__	/* Avoid inline `ctime' function.  */
 #include <time.h>
-
-#undef	ctime
-
 
 /* Return a string as returned by asctime which
    is the representation of *T in that form.  */

Modified: fsf/trunk/libc/time/time.h
==============================================================================
--- fsf/trunk/libc/time/time.h (original)
+++ fsf/trunk/libc/time/time.h Thu May 17 00:01:38 2012
@@ -120,7 +120,7 @@
 struct timespec
   {
     __time_t tv_sec;		/* Seconds.  */
-    __snseconds_t tv_nsec;	/* Nanoseconds.  */
+    __syscall_slong_t tv_nsec;	/* Nanoseconds.  */
   };
 
 #endif /* timespec not defined and <time.h> or need timespec.  */

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits