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

[Commits] r21776 - in /trunk: ./ libc/ libc/conform/data/ libc/conform/data/sys/ libc/crypt/ libc/debug/ libc/elf/ libc/iconv/ libc/io...



Author: joseph
Date: Sat Nov 17 17:50:14 2012
New Revision: 21776

Log:
Merge changes between r21628 and r21775 from /fsf/trunk.

Added:
    trunk/libc/crypt/md5-block.c
      - copied unchanged from r21775, fsf/trunk/libc/crypt/md5-block.c
    trunk/libc/crypt/sha256-block.c
      - copied unchanged from r21775, fsf/trunk/libc/crypt/sha256-block.c
    trunk/libc/crypt/sha512-block.c
      - copied unchanged from r21775, fsf/trunk/libc/crypt/sha512-block.c
    trunk/libc/elf/tst-audit8.c
      - copied unchanged from r21775, fsf/trunk/libc/elf/tst-audit8.c
    trunk/libc/localedata/locales/ayc_PE
      - copied unchanged from r21775, fsf/trunk/libc/localedata/locales/ayc_PE
    trunk/libc/localedata/locales/doi_IN
      - copied unchanged from r21775, fsf/trunk/libc/localedata/locales/doi_IN
    trunk/libc/localedata/locales/mni_IN
      - copied unchanged from r21775, fsf/trunk/libc/localedata/locales/mni_IN
    trunk/libc/localedata/locales/nhn_MX
      - copied unchanged from r21775, fsf/trunk/libc/localedata/locales/nhn_MX
    trunk/libc/localedata/locales/sat_IN
      - copied unchanged from r21775, fsf/trunk/libc/localedata/locales/sat_IN
    trunk/libc/localedata/locales/szl_PL
      - copied unchanged from r21775, fsf/trunk/libc/localedata/locales/szl_PL
    trunk/libc/posix/getconf-speclist.c
      - copied unchanged from r21775, fsf/trunk/libc/posix/getconf-speclist.c
    trunk/libc/posix/posix-envs.def
      - copied unchanged from r21775, fsf/trunk/libc/posix/posix-envs.def
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S
    trunk/libc/sysdeps/sparc/sparc64/multiarch/md5-block.c
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc64/multiarch/md5-block.c
    trunk/libc/sysdeps/sparc/sparc64/multiarch/md5-crop.S
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc64/multiarch/md5-crop.S
    trunk/libc/sysdeps/sparc/sparc64/multiarch/sha256-block.c
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc64/multiarch/sha256-block.c
    trunk/libc/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
    trunk/libc/sysdeps/sparc/sparc64/multiarch/sha512-block.c
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc64/multiarch/sha512-block.c
    trunk/libc/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
      - copied unchanged from r21775, fsf/trunk/libc/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
Removed:
    trunk/libc/posix/confstr.inc
    trunk/libc/posix/cross-getconf.c
    trunk/libc/timezone/version.h
Modified:
    trunk/   (props changed)
    trunk/libc/ChangeLog
    trunk/libc/Makefile
    trunk/libc/NEWS
    trunk/libc/conform/data/semaphore.h-data
    trunk/libc/conform/data/sys/socket.h-data
    trunk/libc/conform/data/time.h-data
    trunk/libc/conform/data/unistd.h-data
    trunk/libc/conform/data/wchar.h-data
    trunk/libc/crypt/Makefile
    trunk/libc/crypt/md5.c
    trunk/libc/crypt/sha256.c
    trunk/libc/crypt/sha512.c
    trunk/libc/debug/pcprofiledump.c
    trunk/libc/elf/Makefile
    trunk/libc/elf/dl-runtime.c
    trunk/libc/elf/tst-array1.c
    trunk/libc/elf/tst-array2dep.c
    trunk/libc/iconv/iconv_prog.c
    trunk/libc/io/Makefile
    trunk/libc/libio/fileops.c
    trunk/libc/libio/iopadn.c
    trunk/libc/libio/iowpadn.c
    trunk/libc/libio/libioP.h
    trunk/libc/locale/Makefile
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/SUPPORTED
    trunk/libc/localedata/locales/bo_CN
    trunk/libc/localedata/locales/bo_IN
    trunk/libc/localedata/locales/km_KH
    trunk/libc/malloc/memusagestat.c
    trunk/libc/math/libm-test.inc
    trunk/libc/misc/Makefile
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/Makefile
    trunk/libc/ports/ChangeLog.arm
    trunk/libc/ports/ChangeLog.mips
    trunk/libc/ports/sysdeps/mips/bits/atomic.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/arm/Makefile
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data   (props changed)
    trunk/libc/posix/Makefile
    trunk/libc/posix/confstr.c
    trunk/libc/resolv/netdb.h
    trunk/libc/scripts/check-local-headers.sh
    trunk/libc/soft-fp/op-common.h
    trunk/libc/soft-fp/soft-fp.h
    trunk/libc/stdio-common/tst-put-error.c
    trunk/libc/stdio-common/vfprintf.c
    trunk/libc/sysdeps/ieee754/ldbl-128/s_log1pl.c
    trunk/libc/sysdeps/posix/sysconf.c
    trunk/libc/sysdeps/sparc/sparc-ifunc.h
    trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
    trunk/libc/sysdeps/sparc/sparc64/multiarch/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/fxstatat.c
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
    trunk/libc/timezone/Makefile
    trunk/libc/timezone/README
    trunk/libc/timezone/tzselect.ksh
    trunk/libc/timezone/zdump.c
    trunk/libc/timezone/zic.c

Propchange: trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 17 17:50:14 2012
@@ -1,1 +1,1 @@
-/fsf/trunk:15224-21628
+/fsf/trunk:15224-21775

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Sat Nov 17 17:50:14 2012
@@ -1,4 +1,204 @@
+2012-11-17  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/fxstatat.c: Include <string.h>.
+
+	* elf/dl-runtime.c [!ELF_MACHINE_NO_PLT]: Make code unconditional.
+
+	* posix/getconf-speclist.c: New file.
+	* posix/posix-envs.def: Likewise.
+	* posix/confstr.c (START_ENV_GROUP): New macro.
+	(END_ENV_GROUP): Likewise.
+	(KNOWN_ABSENT_ENVIRONMENT): Likewise.
+	(KNOWN_PRESENT_ENV_STRING): Likewise.
+	(KNOWN_PRESENT_ENVIRONMENT): Likewise.
+	(UNKNOWN_ENVIRONMENT): Likewise.
+	(confstr): Include posix-envs.def instead of handling
+	_CS_V7_WIDTH_RESTRICTED_ENVS, _CS_V6_WIDTH_RESTRICTED_ENVS and
+	_CS_V5_WIDTH_RESTRICTED_ENVS directly here.
+	* sysdeps/posix/sysconf.c (START_ENV_GROUP): New macro.
+	(END_ENV_GROUP): Likewise.
+	(KNOWN_ABSENT_ENVIRONMENT): Likewise.
+	(KNOWN_PRESENT_ENVIRONMENT): Likewise.
+	(UNKNOWN_ENVIRONMENT): Likewise.
+	(__sysconf): Include posix-envs.def instead of handling associated
+	cases directly here.
+	* posix/Makefile ($(objpfx)getconf.speclist): Generate by
+	preprocessing getconf-speclist.c rather than running getconf or
+	generating empty file.
+
+2012-11-16  Pino Toscano  <toscano.pino@xxxxxxxxxx>
+
+	* scripts/check-local-headers.sh: Ignore 'mach' headers.
+
+2012-11-16  Andrej Lajovic  <natrij@xxxxxxxxx>
+
+	[BZ #14672]
+	* iconv/iconv_prog.c (main): Fix -c handling of '/'.
+
+2012-11-16  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* sysdeps/ieee754/ldbl-128/s_log1pl.c (__log1pl): If xm1 is
+	smaller than LDBL_EPSILON/2.0L, just return xm1.
+
+2012-11-16  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* elf/tst-array1.c (init): Set constructor priority to 1000.
+	(fini): Set destructor priority to 1000.
+	* elf/tst-array2dep.c: Likewise.
+
+2012-11-16  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	[BZ #11741]
+	* libio/fileops.c (_IO_new_file_write): Correctly return error.
+	(_IO_new_file_xsputn): Also return EOF if none of the input
+	data was written when overflow failed.
+	* libio/iopadn.c (_IO_padn): Likewise.
+	* libio/iowpadn.c (_IO_wpadn): Likewise.
+	* stdio-common/tst-put-error.c: Add copyright notice.
+	(do_test): Add case for printing padded string.
+	* stdio-common/vfprintf [!COMPILE_WPRINTF] (PAD): Flag error if
+	_IO_padn returned error.
+	[COMPILE_WPRINTF] (PAD): Flag error if _IO_wpadn returned error.
+	* libio/libioP.h (_IO_xsputn_t): Note in comment that xsputn can
+	return EOF.
+
+2012-11-16  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	* libio/libioP.h: Add comment note that the references to C++
+	bits are now obsolete.
+
+2012-11-15  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
+
+	* math/libm-test.inc (check_complex): Use asprintf.
+
+2012-11-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* debug/pcprofiledump.c (print_version): Update copyright year.
+	* malloc/memusagestat.c (print_version): Likewise.
+
+2012-11-14  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	[BZ #14831]
+	* elf/Makefile (tests): Add tst-audit8.
+	($(objpfx)tst-audit8): Also depend on $(common-objpfx)math/libm.so.
+	($(objpfx)tst-audit8.out): New target.
+	(tst-audit8-ENV): New variable.
+	* elf/dl-runtime.c (_dl_profile_fixup): Call _dl_fixup to skip
+	audit if l_reloc_result is NULL.
+	(ELF_MACHINE_RUNTIME_FIXUP_PARAMS): Issue an error if it isn't
+	defined and ELF_MACHINE_RUNTIME_FIXUP_ARGS is defined.
+	* elf/tst-audit8.c: New file.
+
+2012-11-14  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
+
+	* io/Makefile (CFLAGS-open.c, CFLAGS-open64.c): Define.
+	* misc/Makefile (CFLAGS-select.c): Define.
+	* posix/Makefile (CFLAGS-pause.c): Define.
+
+2012-11-13  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* crypt/Makefile: Move test targets after toplevel Rules
+	inclusion.  Grab any necessary sysdep routines when linking.
+	* crypt/md5.c (md5_process_block): Remove define, we will always
+	name it __md5_process_block.
+	(md5_finish_ctx): Update md5_process_block call.
+	(md5_stream): Likewise.
+	(md5_process_bytes): Likewise.
+	(md5_process_block): Rename to __md5_process_block and move to ...
+	* crypt/md5-block.c: ... here.
+	* crypt/sha256.c (sha256_process_block): Move to ...
+	* crypt/sha256-block.c: ... here.
+	* crypt/sha512.c (sha512_process_block): Move to ...
+	* crypt/sha512-block.c: ... here.
+	* locale/Makefile (CFLAGS-md5.c): Define to add crypt/ to include
+	path.
+	* sysdeps/sparc/sparc-ifunc.c (sparc_libc_ifunc): Define.
+	* sysdeps/sparc/sparc64/multiarch/Makefile
+	(libcrypt-sysdep_routines): Add crypto assembler sysdeps when in
+	crypt subdir.
+	(localedef-aux): Add md5 crypto assembler when in locale subdir.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Mirror sparc64
+	multiarch changes.
+	* sysdeps/sparc/sparc64/multiarch/md5-block.c: New file.
+	* sysdeps/sparc/sparc64/multiarch/md5-crop.S: New file.
+	* sysdeps/sparc/sparc64/multiarch/sha256-block.c: New file.
+	* sysdeps/sparc/sparc64/multiarch/sha256-crop.S: New file.
+	* sysdeps/sparc/sparc64/multiarch/sha512-block.c: New file.
+	* sysdeps/sparc/sparc64/multiarch/sha512-crop.S: New file.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c: New file.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S: New file.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c: New
+	file.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S: New file.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c: New
+	file.
+	* sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S: New file.
+
+2012-11-13  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* timezone/tzselect.ksh: Update from tzcode git revision
+	a435f9f0ecafa56d9e0263835836bd0c64cd7307.
+	* timezone/zdump.c: Likewise.
+	* timezone/zic.c: Likewise.
+	* timezone/Makefile ($(objpfx)version.h): Only include $(version)
+	in TZVERSION setting, not $(PKGVERSION).
+	($(objpfx)tzselect): Likewise.  Also substitute PKGVERSION and
+	REPORT_BUGS_TO settings.
+
+	[BZ #14838]
+	* resolv/netdb.h [__USE_XOPEN_EXTENDED] (IPPORT_RESERVED): Define
+	macro.
+
+2012-11-13  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
+
+	* soft-fp/op-common.h (_FP_PACK_SEMIRAW): Move underflow
+	detection to immediately after _FP_ROUND().
+	* soft-fp/soft-fp.h (_FP_ROUND): Don't round if working
+	bits are 0.
+
+2012-11-11  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c: Include
+	inttypes.h
+	(__get_clockfreq_via_proc_openprom): Use __open, __read, and
+	__close rather than their public counterparts.
+
+2012-11-10  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* conform/data/semaphore.h-data [XPG3 || XPG4]: Disable whole
+	file.
+	[UNIX98] (sem_timedwait): Do not expect.
+	* conform/data/sys/socket.h-data [XPG3]: Disable whole file.
+	[XPG4 || UNIX98] (sockatmark): Do not expect.
+	* conform/data/time.h-data [XPG3 || XPG4 || UNIX98]
+	(clock_getcpuclockid): Do not expect.
+	[XPG3 || XPG4 || UNIX98] (clock_nanosleep): Do not expect.
+	* conform/data/unistd.h-data [XPG3 || XPG4 || UNIX98] (setegid):
+	Do not expect.
+	[XPG3 || XPG4 || UNIX98] (seteuid): Likewise.
+	* conform/data/wchar.h-data [UNIX98] (vfwscanf): Do not expect.
+	[UNIX98] (vwscanf): Likewise.
+	[UNIX98] (vswscanf): Likewise.
+
 2012-11-09  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* timezone/version.h: Remove file.
+	* timezone/README: Do not refer to version.h.
+	* timezone/Makefile ($(objpfx)zic.o): New dependency on
+	$(objpfx)version.h.
+	($(objpfx)zdump.o): Likewise.
+	($(objpfx)version.h): New target.
+
+	* timezone/tzselect.ksh: Change to verbatim copy from tzcode
+	2012i.
+	* timezone/README: Don't mention modification to tzselect.ksh.
+	* timezone/Makefile ($(objpfx)tzselect): Update substitutions to
+	work on unmodified tzselect.ksh.  Substitute version numbers in
+	tzselect.ksh.
+
+	* Makefile (format-me): Remove.
+	(INSTALL): Adjust indentation.  Use commands directly instead of
+	using $(format-me).
 
 	* aclocal.m4 (ACX_PKGVERSION): New macro.
 	(ACX_BUGURL): Likewise.

Modified: trunk/libc/Makefile
==============================================================================
--- trunk/libc/Makefile (original)
+++ trunk/libc/Makefile Sat Nov 17 17:50:14 2012
@@ -417,15 +417,11 @@
 	fi
 endif
 
-define format-me
-@rm -f $@
-makeinfo --no-validate --plaintext --no-number-sections \
-	-I$(common-objpfx)manual $< -o $@
--chmod a-w $@
-endef
 INSTALL: manual/install.texi manual/macros.texi \
-	$(common-objpfx)manual/pkgvers.texi
-	$(format-me)
+	 $(common-objpfx)manual/pkgvers.texi
+	makeinfo --no-validate --plaintext --no-number-sections \
+		 -I$(common-objpfx)manual $< -o $@
+	-chmod a-w $@
 $(common-objpfx)manual/%: FORCE
 	$(MAKE) $(PARALLELMFLAGS) -C manual $@
 FORCE:

Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Sat Nov 17 17:50:14 2012
@@ -10,16 +10,19 @@
 * The following bugs are resolved with this release:
 
   1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6778, 6808, 9685,
-  9914, 10014, 10038, 10631, 10873, 11438, 11607, 11638, 12140, 13412,
-  13542, 13601, 13629, 13679, 13696, 13717, 13741, 13939, 13966, 14042,
-  14047, 14090, 14150, 14151, 14152, 14154, 14157, 14166, 14173, 14195,
-  14237, 14251, 14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336,
-  14337, 14347, 14349, 14376, 14417, 14459, 14476, 14477, 14505, 14510,
-  14516, 14518, 14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557,
-  14562, 14568, 14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621,
-  14638, 14645, 14648, 14652, 14660, 14661, 14669, 14683, 14694, 14716,
-  14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14805,
-  14807, 14809, 14811, 14815, 14821, 14824.
+  9914, 10014, 10038, 10631, 10873, 11438, 11607, 11638, 11741, 12140,
+  13412, 13542, 13601, 13603, 13604, 13629, 13679, 13696, 13698, 13717,
+  13741, 13939, 13950, 13952, 13966, 14042, 14047, 14090, 14150, 14151,
+  14152, 14154, 14157, 14166, 14173, 14195, 14237, 14251, 14252, 14283,
+  14298, 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14368,
+  14376, 14417, 14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518,
+  14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568,
+  14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645,
+  14648, 14652, 14660, 14661, 14669, 14672, 14683, 14694, 14716, 14743,
+  14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14805, 14807,
+  14809, 14811, 14815, 14821, 14824, 14828, 14831, 14838.
+
+* Port to ARM AArch64 contributed by Linaro.
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and

Modified: trunk/libc/conform/data/semaphore.h-data
==============================================================================
--- trunk/libc/conform/data/semaphore.h-data (original)
+++ trunk/libc/conform/data/semaphore.h-data Sat Nov 17 17:50:14 2012
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
 type sem_t
 
 constant SEM_FAILED
@@ -9,7 +9,7 @@
 function int sem_init (sem_t*, int, unsigned int)
 function {sem_t*} sem_open (const char*, int, ...)
 function int sem_post (sem_t*)
-# if !defined POSIX
+# if !defined POSIX && !defined UNIX98
 function int sem_timedwait (sem_t*, const struct timespec*)
 # endif
 function int sem_trywait (sem_t*)

Modified: trunk/libc/conform/data/sys/socket.h-data
==============================================================================
--- trunk/libc/conform/data/sys/socket.h-data (original)
+++ trunk/libc/conform/data/sys/socket.h-data Sat Nov 17 17:50:14 2012
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
 type socklen_t
 
 type sa_family_t
@@ -111,7 +111,9 @@
 function int shutdown (int, int)
 function int socket (int, int, int)
 function int socketpair (int, int, int, int[2])
+#if !defined XPG4 && !defined UNIX98
 function int sockatmark (int)
+#endif
 
 allow-header sys/uio.h
 

Modified: trunk/libc/conform/data/time.h-data
==============================================================================
--- trunk/libc/conform/data/time.h-data (original)
+++ trunk/libc/conform/data/time.h-data Sat Nov 17 17:50:14 2012
@@ -71,12 +71,12 @@
 # endif
 
 function {char*} asctime_r (const struct tm*, char*)
-#if !defined POSIX
+#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function int clock_getcpuclockid (pid_t, clockid_t*)
 #endif
 function int clock_getres (clockid_t, struct timespec*)
 function int clock_gettime (clockid_t, struct timespec*)
-#if !defined POSIX
+#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function int clock_nanosleep (clockid_t, int, const struct timespec*, struct timespec*)
 #endif
 function int clock_settime (clockid_t, const struct timespec*)

Modified: trunk/libc/conform/data/unistd.h-data
==============================================================================
--- trunk/libc/conform/data/unistd.h-data (original)
+++ trunk/libc/conform/data/unistd.h-data Sat Nov 17 17:50:14 2012
@@ -472,7 +472,7 @@
 #if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
 function {void*} sbrk (intptr_t)
 #endif
-#ifndef POSIX
+#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function int setegid (gid_t)
 function int seteuid (uid_t)
 #endif

Modified: trunk/libc/conform/data/wchar.h-data
==============================================================================
--- trunk/libc/conform/data/wchar.h-data (original)
+++ trunk/libc/conform/data/wchar.h-data Sat Nov 17 17:50:14 2012
@@ -60,11 +60,17 @@
 # endif
 function wint_t ungetwc (wint_t, FILE*)
 function int vfwprintf (FILE*, const wchar_t*, __gnuc_va_list)
+# ifndef UNIX98
 function int vfwscanf (FILE*, const wchar_t*, __gnuc_va_list)
+# endif
 function int vwprintf (const wchar_t*, __gnuc_va_list)
+# ifndef UNIX98
 function int vwscanf (const wchar_t*, __gnuc_va_list)
+# endif
 function int vswprintf (wchar_t*, size_t, const wchar_t*, __gnuc_va_list)
+# ifndef UNIX98
 function int vswscanf (const wchar_t*, const wchar_t*, __gnuc_va_list)
+# endif
 # if defined XOPEN2K8 || defined POSIX2008
 function {wchar_t*} wcpcpy (wchar_t*, const wchar_t*)
 function {wchar_t*} wcpncpy (wchar_t*, const wchar_t*, size_t)

Modified: trunk/libc/crypt/Makefile
==============================================================================
--- trunk/libc/crypt/Makefile (original)
+++ trunk/libc/crypt/Makefile Sat Nov 17 17:50:14 2012
@@ -53,14 +53,20 @@
 # The test md5test-giant uses up to 400 MB of RSS and runs on a fast
 # machine over a minute.
 xtests = md5test-giant
-
-$(objpfx)md5test: $(objpfx)md5.o
-$(objpfx)md5test-giant: $(objpfx)md5.o
-$(objpfx)sha256test: $(objpfx)sha256.o
-$(objpfx)sha512test: $(objpfx)sha512.o
 endif
 
 include ../Rules
+
+ifneq ($(nss-crypt),yes)
+md5-routines := md5 $(filter md5%,$(libcrypt-sysdep_routines))
+sha256-routines := sha256 $(filter sha256%,$(libcrypt-sysdep_routines))
+sha512-routines := sha512 $(filter sha512%,$(libcrypt-sysdep_routines))
+
+$(objpfx)md5test: $(patsubst %, $(objpfx)%.o,$(md5-routines))
+$(objpfx)md5test-giant: $(patsubst %, $(objpfx)%.o,$(md5-routines))
+$(objpfx)sha256test: $(patsubst %, $(objpfx)%.o,$(sha256-routines))
+$(objpfx)sha512test: $(patsubst %, $(objpfx)%.o,$(sha512-routines))
+endif
 
 ifeq ($(OPTION_EGLIBC_CRYPT),y)
 ifeq (yes,$(build-shared))

Modified: trunk/libc/crypt/md5.c
==============================================================================
--- trunk/libc/crypt/md5.c (original)
+++ trunk/libc/crypt/md5.c Sat Nov 17 17:50:14 2012
@@ -44,7 +44,6 @@
 /* We need to keep the namespace clean so define the MD5 function
    protected using leading __ .  */
 # define md5_init_ctx __md5_init_ctx
-# define md5_process_block __md5_process_block
 # define md5_process_bytes __md5_process_bytes
 # define md5_finish_ctx __md5_finish_ctx
 # define md5_read_ctx __md5_read_ctx
@@ -126,7 +125,7 @@
 					       (ctx->total[0] >> 29));
 
   /* Process last bytes.  */
-  md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
+  __md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
 
   return md5_read_ctx (ctx, resbuf);
 }
@@ -175,7 +174,7 @@
       /* Process buffer with BLOCKSIZE bytes.  Note that
 			BLOCKSIZE % 64 == 0
        */
-      md5_process_block (buffer, BLOCKSIZE, &ctx);
+      __md5_process_block (buffer, BLOCKSIZE, &ctx);
     }
 
   /* Add the last bytes if necessary.  */
@@ -228,7 +227,7 @@
 
       if (ctx->buflen > 64)
 	{
-	  md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
+	  __md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
 
 	  ctx->buflen &= 63;
 	  /* The regions in the following copy operation cannot overlap.  */
@@ -254,14 +253,14 @@
       if (UNALIGNED_P (buffer))
 	while (len > 64)
 	  {
-	    md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
+	    __md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
 	    buffer = (const char *) buffer + 64;
 	    len -= 64;
 	  }
       else
 #endif
 	{
-	  md5_process_block (buffer, len & ~63, ctx);
+	  __md5_process_block (buffer, len & ~63, ctx);
 	  buffer = (const char *) buffer + (len & ~63);
 	  len &= 63;
 	}
@@ -276,7 +275,7 @@
       left_over += len;
       if (left_over >= 64)
 	{
-	  md5_process_block (ctx->buffer, 64, ctx);
+	  __md5_process_block (ctx->buffer, 64, ctx);
 	  left_over -= 64;
 	  memcpy (ctx->buffer, &ctx->buffer[64], left_over);
 	}
@@ -284,173 +283,4 @@
     }
 }
 
-
-/* These are the four functions used in the four steps of the MD5 algorithm
-   and defined in the RFC 1321.  The first function is a little bit optimized
-   (as found in Colin Plumbs public domain implementation).  */
-/* #define FF(b, c, d) ((b & c) | (~b & d)) */
-#define FF(b, c, d) (d ^ (b & (c ^ d)))
-#define FG(b, c, d) FF (d, b, c)
-#define FH(b, c, d) (b ^ c ^ d)
-#define FI(b, c, d) (c ^ (b | ~d))
-
-/* Process LEN bytes of BUFFER, accumulating context into CTX.
-   It is assumed that LEN % 64 == 0.  */
-
-void
-md5_process_block (buffer, len, ctx)
-     const void *buffer;
-     size_t len;
-     struct md5_ctx *ctx;
-{
-  md5_uint32 correct_words[16];
-  const md5_uint32 *words = buffer;
-  size_t nwords = len / sizeof (md5_uint32);
-  const md5_uint32 *endp = words + nwords;
-  md5_uint32 A = ctx->A;
-  md5_uint32 B = ctx->B;
-  md5_uint32 C = ctx->C;
-  md5_uint32 D = ctx->D;
-  md5_uint32 lolen = len;
-
-  /* First increment the byte count.  RFC 1321 specifies the possible
-     length of the file up to 2^64 bits.  Here we only compute the
-     number of bytes.  Do a double word increment.  */
-  ctx->total[0] += lolen;
-  ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen);
-
-  /* Process all bytes in the buffer with 64 bytes in each round of
-     the loop.  */
-  while (words < endp)
-    {
-      md5_uint32 *cwp = correct_words;
-      md5_uint32 A_save = A;
-      md5_uint32 B_save = B;
-      md5_uint32 C_save = C;
-      md5_uint32 D_save = D;
-
-      /* First round: using the given function, the context and a constant
-	 the next context is computed.  Because the algorithms processing
-	 unit is a 32-bit word and it is determined to work on words in
-	 little endian byte order we perhaps have to change the byte order
-	 before the computation.  To reduce the work for the next steps
-	 we store the swapped words in the array CORRECT_WORDS.  */
-
-#define OP(a, b, c, d, s, T)						\
-      do								\
-	{								\
-	  a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T;		\
-	  ++words;							\
-	  CYCLIC (a, s);						\
-	  a += b;							\
-	}								\
-      while (0)
-
-      /* It is unfortunate that C does not provide an operator for
-	 cyclic rotation.  Hope the C compiler is smart enough.  */
-#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s)))
-
-      /* Before we start, one word to the strange constants.
-	 They are defined in RFC 1321 as
-
-	 T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64
-       */
-
-      /* Round 1.  */
-      OP (A, B, C, D,  7, 0xd76aa478);
-      OP (D, A, B, C, 12, 0xe8c7b756);
-      OP (C, D, A, B, 17, 0x242070db);
-      OP (B, C, D, A, 22, 0xc1bdceee);
-      OP (A, B, C, D,  7, 0xf57c0faf);
-      OP (D, A, B, C, 12, 0x4787c62a);
-      OP (C, D, A, B, 17, 0xa8304613);
-      OP (B, C, D, A, 22, 0xfd469501);
-      OP (A, B, C, D,  7, 0x698098d8);
-      OP (D, A, B, C, 12, 0x8b44f7af);
-      OP (C, D, A, B, 17, 0xffff5bb1);
-      OP (B, C, D, A, 22, 0x895cd7be);
-      OP (A, B, C, D,  7, 0x6b901122);
-      OP (D, A, B, C, 12, 0xfd987193);
-      OP (C, D, A, B, 17, 0xa679438e);
-      OP (B, C, D, A, 22, 0x49b40821);
-
-      /* For the second to fourth round we have the possibly swapped words
-	 in CORRECT_WORDS.  Redefine the macro to take an additional first
-	 argument specifying the function to use.  */
-#undef OP
-#define OP(f, a, b, c, d, k, s, T)					\
-      do 								\
-	{								\
-	  a += f (b, c, d) + correct_words[k] + T;			\
-	  CYCLIC (a, s);						\
-	  a += b;							\
-	}								\
-      while (0)
-
-      /* Round 2.  */
-      OP (FG, A, B, C, D,  1,  5, 0xf61e2562);
-      OP (FG, D, A, B, C,  6,  9, 0xc040b340);
-      OP (FG, C, D, A, B, 11, 14, 0x265e5a51);
-      OP (FG, B, C, D, A,  0, 20, 0xe9b6c7aa);
-      OP (FG, A, B, C, D,  5,  5, 0xd62f105d);
-      OP (FG, D, A, B, C, 10,  9, 0x02441453);
-      OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);
-      OP (FG, B, C, D, A,  4, 20, 0xe7d3fbc8);
-      OP (FG, A, B, C, D,  9,  5, 0x21e1cde6);
-      OP (FG, D, A, B, C, 14,  9, 0xc33707d6);
-      OP (FG, C, D, A, B,  3, 14, 0xf4d50d87);
-      OP (FG, B, C, D, A,  8, 20, 0x455a14ed);
-      OP (FG, A, B, C, D, 13,  5, 0xa9e3e905);
-      OP (FG, D, A, B, C,  2,  9, 0xfcefa3f8);
-      OP (FG, C, D, A, B,  7, 14, 0x676f02d9);
-      OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);
-
-      /* Round 3.  */
-      OP (FH, A, B, C, D,  5,  4, 0xfffa3942);
-      OP (FH, D, A, B, C,  8, 11, 0x8771f681);
-      OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);
-      OP (FH, B, C, D, A, 14, 23, 0xfde5380c);
-      OP (FH, A, B, C, D,  1,  4, 0xa4beea44);
-      OP (FH, D, A, B, C,  4, 11, 0x4bdecfa9);
-      OP (FH, C, D, A, B,  7, 16, 0xf6bb4b60);
-      OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);
-      OP (FH, A, B, C, D, 13,  4, 0x289b7ec6);
-      OP (FH, D, A, B, C,  0, 11, 0xeaa127fa);
-      OP (FH, C, D, A, B,  3, 16, 0xd4ef3085);
-      OP (FH, B, C, D, A,  6, 23, 0x04881d05);
-      OP (FH, A, B, C, D,  9,  4, 0xd9d4d039);
-      OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);
-      OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);
-      OP (FH, B, C, D, A,  2, 23, 0xc4ac5665);
-
-      /* Round 4.  */
-      OP (FI, A, B, C, D,  0,  6, 0xf4292244);
-      OP (FI, D, A, B, C,  7, 10, 0x432aff97);
-      OP (FI, C, D, A, B, 14, 15, 0xab9423a7);
-      OP (FI, B, C, D, A,  5, 21, 0xfc93a039);
-      OP (FI, A, B, C, D, 12,  6, 0x655b59c3);
-      OP (FI, D, A, B, C,  3, 10, 0x8f0ccc92);
-      OP (FI, C, D, A, B, 10, 15, 0xffeff47d);
-      OP (FI, B, C, D, A,  1, 21, 0x85845dd1);
-      OP (FI, A, B, C, D,  8,  6, 0x6fa87e4f);
-      OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);
-      OP (FI, C, D, A, B,  6, 15, 0xa3014314);
-      OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);
-      OP (FI, A, B, C, D,  4,  6, 0xf7537e82);
-      OP (FI, D, A, B, C, 11, 10, 0xbd3af235);
-      OP (FI, C, D, A, B,  2, 15, 0x2ad7d2bb);
-      OP (FI, B, C, D, A,  9, 21, 0xeb86d391);
-
-      /* Add the starting values of the context.  */
-      A += A_save;
-      B += B_save;
-      C += C_save;
-      D += D_save;
-    }
-
-  /* Put checksum in context given as argument.  */
-  ctx->A = A;
-  ctx->B = B;
-  ctx->C = C;
-  ctx->D = D;
-}
+#include <md5-block.c>

Modified: trunk/libc/crypt/sha256.c
==============================================================================
--- trunk/libc/crypt/sha256.c (original)
+++ trunk/libc/crypt/sha256.c Sat Nov 17 17:50:14 2012
@@ -80,104 +80,8 @@
     0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
   };
 
-
-/* Process LEN bytes of BUFFER, accumulating context into CTX.
-   It is assumed that LEN % 64 == 0.  */
-static void
-sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx)
-{
-  const uint32_t *words = buffer;
-  size_t nwords = len / sizeof (uint32_t);
-  uint32_t a = ctx->H[0];
-  uint32_t b = ctx->H[1];
-  uint32_t c = ctx->H[2];
-  uint32_t d = ctx->H[3];
-  uint32_t e = ctx->H[4];
-  uint32_t f = ctx->H[5];
-  uint32_t g = ctx->H[6];
-  uint32_t h = ctx->H[7];
-
-  /* First increment the byte count.  FIPS 180-2 specifies the possible
-     length of the file up to 2^64 bits.  Here we only compute the
-     number of bytes.  */
-  ctx->total64 += len;
-
-  /* Process all bytes in the buffer with 64 bytes in each round of
-     the loop.  */
-  while (nwords > 0)
-    {
-      uint32_t W[64];
-      uint32_t a_save = a;
-      uint32_t b_save = b;
-      uint32_t c_save = c;
-      uint32_t d_save = d;
-      uint32_t e_save = e;
-      uint32_t f_save = f;
-      uint32_t g_save = g;
-      uint32_t h_save = h;
-
-      /* Operators defined in FIPS 180-2:4.1.2.  */
-#define Ch(x, y, z) ((x & y) ^ (~x & z))
-#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
-#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22))
-#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25))
-#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3))
-#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10))
-
-      /* It is unfortunate that C does not provide an operator for
-	 cyclic rotation.  Hope the C compiler is smart enough.  */
-#define CYCLIC(w, s) ((w >> s) | (w << (32 - s)))
-
-      /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2.  */
-      for (unsigned int t = 0; t < 16; ++t)
-	{
-	  W[t] = SWAP (*words);
-	  ++words;
-	}
-      for (unsigned int t = 16; t < 64; ++t)
-	W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
-
-      /* The actual computation according to FIPS 180-2:6.2.2 step 3.  */
-      for (unsigned int t = 0; t < 64; ++t)
-	{
-	  uint32_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
-	  uint32_t T2 = S0 (a) + Maj (a, b, c);
-	  h = g;
-	  g = f;
-	  f = e;
-	  e = d + T1;
-	  d = c;
-	  c = b;
-	  b = a;
-	  a = T1 + T2;
-	}
-
-      /* Add the starting values of the context according to FIPS 180-2:6.2.2
-	 step 4.  */
-      a += a_save;
-      b += b_save;
-      c += c_save;
-      d += d_save;
-      e += e_save;
-      f += f_save;
-      g += g_save;
-      h += h_save;
-
-      /* Prepare for the next round.  */
-      nwords -= 16;
-    }
-
-  /* Put checksum in context given as argument.  */
-  ctx->H[0] = a;
-  ctx->H[1] = b;
-  ctx->H[2] = c;
-  ctx->H[3] = d;
-  ctx->H[4] = e;
-  ctx->H[5] = f;
-  ctx->H[6] = g;
-  ctx->H[7] = h;
-}
-
+void
+sha256_process_block (const void *, size_t, struct sha256_ctx *);
 
 /* Initialize structure containing state of computation.
    (FIPS 180-2:5.3.2)  */
@@ -312,3 +216,5 @@
       ctx->buflen = left_over;
     }
 }
+
+#include <sha256-block.c>

Modified: trunk/libc/crypt/sha512.c
==============================================================================
--- trunk/libc/crypt/sha512.c (original)
+++ trunk/libc/crypt/sha512.c Sat Nov 17 17:50:14 2012
@@ -100,111 +100,8 @@
     UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817)
   };
 
-
-/* Process LEN bytes of BUFFER, accumulating context into CTX.
-   It is assumed that LEN % 128 == 0.  */
-static void
-sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)
-{
-  const uint64_t *words = buffer;
-  size_t nwords = len / sizeof (uint64_t);
-  uint64_t a = ctx->H[0];
-  uint64_t b = ctx->H[1];
-  uint64_t c = ctx->H[2];
-  uint64_t d = ctx->H[3];
-  uint64_t e = ctx->H[4];
-  uint64_t f = ctx->H[5];
-  uint64_t g = ctx->H[6];
-  uint64_t h = ctx->H[7];
-
-  /* First increment the byte count.  FIPS 180-2 specifies the possible
-     length of the file up to 2^128 bits.  Here we only compute the
-     number of bytes.  Do a double word increment.  */
-#ifdef USE_TOTAL128
-  ctx->total128 += len;
-#else
-  uint64_t lolen = len;
-  ctx->total[TOTAL128_low] += lolen;
-  ctx->total[TOTAL128_high] += ((len >> 31 >> 31 >> 2)
-				+ (ctx->total[TOTAL128_low] < lolen));
-#endif
-
-  /* Process all bytes in the buffer with 128 bytes in each round of
-     the loop.  */
-  while (nwords > 0)
-    {
-      uint64_t W[80];
-      uint64_t a_save = a;
-      uint64_t b_save = b;
-      uint64_t c_save = c;
-      uint64_t d_save = d;
-      uint64_t e_save = e;
-      uint64_t f_save = f;
-      uint64_t g_save = g;
-      uint64_t h_save = h;
-
-      /* Operators defined in FIPS 180-2:4.1.2.  */
-#define Ch(x, y, z) ((x & y) ^ (~x & z))
-#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
-#define S0(x) (CYCLIC (x, 28) ^ CYCLIC (x, 34) ^ CYCLIC (x, 39))
-#define S1(x) (CYCLIC (x, 14) ^ CYCLIC (x, 18) ^ CYCLIC (x, 41))
-#define R0(x) (CYCLIC (x, 1) ^ CYCLIC (x, 8) ^ (x >> 7))
-#define R1(x) (CYCLIC (x, 19) ^ CYCLIC (x, 61) ^ (x >> 6))
-
-      /* It is unfortunate that C does not provide an operator for
-	 cyclic rotation.  Hope the C compiler is smart enough.  */
-#define CYCLIC(w, s) ((w >> s) | (w << (64 - s)))
-
-      /* Compute the message schedule according to FIPS 180-2:6.3.2 step 2.  */
-      for (unsigned int t = 0; t < 16; ++t)
-	{
-	  W[t] = SWAP (*words);
-	  ++words;
-	}
-      for (unsigned int t = 16; t < 80; ++t)
-	W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
-
-      /* The actual computation according to FIPS 180-2:6.3.2 step 3.  */
-      for (unsigned int t = 0; t < 80; ++t)
-	{
-	  uint64_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
-	  uint64_t T2 = S0 (a) + Maj (a, b, c);
-	  h = g;
-	  g = f;
-	  f = e;
-	  e = d + T1;
-	  d = c;
-	  c = b;
-	  b = a;
-	  a = T1 + T2;
-	}
-
-      /* Add the starting values of the context according to FIPS 180-2:6.3.2
-	 step 4.  */
-      a += a_save;
-      b += b_save;
-      c += c_save;
-      d += d_save;
-      e += e_save;
-      f += f_save;
-      g += g_save;
-      h += h_save;
-
-      /* Prepare for the next round.  */
-      nwords -= 16;
-    }
-
-  /* Put checksum in context given as argument.  */
-  ctx->H[0] = a;
-  ctx->H[1] = b;
-  ctx->H[2] = c;
-  ctx->H[3] = d;
-  ctx->H[4] = e;
-  ctx->H[5] = f;
-  ctx->H[6] = g;
-  ctx->H[7] = h;
-}
-
+void
+sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx);
 
 /* Initialize structure containing state of computation.
    (FIPS 180-2:5.3.3)  */
@@ -342,3 +239,5 @@
       ctx->buflen = left_over;
     }
 }
+
+#include <sha512-block.c>

Modified: trunk/libc/debug/pcprofiledump.c
==============================================================================
--- trunk/libc/debug/pcprofiledump.c (original)
+++ trunk/libc/debug/pcprofiledump.c Sat Nov 17 17:50:14 2012
@@ -225,6 +225,6 @@
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2009");
+"), "2012");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }

Modified: trunk/libc/elf/Makefile
==============================================================================
--- trunk/libc/elf/Makefile (original)
+++ trunk/libc/elf/Makefile Sat Nov 17 17:50:14 2012
@@ -142,7 +142,7 @@
 	 tst-dlmodcount tst-dlopenrpath tst-deep1 \
 	 tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
 	 unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
-	 tst-audit1 tst-audit2 \
+	 tst-audit1 tst-audit2 tst-audit8 \
 	 tst-stackguard1 tst-addr1 tst-thrlock \
 	 tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
 	 tst-initorder tst-initorder2 tst-relsort1
@@ -1020,6 +1020,10 @@
 $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
 tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
 
+$(objpfx)tst-audit8: $(common-objpfx)math/libm.so
+$(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
+tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
+
 $(objpfx)tst-global1: $(libdl)
 $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
 

Modified: trunk/libc/elf/dl-runtime.c
==============================================================================
--- trunk/libc/elf/dl-runtime.c (original)
+++ trunk/libc/elf/dl-runtime.c Sat Nov 17 17:50:14 2012
@@ -1,5 +1,5 @@
 /* On-demand PLT fixup for shared objects.
-   Copyright (C) 1995-2009, 2010, 2011 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
@@ -56,7 +56,6 @@
    to that address.  Future calls will bounce directly from the PLT to the
    function.  */
 
-#ifndef ELF_MACHINE_NO_PLT
 DL_FIXUP_VALUE_TYPE
 __attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE
 _dl_fixup (
@@ -150,9 +149,8 @@
 
   return elf_machine_fixup_plt (l, result, reloc, rel_addr, value);
 }
-#endif
-
-#if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
+
+#if !defined PROF && !__BOUNDED_POINTERS__
 DL_FIXUP_VALUE_TYPE
 __attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE
 _dl_profile_fixup (
@@ -163,6 +161,26 @@
 		   ElfW(Addr) retaddr, void *regs, long int *framesizep)
 {
   void (*mcount_fct) (ElfW(Addr), ElfW(Addr)) = INTUSE(_dl_mcount);
+
+  if (l->l_reloc_result == NULL)
+    {
+      /* BZ #14843: ELF_DYNAMIC_RELOCATE is called before l_reloc_result
+	 is allocated.  We will get here if ELF_DYNAMIC_RELOCATE calls a
+	 resolver function to resolve an IRELATIVE relocation and that
+	 resolver calls a function that is not yet resolved (lazy).  For
+	 example, the resolver in x86-64 libm.so calls __get_cpu_features
+	 defined in libc.so.  Skip audit and resolve the external function
+	 in this case.  */
+      *framesizep = -1;
+      return _dl_fixup (
+# ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+#  ifndef ELF_MACHINE_RUNTIME_FIXUP_PARAMS
+#   error Please define ELF_MACHINE_RUNTIME_FIXUP_PARAMS.
+#  endif
+			ELF_MACHINE_RUNTIME_FIXUP_PARAMS,
+# endif
+			l, reloc_arg);
+    }
 
   /* This is the address in the array where we store the result of previous
      relocations.  */
@@ -417,7 +435,7 @@
   return value;
 }
 
-#endif /* PROF && ELF_MACHINE_NO_PLT */
+#endif /* PROF */
 
 
 #include <stdio.h>

Modified: trunk/libc/elf/tst-array1.c
==============================================================================
--- trunk/libc/elf/tst-array1.c (original)
+++ trunk/libc/elf/tst-array1.c Sat Nov 17 17:50:14 2012
@@ -1,6 +1,7 @@
 #include <unistd.h>
 
-static void init (void) __attribute__ ((constructor));
+/* Give init non-default priority so that it runs before init_array.  */
+static void init (void) __attribute__ ((constructor (1000)));
 
 static void
 init (void)
@@ -8,7 +9,8 @@
   write (STDOUT_FILENO, "init\n", 5);
 }
 
-static void fini (void) __attribute__ ((destructor));
+/* Give fini the same priority as init.  */
+static void fini (void) __attribute__ ((destructor (1000)));
 
 static void
 fini (void)

Modified: trunk/libc/elf/tst-array2dep.c
==============================================================================
--- trunk/libc/elf/tst-array2dep.c (original)
+++ trunk/libc/elf/tst-array2dep.c Sat Nov 17 17:50:14 2012
@@ -1,6 +1,7 @@
 #include <unistd.h>
 
-static void init (void) __attribute__ ((constructor));
+/* Give init non-default priority so that it runs before init_array.  */
+static void init (void) __attribute__ ((constructor (1000)));
 
 static void
 init (void)
@@ -8,7 +9,8 @@
   write (STDOUT_FILENO, "DSO init\n", 9);
 }
 
-static void fini (void) __attribute__ ((destructor));
+/* Give fini the same priority as init.  */
+static void fini (void) __attribute__ ((destructor (1000)));
 
 static void
 fini (void)

Modified: trunk/libc/iconv/iconv_prog.c
==============================================================================
--- trunk/libc/iconv/iconv_prog.c (original)
+++ trunk/libc/iconv/iconv_prog.c Sat Nov 17 17:50:14 2012
@@ -1,5 +1,5 @@
 /* Convert text in given files from the specified from-set to the to-set.
-   Copyright (C) 1998-2011, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -156,7 +156,7 @@
       if (*errhand == '/')
 	{
 	  --nslash;
-	  errhand = strchrnul (errhand, '/');
+	  errhand = strchrnul (errhand + 1, '/');
 
 	  if (*errhand == '/')
 	    {

Modified: trunk/libc/io/Makefile
==============================================================================
--- trunk/libc/io/Makefile (original)
+++ trunk/libc/io/Makefile Sat Nov 17 17:50:14 2012
@@ -79,6 +79,8 @@
 
 include ../Rules
 
+CFLAGS-open.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-open64.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-fcntl.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-poll.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-ppoll.c = -fexceptions -fasynchronous-unwind-tables

Modified: trunk/libc/libio/fileops.c
==============================================================================
--- trunk/libc/libio/fileops.c (original)
+++ trunk/libc/libio/fileops.c Sat Nov 17 17:50:14 2012
@@ -1261,12 +1261,13 @@
      _IO_ssize_t n;
 {
   _IO_ssize_t to_do = n;
+  _IO_ssize_t count = 0;
   while (to_do > 0)
     {
-      _IO_ssize_t count = (__builtin_expect (f->_flags2
-					     & _IO_FLAGS2_NOTCANCEL, 0)
-			   ? write_not_cancel (f->_fileno, data, to_do)
-			   : write (f->_fileno, data, to_do));
+      count = (__builtin_expect (f->_flags2
+				 & _IO_FLAGS2_NOTCANCEL, 0)
+	       ? write_not_cancel (f->_fileno, data, to_do)
+	       : write (f->_fileno, data, to_do));
       if (count < 0)
 	{
 	  f->_flags |= _IO_ERR_SEEN;
@@ -1278,7 +1279,7 @@
   n -= to_do;
   if (f->_offset >= 0)
     f->_offset += n;
-  return n;
+  return count < 0 ? count : n;
 }
 
 _IO_size_t
@@ -1338,9 +1339,10 @@
       _IO_size_t block_size, do_write;
       /* Next flush the (full) buffer. */
       if (_IO_OVERFLOW (f, EOF) == EOF)
-	/* If nothing else has to be written we must not signal the
-	   caller that everything has been written.  */
-	return to_do == 0 ? EOF : n - to_do;
+	/* If nothing else has to be written or nothing has been written, we
+	   must not signal the caller that the call was even partially
+	   successful.  */
+	return (to_do == 0 || to_do == n) ? EOF : n - to_do;
 
       /* Try to maintain alignment: write a whole number of blocks.
 	 dont_write is what gets left over. */

Modified: trunk/libc/libio/iopadn.c
==============================================================================
--- trunk/libc/libio/iopadn.c (original)
+++ trunk/libc/libio/iopadn.c Sat Nov 17 17:50:14 2012
@@ -59,7 +59,7 @@
       w = _IO_sputn (fp, padptr, PADSIZE);
       written += w;
       if (w != PADSIZE)
-	return written;
+	return w == EOF ? w : written;
     }
 
   if (i > 0)

Modified: trunk/libc/libio/iowpadn.c
==============================================================================
--- trunk/libc/libio/iowpadn.c (original)
+++ trunk/libc/libio/iowpadn.c Sat Nov 17 17:50:14 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -65,7 +65,7 @@
       w = _IO_sputn (fp, (char *) padptr, PADSIZE);
       written += w;
       if (w != PADSIZE)
-	return written;
+	return w == EOF ? w : written;
     }
 
   if (i > 0)

Modified: trunk/libc/libio/libioP.h
==============================================================================
--- trunk/libc/libio/libioP.h (original)
+++ trunk/libc/libio/libioP.h Sat Nov 17 17:50:14 2012
@@ -1,5 +1,4 @@
-/* Copyright (C) 1993, 1997-2003,2004,2005,2006,2007,2012
-	Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -24,6 +23,14 @@
    might be covered by the GNU Lesser General Public License.
    This exception applies to code released by its copyright holders
    in files containing the exception.  */
+
+/* NOTE: libio is now exclusively used only by glibc since libstdc++ has its
+   own implementation.  As a result, functions that were implemented for C++
+   (like *sputn) may no longer have C++ semantics.  This is of course only
+   relevant for internal callers of these functions since these functions are
+   not intended for external use otherwise.
+
+   FIXME: All of the C++ cruft eventually needs to go away.  */
 
 #include <errno.h>
 #ifndef __set_errno
@@ -163,7 +170,7 @@
 #define _IO_WPBACKFAIL(FP, CH) WJUMP1 (__pbackfail, FP, CH)
 
 /* The 'xsputn' hook writes upto N characters from buffer DATA.
-   Returns the number of character actually written.
+   Returns EOF or the number of character actually written.
    It matches the streambuf::xsputn virtual function. */
 typedef _IO_size_t (*_IO_xsputn_t) (_IO_FILE *FP, const void *DATA,
 				    _IO_size_t N);

Modified: trunk/libc/locale/Makefile
==============================================================================
--- trunk/libc/locale/Makefile (original)
+++ trunk/libc/locale/Makefile Sat Nov 17 17:50:14 2012
@@ -75,6 +75,8 @@
 
 include ../Rules
 
+CFLAGS-md5.c = -I../crypt
+
 programs/%-kw.h: programs/%-kw.gperf
 	cd programs \
 	&& $(GPERF) $(GPERFFLAGS) -N $(@F:-kw.h=_hash) $(<F) > $(@F).new

Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Sat Nov 17 17:50:14 2012
@@ -1,3 +1,46 @@
+2012-11-16  Andreas Jaeger  <aj@xxxxxxx>
+
+	[BZ #14368]
+	* locales/szl_PL: New Silesian Language Locale for Poland.
+	Contributed by Przemyslaw Buczkowski <przemub@xxxxxxxx>.
+	* localedata/SUPPORTED (SUPPORTED-LOCALES): Add szl_PL.
+
+	[BZ # 14828]
+	* locales/ayc_PE: Add Aymara locale for Peru
+	contributed by Chris Leonard <cjl@xxxxxxxxxxxxx> and
+	Amos Batto <amosbatto@xxxxxxxxx>.
+	* SUPPORTED (SUPPORTED-LOCALES): Add ayc_PE.
+
+	[BZ # 14501]
+	* locales/nhn_MX: Add Central Nahuatl locale for Mexico,
+	contributed by Jorge Becerril <jrbecster@xxxxxxxxx>.
+	* SUPPORTED (SUPPORTED-LOCALES): Add nhn_MX.
+
+2012-11-15  Chris Leonard  <cjlhomeaddress@xxxxxxxxx>
+
+	[BZ #13952]
+	* locales/km_KH: Correct country-name and lang-name.
+
+2012-11-15  Andreas Jaeger  <aj@xxxxxxx>
+
+	[BZ #13603]
+	[BZ #13604]
+	[BZ #13698]
+	* locales/doi_IN: New file, contributed by Pravin Satpute
+	<psatpute@xxxxxxxxxx> and Sushil Badyal <badyalsk@xxxxxxxxx>.
+	* locales/mni_IN: New file, contributed by Pravin Satpute
+	<psatpute@xxxxxxxxxx> and Rebika Devi <rebika_srd@xxxxxxxxxxxxxx>.
+	* locales/sat_IN: New file, contributed by Pravin Satpute
+	<psatpute@xxxxxxxxxx> and Thakur Prasad Murmu <tp_murmu@xxxxxxxxx>.
+	* SUPPORTED (SUPPORTED-LOCALES): Add doi_IN, mni_IN, sat_IN.
+
+2012-11-15  Chris Leonard  <cjlhomeaddress@xxxxxxxxx>
+
+	[BZ #13950]
+	* locales/bo_CN (LC_NAME, LC_ADDRESS): Remove some FIXMEs with
+	proper content, disable others.
+	* locales/bo_IN (LC_NAME, LC_ADDRESS): Likewise.
+
 2012-11-07  Dmitry V. Levin  <ldv@xxxxxxxxxxxx>
 
 	[BZ#14807]

Modified: trunk/libc/localedata/SUPPORTED
==============================================================================
--- trunk/libc/localedata/SUPPORTED (original)
+++ trunk/libc/localedata/SUPPORTED Sat Nov 17 17:50:14 2012
@@ -46,6 +46,7 @@
 ar_TN/ISO-8859-6 \
 ar_YE.UTF-8/UTF-8 \
 ar_YE/ISO-8859-6 \
+ayc_PE/UFT-8 \
 az_AZ/UTF-8 \
 as_IN/UTF-8 \
 ast_ES.UTF-8/UTF-8 \
@@ -102,6 +103,7 @@
 de_LU.UTF-8/UTF-8 \
 de_LU/ISO-8859-1 \
 de_LU@euro/ISO-8859-15 \
+doi_IN/UTF-8 \
 dv_MV/UTF-8 \
 dz_BT/UTF-8 \
 el_GR.UTF-8/UTF-8 \
@@ -296,6 +298,7 @@
 mk_MK/ISO-8859-5 \
 ml_IN/UTF-8 \
 mn_MN/UTF-8 \
+mni_IN/UTF-8 \
 mr_IN/UTF-8 \
 ms_MY.UTF-8/UTF-8 \
 ms_MY/ISO-8859-1 \
@@ -308,6 +311,7 @@
 nds_DE/UTF-8 \
 nds_NL/UTF-8 \
 ne_NP/UTF-8 \
+nhn_MX/UTF-8 \
 nl_AW/UTF-8 \
 nl_BE.UTF-8/UTF-8 \
 nl_BE/ISO-8859-1 \
@@ -346,6 +350,7 @@
 ru_UA/KOI8-U \
 rw_RW/UTF-8 \
 sa_IN/UTF-8 \
+sat_IN/UTF-8 \
 sc_IT/UTF-8 \
 sd_IN/UTF-8 \
 sd_IN@devanagari/UTF-8 \
@@ -380,6 +385,7 @@
 sv_SE/ISO-8859-1 \
 sw_KE/UTF-8 \
 sw_TZ/UTF-8 \
+szl_PL/UTF-8 \
 ta_IN/UTF-8 \
 ta_LK/UTF-8 \
 te_IN/UTF-8 \

Modified: trunk/libc/localedata/locales/bo_CN
==============================================================================
--- trunk/libc/localedata/locales/bo_CN (original)
+++ trunk/libc/localedata/locales/bo_CN Sat Nov 17 17:50:14 2012
@@ -144,19 +144,21 @@
 
 LC_NAME
 % FIXME
-name_fmt	"FIXME"
-name_gen	"FIXME"
-name_miss	"FIXME"
-name_mr		"FIXME"
-name_mrs	"FIXME"
-name_ms		"FIXME"
+
+name_fmt  ""
+% name_gen	"FIXME"
+% name_miss	"FIXME"
+% name_mr	"FIXME"
+% name_mrs	"FIXME"
+% name_ms	"FIXME"
 END LC_NAME
 
 LC_ADDRESS
 % FIXME
-postal_fmt	"FIXME"
-country_name	"FIXME"
 
+% %c%N%T%N%s %h %e %r%N%b%N%d%N%f%N%a%N
+postal_fmt   "<U0025><U0063><U0025><U004E><U0025><U0054><U0025><U004E><U0025><U0073><U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0064><U0025><U004E><U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>"
+country_name "<U0F40><U0FB2><U0F74><U0F44><U0F0B><U0F67><U0FAD><U0F0B><U0F58><U0F72><U0F0B><U0F51><U0F58><U0F44><U0F66><U0F0B><U0F66><U0FA4><U0FB1><U0F72><U0F0B><U0F58><U0F50><U0F74><U0F53><U0F0B><U0F62><U0F92><U0FB1><U0F63><U0F0B><U0F41><U0F56><U0F0D>"
 country_ab2	"<U0043><U004E>"
 country_ab3	"<U0043><U0048><U004E>"
 country_num	156

Modified: trunk/libc/localedata/locales/bo_IN
==============================================================================
--- trunk/libc/localedata/locales/bo_IN (original)
+++ trunk/libc/localedata/locales/bo_IN Sat Nov 17 17:50:14 2012
@@ -70,23 +70,23 @@
 
 LC_NAME
 % FIXME
-name_fmt	"FIXME"
-name_gen	"FIXME"
-name_miss	"FIXME"
-name_mr		"FIXME"
-name_mrs	"FIXME"
-name_ms		"FIXME"
+name_fmt	""
+% name_gen	"FIXME"
+% name_miss	"FIXME"
+% name_mr	"FIXME"
+% name_mrs	"FIXME"
+% name_ms	"FIXME"
 END LC_NAME
 
 LC_ADDRESS
 % FIXME
-postal_fmt	"FIXME"
-country_name	"FIXME"
 
+% %z%c%T%s%b%e%r
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U0062><U0025><U0065><U0025><U0072>"
+country_name "<U0F62><U0F92><U0FB1><U0F0B><U0F42><U0F62>"
 country_ab2 "<U0049><U004E>"
 country_ab3 "<U0049><U004E><U0044>"
 country_num 356
-
 lang_name     "<U0F54><U0F7C><U0F51><U0F0B><U0F66><U0F90><U0F51><U0F0B>"
 lang_ab       "<U0062><U006F>"
 lang_term     "<U0062><U006F><U0064>"

Modified: trunk/libc/localedata/locales/km_KH
==============================================================================
--- trunk/libc/localedata/locales/km_KH (original)
+++ trunk/libc/localedata/locales/km_KH Sat Nov 17 17:50:14 2012
@@ -1888,7 +1888,8 @@
 <U0025><U0074><U0025><U0062><U0025><U004E><U0025><U0068><U0025><U0074>/
 <U0025><U0073><U0025><U004E><U0025><U0054><U0025><U004E><U0025><U0053>/
 <U0025><U004E><U0025><U007A><U0025><U0063><U0025><U004E>"
-country_name  "<U0EA5><U0EB2><U0EA7>"
+% ÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂ (Kampuchea)
+country_name "<U1780><U1798><U17D2><U1796><U17BB><U1787><U17B6>"
 %FIXME
 %country_post  ""
 country_ab2   "<U004C><U0041>"
@@ -1897,7 +1898,8 @@
 country_car   "<U004C><U0041><U004F>"
 %FIXME
 %country_isbn  ""
-lang_name     "<U0EA5><U0EB2><U0EA7>"
+% ÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÂ (Khmer)
+lang_name     "<U1797><U17B6><U179F><U17B6><U1781><U17D2><U1798><U17C2><U179A>"
 lang_ab       "<U006C><U006F>"
 lang_term     "<U006c><U0061><U006F>"
 lang_lib      "<U006C><U0061><U006F>"

Modified: trunk/libc/malloc/memusagestat.c
==============================================================================
--- trunk/libc/malloc/memusagestat.c (original)
+++ trunk/libc/malloc/memusagestat.c Sat Nov 17 17:50:14 2012
@@ -1,6 +1,5 @@
 /* Generate graphic from memory profiling data.
-   Copyright (C) 1998, 1999, 2000, 2005, 2006,
-   2009 Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -554,6 +553,6 @@
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2009");
+"), "2012");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }

Modified: trunk/libc/math/libm-test.inc
==============================================================================
--- trunk/libc/math/libm-test.inc (original)
+++ trunk/libc/math/libm-test.inc Sat Nov 17 17:50:14 2012
@@ -635,9 +635,11 @@
 {
   FLOAT part_comp, part_exp, part_max_ulp;
   int part_xfail;
-  char str[200];
-
-  sprintf (str, "Real part of: %s", test_name);
+  char *str;
+
+  if (asprintf (&str, "Real part of: %s", test_name) == -1)
+    abort ();
+
   part_comp = __real__ computed;
   part_exp = __real__ expected;
   part_max_ulp = __real__ max_ulp;
@@ -645,8 +647,11 @@
 
   check_float_internal (str, part_comp, part_exp, part_max_ulp, part_xfail,
 			exception, &real_max_error);
-
-  sprintf (str, "Imaginary part of: %s", test_name);
+  free (str);
+
+  if (asprintf (&str, "Imaginary part of: %s", test_name) == -1)
+    abort ();
+
   part_comp = __imag__ computed;
   part_exp = __imag__ expected;
   part_max_ulp = __imag__ max_ulp;
@@ -657,6 +662,7 @@
   check_float_internal (str, part_comp, part_exp, part_max_ulp, part_xfail,
 			exception & IGNORE_ZERO_INF_SIGN,
 			&imag_max_error);
+  free (str);
 }
 
 

Modified: trunk/libc/misc/Makefile
==============================================================================
--- trunk/libc/misc/Makefile (original)
+++ trunk/libc/misc/Makefile Sat Nov 17 17:50:14 2012
@@ -92,6 +92,7 @@
 endif
 endif
 
+CFLAGS-select.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-tsearch.c = $(uses-callbacks)
 CFLAGS-lsearch.c = $(uses-callbacks)
 CFLAGS-pselect.c = -fexceptions

Modified: trunk/libc/nptl/ChangeLog
==============================================================================
--- trunk/libc/nptl/ChangeLog (original)
+++ trunk/libc/nptl/ChangeLog Sat Nov 17 17:50:14 2012
@@ -1,3 +1,8 @@
+2012-11-14  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
+
+	* Makefile (CFLAGS-open.c, CFLAGS-open64.c, CFLAGS-pause.c)
+	  (CFLAGS-recv.c, CFLAGS-send.c): Define.
+
 2012-11-06  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
 
 	* tst-sem14.c (TIMEOUT): Set timeout to 10 seconds.

Modified: trunk/libc/nptl/Makefile
==============================================================================
--- trunk/libc/nptl/Makefile (original)
+++ trunk/libc/nptl/Makefile Sat Nov 17 17:50:14 2012
@@ -195,6 +195,11 @@
 CFLAGS-msgrcv.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-msgsnd.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-tcdrain.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-open.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-open64.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-pause.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-recv.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-send.c = -fexceptions -fasynchronous-unwind-tables
 
 CFLAGS-pt-system.c = -fexceptions
 

Modified: trunk/libc/ports/ChangeLog.arm
==============================================================================
--- trunk/libc/ports/ChangeLog.arm (original)
+++ trunk/libc/ports/ChangeLog.arm Sat Nov 17 17:50:14 2012
@@ -1,3 +1,8 @@
+2012-11-14  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/arm/Makefile (libcrypt-sysdep_routines): Add
+	libc-do-syscall.
+
 2012-11-05  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h

Modified: trunk/libc/ports/ChangeLog.mips
==============================================================================
--- trunk/libc/ports/ChangeLog.mips (original)
+++ trunk/libc/ports/ChangeLog.mips Sat Nov 17 17:50:14 2012
@@ -1,3 +1,12 @@
+2012-11-17  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/mips/bits/atomic.h
+	(__arch_compare_and_exchange_bool_8_int): Mark __PREV variable
+	with __attribute__ ((unused)).
+	(__arch_compare_and_exchange_bool_16_int): Likewise.
+	(__arch_compare_and_exchange_bool_32_int): Likewise.
+	(__arch_compare_and_exchange_bool_64_int): Likewise.
+
 2012-11-06  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
 
         * sysdeps/mips/memmove.c: New file.  Use memcpy for forward memmove.

Modified: trunk/libc/ports/sysdeps/mips/bits/atomic.h
==============================================================================
--- trunk/libc/ports/sysdeps/mips/bits/atomic.h (original)
+++ trunk/libc/ports/sysdeps/mips/bits/atomic.h Sat Nov 17 17:50:14 2012
@@ -261,22 +261,22 @@
 /* For all "bool" routines, we return FALSE if exchange succesful.  */
 
 # define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \
-({ typeof (*mem) __prev; int __cmp;					\
+({ typeof (*mem) __prev __attribute__ ((unused)); int __cmp;		\
    __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
    !__cmp; })
 
 # define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
-({ typeof (*mem) __prev; int __cmp;					\
+({ typeof (*mem) __prev __attribute__ ((unused)); int __cmp;		\
    __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
    !__cmp; })
 
 # define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
-({ typeof (*mem) __prev; int __cmp;					\
+({ typeof (*mem) __prev __attribute__ ((unused)); int __cmp;		\
    __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
    !__cmp; })
 
 # define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
-({ typeof (*mem) __prev; int __cmp;					\
+({ typeof (*mem) __prev __attribute__ ((unused)); int __cmp;		\
    __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
    !__cmp; })
 

Modified: trunk/libc/ports/sysdeps/unix/sysv/linux/arm/Makefile
==============================================================================
--- trunk/libc/ports/sysdeps/unix/sysv/linux/arm/Makefile (original)
+++ trunk/libc/ports/sysdeps/unix/sysv/linux/arm/Makefile Sat Nov 17 17:50:14 2012
@@ -31,6 +31,10 @@
 endif
 
 # Add a syscall function to each library that needs one.
+
+ifeq ($(subdir),crypt)
+libcrypt-sysdep_routines += libc-do-syscall
+endif
 
 ifeq ($(subdir),rt)
 librt-sysdep_routines += libc-do-syscall

Propchange: trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 17 17:50:14 2012
@@ -1,2 +1,2 @@
 /fsf/trunk/libc/ports/data/c++-types-powerpce500v2-linux-gnu.data:15224-19464
-/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:19921-21628
+/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:19921-21775

Propchange: trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 17 17:50:14 2012
@@ -1,2 +1,2 @@
 /fsf/trunk/libc/ports/data/localplt-powerpce500v2-linux-gnu.data:15224-19464
-/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:19921-21628
+/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:19921-21775

Propchange: trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 17 17:50:14 2012
@@ -1,2 +1,2 @@
 /fsf/trunk/libc/ports/data/c++-types-powerpce500v1-linux-gnu.data:15224-19464
-/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:19921-21628
+/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:19921-21775

Propchange: trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 17 17:50:14 2012
@@ -1,2 +1,2 @@
 /fsf/trunk/libc/ports/data/localplt-powerpce500v1-linux-gnu.data:15224-19464
-/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:19921-21628
+/fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:19921-21775

Modified: trunk/libc/posix/Makefile
==============================================================================
--- trunk/libc/posix/Makefile (original)
+++ trunk/libc/posix/Makefile Sat Nov 17 17:50:14 2012
@@ -165,6 +165,7 @@
 
 CFLAGS-regex.c = -Wno-strict-prototypes
 CFLAGS-getaddrinfo.c = -DRESOLVER -fexceptions
+CFLAGS-pause.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pread.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pread64.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pwrite.c = -fexceptions -fasynchronous-unwind-tables
@@ -335,36 +336,7 @@
 	  mv -f $@/$$spec.new $@/$$spec; \
 	done < $(objpfx)getconf.speclist
 
-# eglibc: If we are cross-compiling, build cross-getconf utility and use it
-# instead of getconf.
-
-# We moved a piece of confstr.c to confstr.inc to share the later with
-# cross-getconf.c.
-confstr.c: confstr.inc
-
-ifeq (no,$(cross-compiling))
-getconf-dep = $(objpfx)getconf
-getconf-cmd = $(run-program-prefix) $(objpfx)getconf
-else
-getconf-dep = $(objpfx)cross-getconf
-getconf-cmd = $(objpfx)cross-getconf
-
-# Get configuration defines for cross-getconf by preprocessing confstr.c.
-$(objpfx)cross-getconf.h: confstr.c
-	$(compile.c) -E -dM -o - | grep "define _POSIX_V7_ILP32_OFF32\|define _POSIX_V7_ILP32_OFFBIG\|define _POSIX_V7_LP64_OFF64\|define _POSIX_V7_LPBIG_OFFBIG\|_POSIX_V6_ILP32_OFF32\|define _POSIX_V6_ILP32_OFFBIG\|define _POSIX_V6_LP64_OFF64\|define _POSIX_V6_LPBIG_OFFBIG\|_XBS5_ILP32_OFF32\|define _XBS5_ILP32_OFFBIG\|define _XBS5_LP64_OFF64\|define _XBS5_LPBIG_OFFBIG" > $(objpfx)cross-getconf.h
-
-cross-getconf-CFLAGS = -O -I$(objpfx)
-
-$(objpfx)cross-getconf: cross-getconf.c $(objpfx)cross-getconf.h
-	$(native-compile)
-endif
-
-$(objpfx)getconf.speclist: $(getconf-dep)
-	LC_ALL=C GETCONF_DIR=/dev/null \
-		$(getconf-cmd) _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new
-	LC_ALL=C GETCONF_DIR=/dev/null \
-		$(getconf-cmd) _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new
-	LC_ALL=C GETCONF_DIR=/dev/null \
-		$(getconf-cmd) _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new
+$(objpfx)getconf.speclist: getconf-speclist.c posix-envs.def
+	$(compile.c) -E -o - \
+	    | sed -n -e '/@@@PRESENT_/s/@@@PRESENT_//p' > $@.new
 	mv -f $@.new $@
-# eglibc: end.

Modified: trunk/libc/posix/confstr.c
==============================================================================
--- trunk/libc/posix/confstr.c (original)
+++ trunk/libc/posix/confstr.c Sat Nov 17 17:50:14 2012
@@ -48,9 +48,53 @@
       }
       break;
 
-      /* eglibc: We share code in confstr.inc with cross-getconf.c.  */
-#include "confstr.inc"
-      /* eglibc: end.  */
+      /* For _CS_V7_WIDTH_RESTRICTED_ENVS, _CS_V6_WIDTH_RESTRICTED_ENVS
+	 and _CS_V5_WIDTH_RESTRICTED_ENVS:
+
+	 We have to return a newline-separated list of names of
+	 programming environments in which the widths of blksize_t,
+	 cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t,
+	 ssize_t, suseconds_t, tcflag_t, useconds_t, wchar_t, and
+	 wint_t types are no greater than the width of type long.
+
+	 Currently this means all environments that the system allows.  */
+
+#define START_ENV_GROUP(VERSION)		\
+    case _CS_##VERSION##_WIDTH_RESTRICTED_ENVS:	\
+      string_len = 0;
+
+#define END_ENV_GROUP(VERSION)			\
+      restenvs[string_len++] = '\0';		\
+      string = restenvs;			\
+      break;
+
+#define KNOWN_ABSENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX)	\
+      /* Empty.  */
+
+#define KNOWN_PRESENT_ENV_STRING(STR)		\
+      if (string_len > 0)			\
+	restenvs[string_len++] = '\n';		\
+      memcpy (restenvs + string_len, STR,	\
+	      sizeof STR - 1);			\
+      string_len += sizeof STR - 1;
+
+#define KNOWN_PRESENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX)	\
+      KNOWN_PRESENT_ENV_STRING (#ENV_PREFIX "_" #SUFFIX)
+
+#define UNKNOWN_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX)		\
+      if (__sysconf (_SC_##SC_PREFIX##_##SUFFIX) > 0)			\
+	{								\
+	  KNOWN_PRESENT_ENVIRONMENT (SC_PREFIX, ENV_PREFIX, SUFFIX)	\
+	}
+
+#include "posix-envs.def"
+
+#undef START_ENV_GROUP
+#undef END_ENV_GROUP
+#undef KNOWN_ABSENT_ENVIRONMENT
+#undef KNOWN_PRESENT_ENV_STRING
+#undef KNOWN_PRESENT_ENVIRONMENT
+#undef UNKNOWN_ENVIRONMENT
 
     case _CS_XBS5_ILP32_OFF32_CFLAGS:
     case _CS_POSIX_V6_ILP32_OFF32_CFLAGS:

Removed: trunk/libc/posix/confstr.inc
==============================================================================
--- trunk/libc/posix/confstr.inc (original)
+++ trunk/libc/posix/confstr.inc (removed)
@@ -1,198 +1,0 @@
-/* Copyright (C) 2008, 2009, 2010
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   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, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* eglibc: The following piece of code was extracted from
-   confstr.c to share it with cross-getconf.c.  */
-
-    case _CS_V7_WIDTH_RESTRICTED_ENVS:
-      /* We have to return a newline-separated list of named of
-	 programming environements in which the widths of blksize_t,
-	 cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t,
-	 ssize_t, suseconds_t, tcflag_t, useconds_t, wchar_t, and
-	 wint_t types are no greater than the width of type long.
-
-	 Currently this means all environment which the system allows.  */
-      string_len = 0;
-#ifndef _POSIX_V7_ILP32_OFF32
-      if (__sysconf (_SC_V7_ILP32_OFF32) > 0)
-#endif
-#if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0
-	{
-	  memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32",
-		  sizeof "POSIX_V7_ILP32_OFF32" - 1);
-	  string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1;
-	}
-#endif
-#ifndef _POSIX_V7_ILP32_OFFBIG
-      if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0)
-#endif
-#if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG",
-		  sizeof "POSIX_V7_ILP32_OFFBIG" - 1);
-	  string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1;
-	}
-#endif
-#ifndef _POSIX_V7_LP64_OFF64
-      if (__sysconf (_SC_V7_LP64_OFF64) > 0)
-#endif
-#if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64",
-		  sizeof "POSIX_V7_LP64_OFF64" - 1);
-	  string_len += sizeof "POSIX_V7_LP64_OFF64" - 1;
-	}
-#endif
-#ifndef _POSIX_V7_LPBIG_OFFBIG
-      if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0)
-#endif
-#if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG",
-		  sizeof "POSIX_V7_LPBIG_OFFBIG" - 1);
-	  string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1;
-	}
-#endif
-      restenvs[string_len++] = '\0';
-      string = restenvs;
-      break;
-
-    case _CS_V6_WIDTH_RESTRICTED_ENVS:
-      /* We have to return a newline-separated list of named of
-	 programming environements in which the widths of blksize_t,
-	 cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t,
-	 ssize_t, suseconds_t, tcflag_t, useconds_t, wchar_t, and
-	 wint_t types are no greater than the width of type long.
-
-	 Currently this means all environment which the system allows.  */
-      string_len = 0;
-#ifndef _POSIX_V6_ILP32_OFF32
-      if (__sysconf (_SC_V6_ILP32_OFF32) > 0)
-#endif
-#if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0
-	{
-	  memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32",
-		  sizeof "POSIX_V6_ILP32_OFF32" - 1);
-	  string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1;
-	}
-#endif
-#ifndef _POSIX_V6_ILP32_OFFBIG
-      if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0)
-#endif
-#if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG",
-		  sizeof "POSIX_V6_ILP32_OFFBIG" - 1);
-	  string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1;
-	}
-#endif
-#ifndef _POSIX_V6_LP64_OFF64
-      if (__sysconf (_SC_V6_LP64_OFF64) > 0)
-#endif
-#if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64",
-		  sizeof "POSIX_V6_LP64_OFF64" - 1);
-	  string_len += sizeof "POSIX_V6_LP64_OFF64" - 1;
-	}
-#endif
-#ifndef _POSIX_V6_LPBIG_OFFBIG
-      if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0)
-#endif
-#if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG",
-		  sizeof "POSIX_V6_LPBIG_OFFBIG" - 1);
-	  string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1;
-	}
-#endif
-      restenvs[string_len++] = '\0';
-      string = restenvs;
-      break;
-
-    case _CS_V5_WIDTH_RESTRICTED_ENVS:
-      /* We have to return a newline-separated list of named of
-	 programming environements in which the widths of blksize_t,
-	 cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t,
-	 ssize_t, suseconds_t, tcflag_t, useconds_t, wchar_t, and
-	 wint_t types are no greater than the width of type long.
-
-	 Currently this means all environment which the system allows.  */
-      string_len = 0;
-#ifndef _XBS5_ILP32_OFF32
-      if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0)
-#endif
-#if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0
-	{
-	  memcpy (restenvs + string_len, "XBS5_ILP32_OFF32",
-		  sizeof "XBS5_ILP32_OFF32" - 1);
-	  string_len += sizeof "XBS5_ILP32_OFF32" - 1;
-	}
-#endif
-#ifndef _XBS5_ILP32_OFFBIG
-      if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0)
-#endif
-#if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG",
-		  sizeof "XBS5_ILP32_OFFBIG" - 1);
-	  string_len += sizeof "XBS5_ILP32_OFFBIG" - 1;
-	}
-#endif
-#ifndef _XBS5_LP64_OFF64
-      if (__sysconf (_SC_XBS5_LP64_OFF64) > 0)
-#endif
-#if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "XBS5_LP64_OFF64",
-		  sizeof "XBS5_LP64_OFF64" - 1);
-	  string_len += sizeof "XBS5_LP64_OFF64" - 1;
-	}
-#endif
-#ifndef _XBS5_LPBIG_OFFBIG
-      if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0)
-#endif
-#if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0
-	{
-	  if (string_len)
-	    restenvs[string_len++] = '\n';
-	  memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG",
-		  sizeof "XBS5_LPBIG_OFFBIG" - 1);
-	  string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1;
-	}
-#endif
-      restenvs[string_len++] = '\0';
-      string = restenvs;
-      break;

Removed: trunk/libc/posix/cross-getconf.c
==============================================================================
--- trunk/libc/posix/cross-getconf.c (original)
+++ trunk/libc/posix/cross-getconf.c (removed)
@@ -1,144 +1,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published
-   by the Free Software Foundation; version 2 of the License, or
-   (at your option) any later version.
-
-   This program 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 General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-/* Undefine macros that should be defined in cross-getconf.h.  */
-#undef _POSIX_V7_ILP32_OFF32
-#undef _POSIX_V7_ILP32_OFFBIG
-#undef _POSIX_V7_LP64_OFF64
-#undef _POSIX_V7_LPBIG_OFFBIG
-#undef _POSIX_V6_ILP32_OFF32
-#undef _POSIX_V6_ILP32_OFFBIG
-#undef _POSIX_V6_LP64_OFF64
-#undef _POSIX_V6_LPBIG_OFFBIG
-#undef _XBS5_ILP32_OFF32
-#undef _XBS5_ILP32_OFFBIG
-#undef _XBS5_LP64_OFF64
-#undef _XBS5_LPBIG_OFFBIG
-
-#include "cross-getconf.h"
-
-/* Define macros cross-getconf.h doesn't define to (-1).
-   This will prevent using host's __sysconf in confstr.inc.  */
-#ifndef _POSIX_V7_ILP32_OFF32
-# define _POSIX_V7_ILP32_OFF32 (-1)
-#endif
-#ifndef _POSIX_V7_ILP32_OFFBIG
-# define _POSIX_V7_ILP32_OFFBIG (-1)
-#endif
-#ifndef _POSIX_V7_LP64_OFF64
-# define _POSIX_V7_LP64_OFF64 (-1)
-#endif
-#ifndef _POSIX_V7_LPBIG_OFFBIG
-# define _POSIX_V7_LPBIG_OFFBIG (-1)
-#endif
-#ifndef _POSIX_V6_ILP32_OFF32
-# define _POSIX_V6_ILP32_OFF32 (-1)
-#endif
-#ifndef _POSIX_V6_ILP32_OFFBIG
-# define _POSIX_V6_ILP32_OFFBIG (-1)
-#endif
-#ifndef _POSIX_V6_LP64_OFF64
-# define _POSIX_V6_LP64_OFF64 (-1)
-#endif
-#ifndef _POSIX_V6_LPBIG_OFFBIG
-# define _POSIX_V6_LPBIG_OFFBIG (-1)
-#endif
-#ifndef _XBS5_ILP32_OFF32
-# define _XBS5_ILP32_OFF32 (-1)
-#endif
-#ifndef _XBS5_ILP32_OFFBIG
-# define _XBS5_ILP32_OFFBIG (-1)
-#endif
-#ifndef _XBS5_LP64_OFF64
-# define _XBS5_LP64_OFF64 (-1)
-#endif
-#ifndef _XBS5_LPBIG_OFFBIG
-# define _XBS5_LPBIG_OFFBIG (-1)
-#endif
-
-#undef _CS_V5_WIDTH_RESTRICTED_ENVS
-#define _CS_V5_WIDTH_RESTRICTED_ENVS 5
-
-#undef _CS_V6_WIDTH_RESTRICTED_ENVS
-#define _CS_V6_WIDTH_RESTRICTED_ENVS 6
-
-#undef _CS_V7_WIDTH_RESTRICTED_ENVS
-#define _CS_V7_WIDTH_RESTRICTED_ENVS 7
-
-/* Cross-getconf is a very simple program that assumes fixed
-   input and produces fixed output.  It handles only cases
-   that are necessary to cross-compile EGLIBC.  */
-
-void
-cross_getconf (int name)
-{
-  const char *string = "";
-  size_t string_len = 1;
-
-  /* Note that this buffer must be large enough for the longest strings
-     used below.  */
-  char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"];
-
-  switch (name)
-    {
-#include "confstr.inc"
-    }
-
-  printf ("%.*s\n", (int) string_len, string);
-}
-
-int
-main (int argc, char *argv[])
-{
-  const char *getconf_dir;
-
-  if (argc != 2)
-    {
-      fprintf (stderr,
-	       "%s: must be called with exactly one argument\n", argv[0]);
-      return 1;
-    }
-
-  getconf_dir = getenv ("GETCONF_DIR");
-  if (getconf_dir == NULL
-      || strcmp (getconf_dir, "/dev/null") != 0)
-    {
-      fprintf (stderr, "%s: GETCONF_DIR should be /dev/null\n", argv[0]);
-      return 1;
-    }
-
-  if (strcmp (argv[1], "_POSIX_V7_WIDTH_RESTRICTED_ENVS") == 0)
-    cross_getconf (_CS_V7_WIDTH_RESTRICTED_ENVS);
-  else if (strcmp (argv[1], "_POSIX_V6_WIDTH_RESTRICTED_ENVS") == 0)
-    cross_getconf (_CS_V6_WIDTH_RESTRICTED_ENVS);
-  else if (strcmp (argv[1], "_XBS5_WIDTH_RESTRICTED_ENVS") == 0)
-    cross_getconf (_CS_V5_WIDTH_RESTRICTED_ENVS);
-  else
-    {
-      fprintf (stderr,
-	       "%s: the only supported arguments value are "
-	       "_POSIX_V7_WIDTH_RESTRICTED_ENVS, "
-	       "_POSIX_V6_WIDTH_RESTRICTED_ENVS, and "
-	       "_XBS5_WIDTH_RESTRICTED_ENVS\n", argv[0]);
-      return 1;
-    }
-  return 0;
-}

Modified: trunk/libc/resolv/netdb.h
==============================================================================
--- trunk/libc/resolv/netdb.h (original)
+++ trunk/libc/resolv/netdb.h Sat Nov 17 17:50:14 2012
@@ -76,7 +76,7 @@
 # define NO_ADDRESS	NO_DATA	/* No address, look for MX record.  */
 #endif
 
-#ifdef __USE_XOPEN2K
+#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED
 /* Highest reserved Internet port number.  */
 # define IPPORT_RESERVED	1024
 #endif

Modified: trunk/libc/scripts/check-local-headers.sh
==============================================================================
--- trunk/libc/scripts/check-local-headers.sh (original)
+++ trunk/libc/scripts/check-local-headers.sh Sat Nov 17 17:50:14 2012
@@ -27,12 +27,13 @@
 
 # Search all dependency files for file names in the include directory.
 # There are a few system headers we are known to use.
-# These include Linux kernel headers (asm*, arch, and linux).
+# These include Linux kernel headers (asm*, arch, and linux),
+# and Mach kernel headers (mach).
 exec ${AWK} -v includedir="$includedir" '
 BEGIN {
   status = 0
   exclude = "^" includedir \
-    "/(.*-.*-.*/|)(asm[-/]|arch|linux/|selinux/|gd|nss3/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
+    "/(.*-.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|gd|nss3/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
 }
 /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
 {

Modified: trunk/libc/soft-fp/op-common.h
==============================================================================
--- trunk/libc/soft-fp/op-common.h (original)
+++ trunk/libc/soft-fp/op-common.h Sat Nov 17 17:50:14 2012
@@ -134,6 +134,12 @@
 #define _FP_PACK_SEMIRAW(fs, wc, X)				\
 do {								\
   _FP_ROUND(wc, X);						\
+  if (X##_e == 0 && !_FP_FRAC_ZEROP_##wc(X))			\
+	{ \
+	  if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT)		\
+	      || (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW))	\
+	    FP_SET_EXCEPTION(FP_EX_UNDERFLOW);			\
+	} \
   if (_FP_FRAC_HIGH_##fs(X)					\
       & (_FP_OVERFLOW_##fs >> 1))				\
     {								\
@@ -143,24 +149,15 @@
 	_FP_OVERFLOW_SEMIRAW(fs, wc, X);			\
     }								\
   _FP_FRAC_SRL_##wc(X, _FP_WORKBITS);				\
-  if (!_FP_EXP_NORMAL(fs, wc, X) && !_FP_FRAC_ZEROP_##wc(X))	\
+  if (X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X))	\
     {								\
-      if (X##_e == 0)						\
+      if (!_FP_KEEPNANFRACP)					\
 	{							\
-	  if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT)		\
-	      || (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW))	\
-	    FP_SET_EXCEPTION(FP_EX_UNDERFLOW);			\
+	  _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs);		\
+	  X##_s = _FP_NANSIGN_##fs;				\
 	}							\
       else							\
-	{							\
-	  if (!_FP_KEEPNANFRACP)				\
-	    {							\
-	      _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs);		\
-	      X##_s = _FP_NANSIGN_##fs;				\
-	    }							\
-	  else							\
-	    _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs;	\
-	}							\
+	_FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs;		\
     }								\
 } while (0)
 

Modified: trunk/libc/soft-fp/soft-fp.h
==============================================================================
--- trunk/libc/soft-fp/soft-fp.h (original)
+++ trunk/libc/soft-fp/soft-fp.h Sat Nov 17 17:50:14 2012
@@ -158,22 +158,24 @@
 #define _FP_ROUND(wc, X)			\
 do {						\
 	if (_FP_FRAC_LOW_##wc(X) & 7)		\
-	  FP_SET_EXCEPTION(FP_EX_INEXACT);	\
-	switch (FP_ROUNDMODE)			\
-	{					\
-	  case FP_RND_NEAREST:			\
-	    _FP_ROUND_NEAREST(wc,X);		\
-	    break;				\
-	  case FP_RND_ZERO:			\
-	    _FP_ROUND_ZERO(wc,X);		\
-	    break;				\
-	  case FP_RND_PINF:			\
-	    _FP_ROUND_PINF(wc,X);		\
-	    break;				\
-	  case FP_RND_MINF:			\
-	    _FP_ROUND_MINF(wc,X);		\
-	    break;				\
-	}					\
+	  {					\
+	    FP_SET_EXCEPTION(FP_EX_INEXACT);	\
+	    switch (FP_ROUNDMODE)		\
+	      {					\
+	      case FP_RND_NEAREST:		\
+		_FP_ROUND_NEAREST(wc,X);	\
+		break;				\
+	      case FP_RND_ZERO:			\
+		_FP_ROUND_ZERO(wc,X);		\
+		break;				\
+	      case FP_RND_PINF:			\
+		_FP_ROUND_PINF(wc,X);		\
+		break;				\
+	      case FP_RND_MINF:			\
+		_FP_ROUND_MINF(wc,X);		\
+		break;				\
+	      }					\
+	  }					\
 } while (0)
 
 #define FP_CLS_NORMAL		0

Modified: trunk/libc/stdio-common/tst-put-error.c
==============================================================================
--- trunk/libc/stdio-common/tst-put-error.c (original)
+++ trunk/libc/stdio-common/tst-put-error.c Sat Nov 17 17:50:14 2012
@@ -1,3 +1,22 @@
+/* Verify that print functions return error when there is an I/O error.
+
+   Copyright (C) 2005-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/>.  */
+
 #include <errno.h>
 #include <error.h>
 #include <stdio.h>
@@ -26,6 +45,13 @@
   printf ("fprintf = %d\n", n);
   if (n >= 0)
     error (EXIT_FAILURE, 0, "second fprintf succeeded");
+
+  /* Padded printing takes a different code path.  */
+  n = fprintf (fp, "%10000s", "foo");
+  printf ("fprintf = %d\n", n);
+  if (n >= 0)
+    error (EXIT_FAILURE, 0, "padded fprintf succeeded");
+
   return 0;
 }
 

Modified: trunk/libc/stdio-common/vfprintf.c
==============================================================================
--- trunk/libc/stdio-common/vfprintf.c (original)
+++ trunk/libc/stdio-common/vfprintf.c Sat Nov 17 17:50:14 2012
@@ -88,8 +88,18 @@
 
 # define PUT(F, S, N)	_IO_sputn ((F), (S), (N))
 # define PAD(Padchar) \
-  if (width > 0)							      \
-    done_add (_IO_padn (s, (Padchar), width))
+  do {									      \
+    if (width > 0)							      \
+      {									      \
+	unsigned int d = _IO_padn (s, (Padchar), width);		      \
+	if (__builtin_expect (d == EOF, 0))				      \
+	  {								      \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+	done_add (d);							      \
+      }									      \
+  } while (0)
 # define PUTC(C, F)	_IO_putc_unlocked (C, F)
 # define ORIENT		if (_IO_vtable_offset (s) == 0 && _IO_fwide (s, -1) != -1)\
 			  return -1
@@ -107,8 +117,18 @@
 
 # define PUT(F, S, N)	_IO_sputn ((F), (S), (N))
 # define PAD(Padchar) \
-  if (width > 0)							      \
-    done_add (_IO_wpadn (s, (Padchar), width))
+  do {									      \
+    if (width > 0)							      \
+      {									      \
+	unsigned int d = _IO_wpadn (s, (Padchar), width);		      \
+	if (__builtin_expect (d == EOF, 0))				      \
+	  {								      \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+	done_add (d);							      \
+      }									      \
+  } while (0)
 # define PUTC(C, F)	_IO_putwc_unlocked (C, F)
 # define ORIENT		if (_IO_fwide (s, 1) != 1) return -1
 

Modified: trunk/libc/sysdeps/ieee754/ldbl-128/s_log1pl.c
==============================================================================
--- trunk/libc/sysdeps/ieee754/ldbl-128/s_log1pl.c (original)
+++ trunk/libc/sysdeps/ieee754/ldbl-128/s_log1pl.c Sat Nov 17 17:50:14 2012
@@ -140,6 +140,12 @@
   if (((hx & 0x7fffffff) == 0)
       && (u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
     return xm1;
+
+  if ((hx & 0x7fffffff) < 0x3f8e0000)
+    {
+      if ((int) xm1 == 0)
+	return xm1;
+    }
 
   x = xm1 + 1.0L;
 

Modified: trunk/libc/sysdeps/posix/sysconf.c
==============================================================================
--- trunk/libc/sysdeps/posix/sysconf.c (original)
+++ trunk/libc/sysdeps/posix/sysconf.c Sat Nov 17 17:50:14 2012
@@ -790,80 +790,31 @@
       return -1;
 #endif
 
-    case _SC_XBS5_ILP32_OFF32:
-#ifdef _XBS5_ILP32_OFF32
-      return _XBS5_ILP32_OFF32;
-#else
-      return __sysconf_check_spec ("ILP32_OFF32");
-#endif
-    case _SC_XBS5_ILP32_OFFBIG:
-#ifdef _XBS5_ILP32_OFFBIG
-      return _XBS5_ILP32_OFFBIG;
-#else
-      return __sysconf_check_spec ("ILP32_OFFBIG");
-#endif
-    case _SC_XBS5_LP64_OFF64:
-#ifdef _XBS5_LP64_OFF64
-      return _XBS5_LP64_OFF64;
-#else
-      return __sysconf_check_spec ("LP64_OFF64");
-#endif
-    case _SC_XBS5_LPBIG_OFFBIG:
-#ifdef _XBS5_LPBIG_OFFBIG
-      return _XBS5_LPBIG_OFFBIG;
-#else
-      return __sysconf_check_spec ("LPBIG_OFFBIG");
-#endif
-
-    case _SC_V6_ILP32_OFF32:
-#ifdef _POSIX_V6_ILP32_OFF32
-      return _POSIX_V6_ILP32_OFF32;
-#else
-      return __sysconf_check_spec ("ILP32_OFF32");
-#endif
-    case _SC_V6_ILP32_OFFBIG:
-#ifdef _POSIX_V6_ILP32_OFFBIG
-      return _POSIX_V6_ILP32_OFFBIG;
-#else
-      return __sysconf_check_spec ("ILP32_OFFBIG");
-#endif
-    case _SC_V6_LP64_OFF64:
-#ifdef _POSIX_V6_LP64_OFF64
-      return _POSIX_V6_LP64_OFF64;
-#else
-      return __sysconf_check_spec ("LP64_OFF64");
-#endif
-    case _SC_V6_LPBIG_OFFBIG:
-#ifdef _POSIX_V6_LPBIG_OFFBIG
-      return _POSIX_V6_LPBIG_OFFBIG;
-#else
-      return __sysconf_check_spec ("LPBIG_OFFBIG");
-#endif
-
-    case _SC_V7_ILP32_OFF32:
-#ifdef _POSIX_V7_ILP32_OFF32
-      return _POSIX_V7_ILP32_OFF32;
-#else
-      return __sysconf_check_spec ("ILP32_OFF32");
-#endif
-    case _SC_V7_ILP32_OFFBIG:
-#ifdef _POSIX_V7_ILP32_OFFBIG
-      return _POSIX_V7_ILP32_OFFBIG;
-#else
-      return __sysconf_check_spec ("ILP32_OFFBIG");
-#endif
-    case _SC_V7_LP64_OFF64:
-#ifdef _POSIX_V7_LP64_OFF64
-      return _POSIX_V7_LP64_OFF64;
-#else
-      return __sysconf_check_spec ("LP64_OFF64");
-#endif
-    case _SC_V7_LPBIG_OFFBIG:
-#ifdef _POSIX_V7_LPBIG_OFFBIG
-      return _POSIX_V7_LPBIG_OFFBIG;
-#else
-      return __sysconf_check_spec ("LPBIG_OFFBIG");
-#endif
+#define START_ENV_GROUP(VERSION)		\
+      /* Empty.  */
+
+#define END_ENV_GROUP(VERSION)			\
+      /* Empty.  */
+
+#define KNOWN_ABSENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX)	\
+    case _SC_##SC_PREFIX##_##SUFFIX:				\
+      return _##ENV_PREFIX##_##SUFFIX;
+
+#define KNOWN_PRESENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX)	\
+    case _SC_##SC_PREFIX##_##SUFFIX:					\
+      return _##ENV_PREFIX##_##SUFFIX;
+
+#define UNKNOWN_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX)	\
+    case _SC_##SC_PREFIX##_##SUFFIX:				\
+      return __sysconf_check_spec (#SUFFIX);
+
+#include <posix/posix-envs.def>
+
+#undef START_ENV_GROUP
+#undef END_ENV_GROUP
+#undef KNOWN_ABSENT_ENVIRONMENT
+#undef KNOWN_PRESENT_ENVIRONMENT
+#undef UNKNOWN_ENVIRONMENT
 
     case _SC_XOPEN_LEGACY:
       return _XOPEN_LEGACY;

Modified: trunk/libc/sysdeps/sparc/sparc-ifunc.h
==============================================================================
--- trunk/libc/sysdeps/sparc/sparc-ifunc.h (original)
+++ trunk/libc/sysdeps/sparc/sparc-ifunc.h Sat Nov 17 17:50:14 2012
@@ -109,4 +109,6 @@
   }									\
   __asm__ (".type " #name ", %gnu_indirect_function");
 
+# define sparc_libc_ifunc(name, expr) sparc_libm_ifunc (name, expr)
+
 #endif	/* __ASSEMBLER__ */

Modified: trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
==============================================================================
--- trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile (original)
+++ trunk/libc/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile Sat Nov 17 17:50:14 2012
@@ -1,3 +1,11 @@
+ifeq ($(subdir),crypt)
+libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop
+endif
+
+ifeq ($(subdir),locale)
+localedef-aux += md5-crop
+endif
+
 ifeq ($(subdir),string)
 sysdep_routines += memcpy-ultra3 memcpy-niagara1 memcpy-niagara2 \
 		   memset-niagara1 memcpy-niagara4 memset-niagara4

Modified: trunk/libc/sysdeps/sparc/sparc64/multiarch/Makefile
==============================================================================
--- trunk/libc/sysdeps/sparc/sparc64/multiarch/Makefile (original)
+++ trunk/libc/sysdeps/sparc/sparc64/multiarch/Makefile Sat Nov 17 17:50:14 2012
@@ -1,3 +1,11 @@
+ifeq ($(subdir),crypt)
+libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop
+endif
+
+ifeq ($(subdir),locale)
+localedef-aux += md5-crop
+endif
+
 ifeq ($(subdir),string)
 sysdep_routines += memcpy-ultra3 memcpy-niagara1 memcpy-niagara2 \
 		   memset-niagara1 memcpy-niagara4 memset-niagara4

Modified: trunk/libc/sysdeps/unix/sysv/linux/fxstatat.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/fxstatat.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/fxstatat.c Sat Nov 17 17:50:14 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -23,6 +23,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <kernel_stat.h>
 

Modified: trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c Sat Nov 17 17:50:14 2012
@@ -22,6 +22,7 @@
 #include <unistd.h>
 #include <dirent.h>
 #include <stdlib.h>
+#include <inttypes.h>
 #include <sys/ioctl.h>
 #include <libc-internal.h>
 #include <asm/openpromio.h>
@@ -123,14 +124,14 @@
 		      int clkfreq_fd;
 
 		      __stpcpy (prop, "/clock-frequency");
-		      clkfreq_fd = open (node, O_RDONLY);
+		      clkfreq_fd = __open (node, O_RDONLY);
 		      if (clkfreq_fd != -1)
 			{
-			  if (read (clkfreq_fd, type_string,
-				    sizeof (type_string)) > 0)
+			  if (__read (clkfreq_fd, type_string,
+				      sizeof (type_string)) > 0)
 			    result = (hp_timing_t)
 			      strtoumax (type_string, NULL, 16);
-			  close (clkfreq_fd);
+			  __close (clkfreq_fd);
 			}
 		    }
 		  __close (fd);

Modified: trunk/libc/timezone/Makefile
==============================================================================
--- trunk/libc/timezone/Makefile (original)
+++ trunk/libc/timezone/Makefile Sat Nov 17 17:50:14 2012
@@ -54,6 +54,13 @@
 
 $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
 
+$(objpfx)zic.o $(objpfx)zdump.o: $(objpfx)version.h
+
+$(objpfx)version.h: $(common-objpfx)config.make
+	echo 'static char const TZVERSION[]="$(version)";' \
+	    > $@.new
+	mv -f $@.new $@
+
 tz-cflags = -DTZDIR='"$(zonedir)"' \
 	    -DTZDEFAULT='"$(localtime-file)"' \
 	    -DTZDEFRULES='"$(posixrules-file)"' \
@@ -106,9 +113,11 @@
 
 
 $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
-	sed -e 's%@KSH@%$(KSH)%g' \
-	    -e 's%@TZDIR@%$(zonedir)%g' \
-	    -e 's|@PKGVERSION@|$(PKGVERSION)|g' \
-	    -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' < $< > $@.new
+	sed -e 's|/bin/bash|$(KSH)|g' \
+	    -e '/TZDIR=/s|\$$(pwd)|$(zonedir)|' \
+	    -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
+	    -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
+	    -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
+	    < $< > $@.new
 	chmod 555 $@.new
 	mv -f $@.new $@

Modified: trunk/libc/timezone/README
==============================================================================
--- trunk/libc/timezone/README (original)
+++ trunk/libc/timezone/README Sat Nov 17 17:50:14 2012
@@ -1,10 +1,7 @@
 The files
 	zic.c zdump.c ialloc.c scheck.c tzfile.h
 	private.h tzselect.ksh checktab.awk
-come from the tzcode package by Arthur David Olson et.al.; the file
-	version.h
-has the contents that would be generated by that package's Makefile,
-and tzselect.ksh has been modified for use in glibc.
+come from the tzcode package by Arthur David Olson et.al.
 
 The files
 	africa antarctica asia australasia europe

Modified: trunk/libc/timezone/tzselect.ksh
==============================================================================
--- trunk/libc/timezone/tzselect.ksh (original)
+++ trunk/libc/timezone/tzselect.ksh Sat Nov 17 17:50:14 2012
@@ -1,9 +1,8 @@
-#! @KSH@
-
-TZVERSION=tz2012i
-PKGVERSION='@PKGVERSION@'
-REPORT_BUGS_TO='@REPORT_BUGS_TO@'
-
+#!/bin/bash
+
+PKGVERSION='(tzcode) '
+TZVERSION=see_Makefile
+REPORT_BUGS_TO=tz@xxxxxxxx
 
 # Ask the user about the time zone, and output the resulting TZ value to stdout.
 # Interact with the user via stderr and stdin.
@@ -32,7 +31,7 @@
 
 # Specify default values for environment variables if they are unset.
 : ${AWK=awk}
-: ${TZDIR=@TZDIR@}
+: ${TZDIR=$(pwd)}
 
 # Check for awk Posix compliance.
 ($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1
@@ -46,15 +45,14 @@
 Usage: tzselect
 Select a time zone interactively.
 
-For bug reporting instructions, please see:
-$REPORT_BUGS_TO.
+Report bugs to $REPORT_BUGS_TO.
 EOF
-    exit 0
+    exit
 elif [ "$1" = "--version" ]; then
     cat <<EOF
 tzselect $PKGVERSION$TZVERSION
 EOF
-    exit 0
+    exit
 fi
 
 # Make sure the tables are readable.

Removed: trunk/libc/timezone/version.h
==============================================================================
--- trunk/libc/timezone/version.h (original)
+++ trunk/libc/timezone/version.h (removed)
@@ -1,1 +1,0 @@
-static char const TZVERSION[]="tz2012i";

Modified: trunk/libc/timezone/zdump.c
==============================================================================
--- trunk/libc/timezone/zdump.c (original)
+++ trunk/libc/timezone/zdump.c Sat Nov 17 17:50:14 2012
@@ -11,7 +11,6 @@
 ** You can use this code to help in verifying other implementations.
 */
 
-#include "config.h"
 #include "stdio.h"	/* for stdout, stderr, perror */
 #include "string.h"	/* for strcpy */
 #include "sys/types.h"	/* for time_t */
@@ -273,8 +272,7 @@
 	(void) fprintf(stream,
 _("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\
 \n\
-For bug reporting instructions, please see:\n\
-%s.\n"),
+Report bugs to %s.\n"),
 		       progname, progname, REPORT_BUGS_TO);
 	exit(status);
 }
@@ -311,7 +309,7 @@
 	progname = argv[0];
 	for (i = 1; i < argc; ++i)
 		if (strcmp(argv[i], "--version") == 0) {
-		  (void) printf("zdump %s%s\n", PKGVERSION, TZVERSION);
+			(void) printf("zdump %s%s\n", PKGVERSION, TZVERSION);
 			exit(EXIT_SUCCESS);
 		} else if (strcmp(argv[i], "--help") == 0) {
 			usage(stdout, EXIT_SUCCESS);

Modified: trunk/libc/timezone/zic.c
==============================================================================
--- trunk/libc/timezone/zic.c (original)
+++ trunk/libc/timezone/zic.c Sat Nov 17 17:50:14 2012
@@ -3,7 +3,6 @@
 ** 2006-07-17 by Arthur David Olson.
 */
 
-#include "config.h"
 #include "version.h"
 #include "private.h"
 #include "locale.h"
@@ -427,8 +426,7 @@
 [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
 \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\
 \n\
-For bug reporting instructions, please see:\n\
-%s.\n"),
+Report bugs to %s.\n"),
 		       progname, progname, REPORT_BUGS_TO);
 	exit(status);
 }
@@ -2536,8 +2534,8 @@
 				++cp;
 		if (cp - string == 0)
 mp = _("time zone abbreviation lacks alphabetic at start");
-		if (noise && cp - string > 3)
-mp = _("time zone abbreviation has more than 3 alphabetics");
+		if (noise && cp - string < 3)
+mp = _("time zone abbreviation has fewer than 3 alphabetics");
 		if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN)
 mp = _("time zone abbreviation has too many alphabetics");
 		if (mp == NULL && (*cp == '+' || *cp == '-')) {

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