summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-11-06 23:03:08 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-11-06 23:03:08 +0000
commit036dfd44bcc8ed8e97dcd9c763f61d3b59796941 (patch)
tree27fe47c83800c73d61262ea4e70b211f6753e516
parentfe2ed5aaa408e1ab996a9fe1595a05634208a79c (diff)
Merge changes between r24305 and r24468 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@24469 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r--libc/ChangeLog278
-rw-r--r--libc/INSTALL2
-rw-r--r--libc/Makeconfig8
-rw-r--r--libc/Makefile8
-rw-r--r--libc/NEWS37
-rw-r--r--libc/aclocal.m46
-rw-r--r--libc/benchtests/exp-inputs581
-rw-r--r--libc/benchtests/pow-inputs503
-rw-r--r--libc/config.h.in6
-rwxr-xr-xlibc/configure4
-rw-r--r--libc/configure.ac (renamed from libc/configure.in)6
-rw-r--r--libc/elf/rtld.c8
-rw-r--r--libc/include/stdc-predef.h24
-rw-r--r--libc/libidn/ChangeLog6
-rw-r--r--libc/libidn/configure2
-rw-r--r--libc/libidn/configure.ac (renamed from libc/libidn/configure.in)0
-rw-r--r--libc/locale/iso-639.def8
-rw-r--r--libc/locale/locarchive.h2
-rw-r--r--libc/locale/programs/localedef.c2
-rw-r--r--libc/locale/programs/localedef.h6
-rw-r--r--libc/locale/programs/locarchive.c27
-rw-r--r--libc/locale/programs/locfile.c1
-rw-r--r--libc/localedata/ChangeLog115
-rw-r--r--libc/localedata/SUPPORTED1
-rw-r--r--libc/localedata/locales/anp_IN205
-rw-r--r--libc/localedata/locales/ja_JP7
-rw-r--r--libc/localedata/locales/ka_GE9
-rw-r--r--libc/localedata/locales/kk_KZ7
-rw-r--r--libc/localedata/locales/kl_GL6
-rw-r--r--libc/localedata/locales/kn_IN7
-rw-r--r--libc/localedata/locales/ko_KR7
-rw-r--r--libc/localedata/locales/kok_IN4
-rw-r--r--libc/localedata/locales/ks_IN6
-rw-r--r--libc/localedata/locales/ku_TR9
-rw-r--r--libc/localedata/locales/kw_GB7
-rw-r--r--libc/localedata/locales/ky_KG7
-rw-r--r--libc/localedata/locales/lg_UG7
-rw-r--r--libc/localedata/locales/lij_IT4
-rw-r--r--libc/localedata/locales/lt_LT7
-rw-r--r--libc/localedata/locales/lv_LV7
-rw-r--r--libc/localedata/locales/mag_IN5
-rw-r--r--libc/localedata/locales/mai_IN5
-rw-r--r--libc/localedata/locales/mg_MG6
-rw-r--r--libc/localedata/locales/mhr_RU4
-rw-r--r--libc/localedata/locales/mi_NZ6
-rw-r--r--libc/localedata/locales/ml_IN7
-rw-r--r--libc/localedata/locales/mni_IN5
-rw-r--r--libc/localedata/locales/mr_IN7
-rw-r--r--libc/localedata/locales/ms_MY7
-rw-r--r--libc/localedata/locales/mt_MT7
-rw-r--r--libc/localedata/locales/nb_NO7
-rw-r--r--libc/localedata/locales/ne_NP7
-rw-r--r--libc/localedata/locales/nhn_MX5
-rw-r--r--libc/localedata/locales/niu_NU2
-rw-r--r--libc/localedata/locales/niu_NZ2
-rw-r--r--libc/localedata/locales/nl_AW3
-rw-r--r--libc/localedata/locales/nl_BE4
-rw-r--r--libc/localedata/locales/nn_NO6
-rw-r--r--libc/localedata/locales/nr_ZA5
-rw-r--r--libc/localedata/locales/oc_FR9
-rw-r--r--libc/localedata/locales/or_IN6
-rw-r--r--libc/localedata/locales/os_RU7
-rw-r--r--libc/localedata/locales/pa_IN7
-rw-r--r--libc/localedata/locales/pa_PK6
-rw-r--r--libc/localedata/locales/pl_PL7
-rw-r--r--libc/localedata/locales/ps_AF55
-rw-r--r--libc/localedata/locales/pt_BR7
-rw-r--r--libc/localedata/locales/pt_PT7
-rw-r--r--libc/localedata/locales/quz_PE5
-rw-r--r--libc/localedata/locales/ru_RU7
-rw-r--r--libc/localedata/locales/ru_UA7
-rw-r--r--libc/localedata/locales/sa_IN7
-rw-r--r--libc/localedata/locales/sat_IN5
-rw-r--r--libc/localedata/locales/sc_IT7
-rw-r--r--libc/localedata/locales/sd_IN7
-rw-r--r--libc/localedata/locales/sd_IN@devanagari6
-rw-r--r--libc/localedata/locales/se_NO7
-rw-r--r--libc/localedata/locales/si_LK6
-rw-r--r--libc/localedata/locales/sk_SK7
-rw-r--r--libc/localedata/locales/sl_SI7
-rw-r--r--libc/localedata/locales/sq_AL7
-rw-r--r--libc/localedata/locales/sq_MK9
-rw-r--r--libc/localedata/locales/ss_ZA5
-rw-r--r--libc/localedata/locales/st_ZA5
-rw-r--r--libc/localedata/locales/sv_SE4
-rw-r--r--libc/localedata/locales/sw_KE6
-rw-r--r--libc/localedata/locales/sw_TZ6
-rw-r--r--libc/localedata/locales/szl_PL5
-rw-r--r--libc/localedata/locales/ta_IN7
-rw-r--r--libc/localedata/locales/ta_LK6
-rw-r--r--libc/localedata/locales/te_IN8
-rw-r--r--libc/localedata/locales/tg_TJ7
-rw-r--r--libc/localedata/locales/tl_PH7
-rw-r--r--libc/localedata/locales/tn_ZA5
-rw-r--r--libc/localedata/locales/tr_CY4
-rw-r--r--libc/localedata/locales/tr_TR4
-rw-r--r--libc/localedata/locales/ts_ZA5
-rw-r--r--libc/localedata/locales/tt_RU7
-rw-r--r--libc/localedata/locales/tt_RU@iqtelif7
-rw-r--r--libc/localedata/locales/ug_CN21
-rw-r--r--libc/localedata/locales/unm_US6
-rw-r--r--libc/localedata/locales/ur_IN7
-rw-r--r--libc/localedata/locales/ur_PK7
-rw-r--r--libc/localedata/locales/uz_UZ9
-rw-r--r--libc/localedata/locales/uz_UZ@cyrillic9
-rw-r--r--libc/localedata/locales/ve_ZA8
-rw-r--r--libc/localedata/locales/vi_VN7
-rw-r--r--libc/localedata/locales/wa_BE9
-rw-r--r--libc/localedata/locales/wal_ET5
-rw-r--r--libc/localedata/locales/wo_SN7
-rw-r--r--libc/localedata/locales/xh_ZA3
-rw-r--r--libc/localedata/locales/yi_US9
-rw-r--r--libc/localedata/locales/yue_HK4
-rw-r--r--libc/localedata/locales/zh_HK3
-rw-r--r--libc/localedata/locales/zh_SG4
-rw-r--r--libc/malloc/Makefile2
-rw-r--r--libc/malloc/hooks.c8
-rw-r--r--libc/malloc/malloc.c51
-rw-r--r--libc/malloc/tst-memalign.c15
-rw-r--r--libc/malloc/tst-posix_memalign.c10
-rw-r--r--libc/manual/crypt.texi10
-rw-r--r--libc/manual/install.texi2
-rw-r--r--libc/manual/llio.texi4
-rw-r--r--libc/manual/maint.texi8
-rw-r--r--libc/manual/math.texi2
-rw-r--r--libc/manual/memory.texi6
-rw-r--r--libc/manual/pattern.texi7
-rw-r--r--libc/manual/socket.texi8
-rw-r--r--libc/nptl/ChangeLog9
-rwxr-xr-xlibc/nptl/sysdeps/pthread/configure2
-rw-r--r--libc/nptl/sysdeps/pthread/configure.ac (renamed from libc/nptl/sysdeps/pthread/configure.in)0
-rw-r--r--libc/nptl/sysdeps/x86_64/configure2
-rw-r--r--libc/nptl/sysdeps/x86_64/configure.ac (renamed from libc/nptl/sysdeps/x86_64/configure.in)0
-rw-r--r--libc/nscd/Makefile2
-rw-r--r--libc/nss/nss_files/files-XXX.c59
-rw-r--r--libc/ports/ChangeLog12
-rw-r--r--libc/ports/ChangeLog.aarch646
-rw-r--r--libc/ports/ChangeLog.alpha9
-rw-r--r--libc/ports/ChangeLog.am336
-rw-r--r--libc/ports/ChangeLog.arm20
-rw-r--r--libc/ports/ChangeLog.hppa13
-rw-r--r--libc/ports/ChangeLog.ia6413
-rw-r--r--libc/ports/ChangeLog.m68k6
-rw-r--r--libc/ports/ChangeLog.microblaze6
-rw-r--r--libc/ports/ChangeLog.mips12
-rw-r--r--libc/ports/ChangeLog.tile9
-rw-r--r--libc/ports/README4
-rw-r--r--libc/ports/sysdeps/alpha/configure2
-rw-r--r--libc/ports/sysdeps/alpha/configure.ac (renamed from libc/ports/sysdeps/alpha/configure.in)0
-rwxr-xr-xlibc/ports/sysdeps/arm/armv7/configure2
-rw-r--r--libc/ports/sysdeps/arm/armv7/configure.ac (renamed from libc/ports/sysdeps/arm/armv7/configure.in)0
-rw-r--r--libc/ports/sysdeps/arm/bits/predefs.h35
-rw-r--r--libc/ports/sysdeps/arm/configure2
-rw-r--r--libc/ports/sysdeps/arm/configure.ac (renamed from libc/ports/sysdeps/arm/configure.in)0
-rw-r--r--libc/ports/sysdeps/arm/preconfigure4
-rw-r--r--libc/ports/sysdeps/arm/preconfigure.ac (renamed from libc/ports/sysdeps/arm/preconfigure.in)2
-rw-r--r--libc/ports/sysdeps/hppa/configure2
-rw-r--r--libc/ports/sysdeps/hppa/configure.ac (renamed from libc/ports/sysdeps/hppa/configure.in)0
-rw-r--r--libc/ports/sysdeps/ia64/configure2
-rw-r--r--libc/ports/sysdeps/ia64/configure.ac (renamed from libc/ports/sysdeps/ia64/configure.in)0
-rw-r--r--libc/ports/sysdeps/mips/configure2
-rw-r--r--libc/ports/sysdeps/mips/configure.ac (renamed from libc/ports/sysdeps/mips/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/aarch64/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/alpha/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/alpha/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/alpha/configure.in)0
-rwxr-xr-xlibc/ports/sysdeps/unix/sysv/linux/am33/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/am33/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/am33/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/arm/configure4
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/arm/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/arm/configure.in)2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/ia64/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/ia64/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/ia64/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/m68k/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/m68k/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/m68k/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/microblaze/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/microblaze/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/microblaze/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/mips/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/mips/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/mips/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/tile/configure.in)0
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac (renamed from libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure.in)0
-rw-r--r--libc/posix/glob.c5
-rw-r--r--libc/posix/tst-gnuglob.c10
-rw-r--r--libc/rt/tst-shm.c8
-rw-r--r--libc/stdio-common/Makefile1
-rw-r--r--libc/stdio-common/tst-sscanf.c34
-rw-r--r--libc/stdio-common/vfscanf.c2
-rw-r--r--libc/stdlib/div.c22
-rw-r--r--libc/stdlib/ldiv.c22
-rw-r--r--libc/stdlib/lldiv.c22
-rw-r--r--libc/sunrpc/rpc_main.c3
-rw-r--r--libc/sysdeps/gnu/configure2
-rw-r--r--libc/sysdeps/gnu/configure.ac (renamed from libc/sysdeps/gnu/configure.in)0
-rwxr-xr-xlibc/sysdeps/i386/configure2
-rw-r--r--libc/sysdeps/i386/configure.ac (renamed from libc/sysdeps/i386/configure.in)0
-rw-r--r--libc/sysdeps/ieee754/dbl-64/sincos32.c14
-rwxr-xr-xlibc/sysdeps/ieee754/ldbl-opt/configure2
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/configure.ac (renamed from libc/sysdeps/ieee754/ldbl-opt/configure.in)0
-rw-r--r--libc/sysdeps/mach/configure2
-rw-r--r--libc/sysdeps/mach/configure.ac (renamed from libc/sysdeps/mach/configure.in)0
-rwxr-xr-xlibc/sysdeps/mach/hurd/configure2
-rw-r--r--libc/sysdeps/mach/hurd/configure.ac (renamed from libc/sysdeps/mach/hurd/configure.in)0
-rw-r--r--libc/sysdeps/posix/getaddrinfo.c33
-rwxr-xr-xlibc/sysdeps/powerpc/configure2
-rw-r--r--libc/sysdeps/powerpc/configure.ac (renamed from libc/sysdeps/powerpc/configure.in)0
-rw-r--r--libc/sysdeps/powerpc/powerpc32/configure2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/configure.ac (renamed from libc/sysdeps/powerpc/powerpc32/configure.in)0
-rw-r--r--libc/sysdeps/powerpc/powerpc64/configure2
-rw-r--r--libc/sysdeps/powerpc/powerpc64/configure.ac (renamed from libc/sysdeps/powerpc/powerpc64/configure.in)0
-rw-r--r--libc/sysdeps/powerpc/powerpc64/power7/stpcpy.S (renamed from libc/bits/predefs.h)24
-rw-r--r--libc/sysdeps/powerpc/powerpc64/power7/strcpy.S274
-rw-r--r--libc/sysdeps/powerpc/powerpc64/stpcpy.S99
-rw-r--r--libc/sysdeps/powerpc/powerpc64/strcpy.S144
-rw-r--r--libc/sysdeps/s390/s390-32/configure2
-rw-r--r--libc/sysdeps/s390/s390-32/configure.ac (renamed from libc/sysdeps/s390/s390-32/configure.in)0
-rw-r--r--libc/sysdeps/s390/s390-64/configure2
-rw-r--r--libc/sysdeps/s390/s390-64/configure.ac (renamed from libc/sysdeps/s390/s390-64/configure.in)0
-rw-r--r--libc/sysdeps/sh/configure2
-rw-r--r--libc/sysdeps/sh/configure.ac (renamed from libc/sysdeps/sh/configure.in)0
-rw-r--r--libc/sysdeps/sparc/configure2
-rw-r--r--libc/sysdeps/sparc/configure.ac (renamed from libc/sysdeps/sparc/configure.in)0
-rw-r--r--libc/sysdeps/sparc/sparc32/fpu/s_fdim.S3
-rw-r--r--libc/sysdeps/unix/sysv/linux/configure2
-rw-r--r--libc/sysdeps/unix/sysv/linux/configure.ac (renamed from libc/sysdeps/unix/sysv/linux/configure.in)0
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/configure2
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/configure.ac (renamed from libc/sysdeps/unix/sysv/linux/powerpc/configure.in)0
-rw-r--r--libc/sysdeps/unix/sysv/linux/shm_open.c14
-rw-r--r--libc/sysdeps/x86_64/configure2
-rw-r--r--libc/sysdeps/x86_64/configure.ac (renamed from libc/sysdeps/x86_64/configure.in)0
-rw-r--r--libc/sysdeps/x86_64/preconfigure2
-rw-r--r--libc/sysdeps/x86_64/preconfigure.ac (renamed from libc/sysdeps/x86_64/preconfigure.in)0
-rw-r--r--libc/time/strptime_l.c6
-rw-r--r--libc/time/tst-strptime.c1
-rw-r--r--libc/time/tzfile.c26
239 files changed, 3095 insertions, 576 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index cb3651ac8..3b65d5a7b 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,281 @@
+2013-11-06 David S. Miller <davem@davemloft.net>
+
+ [BZ #15985]
+ * sysdeps/sparc/sparc32/fpu/s_fdim.S (__fdim): Do not use fnegd
+ on pre-v9 cpus, use a fnegs+fmovs sequence instead.
+
+2013-11-06 Will Newton <will.newton@linaro.org>
+
+ * manual/memory.texi (Malloc Examples): Remove register
+ keyword from examples.
+
+2013-11-04 Chris Leonard <cjl@sugarlabs.org>
+
+ * locale/iso-639.def: Correct Walaita (wal) and add Unami Delaware (unm).
+
+2013-11-04 Joseph Myers <joseph@codesourcery.com>
+
+ * include/stdc-predef.h [__GCC_IEC_559] (__STDC_IEC_559__): Define
+ depending on [__GCC_IEC_559 > 0].
+ [__GCC_IEC_559_COMPLEX] (__STDC_IEC_559_COMPLEX__): Define
+ depending on [__GCC_IEC_559_COMPLEX > 0].
+
+2013-11-03 Chris Leonard <cjl@sugarlabs.org>
+
+ * locale/iso-639.def: Add Quechua, Southern (quz) and Silesian (szl)
+ to iso-639.def.
+
+2013-11-03 Ondřej Bílka <neleai@seznam.cz>
+
+ * elf/rtld.c: Remove unused NONTLS_INIT_TP.
+
+2013-11-01 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #16112]
+ * malloc/malloc (malloc_info): Do not handle first bin as
+ special case.
+
+2013-11-01 Chris Leonard <cjl@sugarlabs.org>
+
+ * locale/iso-639.def: Add Central Nahuatl (nhn).
+
+2013-11-01 Bruno Haible <bruno@clisp.org>
+
+ [BZ #7003]
+ * manual/math.texi (BSD Random): Specify range upper bound as
+ in POSIX.
+
+2013-10-31 Chris Leonard <cjl@sugarlabs.org>
+
+ * locale/iso-639.def: Add Meadow Mari (mhr).
+
+2013-10-31 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #14752], [BZ #15763]
+ * sysdeps/unix/sysv/linux/shm_open.c (shm_open, shm_unlink):
+ Validate name.
+ * rt/tst_shm.c: Add test for escaping directory.
+
+2013-10-31 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15917]
+ * stdio-common/vfscanf.c (_IO_vfwscanf): Handle leading '0' not
+ followed by 'x' as part of digit sequence.
+ * stdio-common/tst-sscanf.c (double_tests2): New tests.
+
+2013-10-31 Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+
+ [BZ #16037]
+ * configure.ac: allow GNU Make 4.0 and greater.
+ * configure: Regenerated.
+
+2013-10-30 Will Newton <will.newton@linaro.org>
+
+ [BZ #16038]
+ * malloc/hooks.c (memalign_check): Limit alignment to the
+ maximum representable power of two.
+ * malloc/malloc.c (__libc_memalign): Likewise.
+ * malloc/tst-memalign.c (do_test): Add test for very
+ large alignment values.
+ * malloc/tst-posix_memalign.c (do_test): Likewise.
+
+2013-10-30 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #11087]
+ * malloc/malloc.c (sysmalloc): Compute statistics atomically.
+ (munmap_chunk): Likewise.
+ (mremap_chunk): Likewise.
+
+2013-10-30 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #15799]
+ * stdlib/div.c (div): Remove obsolete code.
+ * stdlib/ldiv.c (ldiv): Likewise.
+ * stdlib/lldiv.c (lldiv): Likewise.
+
+2013-10-30 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #16071]
+ * nss/nss_files/files-XXX.c (get_contents_ret): New
+ enumerator.
+ (get_contents): New function.
+ (internal_getent): Use it. Expand size of LINEBUFLEN.
+
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * configure.in: Moved to ...
+ * configure.ac: ... here. Change reference to configure.in
+ to configure.ac.
+ * sysdeps/arm/preconfigure.ac: ... here.
+ configure.in to configure.ac.
+ * sysdeps/gnu/configure.in: Moved to ...
+ * sysdeps/gnu/configure.ac: ... here.
+ * sysdeps/i386/configure.in: Moved to ...
+ * sysdeps/i386/configure.ac: ... here.
+ * sysdeps/ieee754/ldbl-opt/configure.in: Moved to ...
+ * sysdeps/ieee754/ldbl-opt/configure.ac: ... here.
+ * sysdeps/mach/configure.in: Moved to ...
+ * sysdeps/mach/configure.ac: ... here.
+ * sysdeps/mach/hurd/configure.in: Moved to ...
+ * sysdeps/mach/hurd/configure.ac: ... here.
+ * sysdeps/powerpc/configure.in: Moved to ...
+ * sysdeps/powerpc/configure.ac: ... here.
+ * sysdeps/powerpc/powerpc32/configure.in: Moved to ...
+ * sysdeps/powerpc/powerpc32/configure.ac: ... here.
+ * sysdeps/powerpc/powerpc64/configure.in: Moved to ...
+ * sysdeps/powerpc/powerpc64/configure.ac: ... here.
+ * sysdeps/s390/s390-32/configure.in: Moved to ...
+ * sysdeps/s390/s390-32/configure.ac: ... here.
+ * sysdeps/s390/s390-64/configure.in: Moved to ...
+ * sysdeps/s390/s390-64/configure.ac: ... here.
+ * sysdeps/sh/configure.in: Moved to ...
+ * sysdeps/sh/configure.ac: ... here.
+ * sysdeps/sparc/configure.in: Moved to ...
+ * sysdeps/sparc/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/powerpc/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/powerpc/configure.ac: ... here.
+ * sysdeps/x86_64/configure.in: Moved to ...
+ * sysdeps/x86_64/configure.ac: ... here.
+ * sysdeps/x86_64/preconfigure.in: Moved to ...
+ * sysdeps/x86_64/preconfigure.ac: ... here.
+ * aclocal.m4: Change reference to configure.in to configure.ac.
+ * config.h.in: Likewise.
+ * manual/install.texi: Likewise.
+ * manual/maint.texi: Likewise.
+ * Makefile: Likewise.
+ * malloc/Makefile: Likewise.
+ * nscd/Makefile: Likewise.
+ * Makeconfig: Change reference to configure.in and
+ preconfigure.in to configure.ac and preconfigure.ac
+ respectively.
+ * INSTALL: Regenerated.
+ * configure: Likewise.
+ * sysdeps/gnu/configure: Likewise.
+ * sysdeps/i386/configure: Likewise.
+ * sysdeps/ieee754/ldbl-opt/configure: Likewise.
+ * sysdeps/mach/configure: Likewise.
+ * sysdeps/mach/hurd/configure: Likewise.
+ * sysdeps/powerpc/configure: Likewise.
+ * sysdeps/powerpc/powerpc32/configure: Likewise.
+ * sysdeps/powerpc/powerpc64/configure: Likewise.
+ * sysdeps/s390/s390-32/configure: Likewise.
+ * sysdeps/s390/s390-64/configure: Likewise.
+ * sysdeps/sh/configure: Likewise.
+ * sysdeps/sparc/configure: Likewise.
+ * sysdeps/unix/sysv/linux/configure: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/configure: Likewise.
+ * sysdeps/x86_64/configure: Likewise.
+ * sysdeps/x86_64/preconfigure: Likewise.
+
+2013-10-29 Andreas Schwab <schwab@suse.de>
+
+ * stdio-common/Makefile (tst-swscanf-ENV): Define.
+
+2013-10-28 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/pow-inputs: Add new inputs.
+
+ * benchtests/exp-inputs: Add new inputs.
+
+ * sysdeps/ieee754/dbl-64/sincos32.c (__sin32): Consolidate
+ conditional check for return value.
+ (__cos32): Likewise.
+
+2013-10-26 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Add word load/store
+ to provide a boost for large inputs with word alignment.
+ * sysdeps/powerpc/powerpc64/stpcpy.S (__stpcpy): Rewrite
+ implementation based on optimized PPC64 strcpy.
+ * sysdeps/powerpc/powerpc64/power7/strcpy.S: New file: optimized
+ strcpy for PPC64/POWER7 based on both doubleword and word load/store.
+ * sysdeps/powerpc/powerpc64/power7/stpcpy.S: New file: optimized
+ stpcpy for PPC64/POWER7 based on PPC64/POWER7 strcpy.
+
+2013-10-25 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #2801]
+ * manual/socket.texi (Host Names): Fix gethostbyname_r example.
+
+2013-10-25 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #14876]
+ * time/strptime_l.c (__strptime_internal): 14876 Read timezone entry.
+ * time/tst-strptime.c (day_tests): Add testcase.
+
+2013-10-25 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #14029]
+ * manual/pattern.texi: Acknowledge that fnmatch can fail.
+
+2013-10-25 Fabrice Bauzac <fbauzac@debian71.nce.amadeus.net>
+
+ [BZ #16074]
+ * manual/llio.texi (Memory-mapped I/O): Indicate that mmap returns
+ MAP_FAILED on error.
+
+2013-10-25 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #16072]
+ * sysdeps/posix/getaddrinfo.c (gethosts): Allocate tmpbuf on
+ heap for large requests.
+
+2013-10-25 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #9954]
+ * sysdeps/posix/getaddrinfo.c (rfc3484_sort): do not assign native
+ result if the result has no associated interface.
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): correctly detect
+ interface for all 127.X.Y.Z addresses.
+
+2013-10-24 Chris Leonard <cjl@sugarlabs.org>
+
+ * locale/iso-639.def: Add Ligurian (lij)
+
+2013-10-21 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #15825]
+ * sunrpc/rpc_main.c: Document rpcgen -5.
+
+2013-10-19 Michael Stahl <mstahl@redhat.com>
+
+ * elf/rtld.c (do_preload): Print the reason why preloading failed.
+
+2013-10-19 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #10278]
+ * posix/glob.c: Match only directories when trailing slash is present.
+ * posix/tst-gnuglob.c (my_opendir): Do not open files.
+ (main): Add testcase.
+
+2013-10-19 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #15670]
+ * time/tzfile.c (__tzfile_read): Replace alloca with malloc.
+
+2013-10-18 Carlos O'Donell <carlos@redhat.com>
+
+ * manual/crypt.texi (Cryptographic Functions): Using SunRPC and
+ AUTH_DES will prevent FIPS 140-2 compliance. Add vindex for
+ AUTH_DES and cindex for FIPS 140-2.
+ (DES Encryption): Add cindex FIPS 46-3.
+
+ * locale/locarchive.h (struct locarhandle): Add fname.
+ * locale/programs/localedef.c (main): Pass ARGV[remaining]
+ if an optional argument was specified to --list-archive,
+ otherwise NULL.
+ * locale/programs/locarchive.c (show_archive_content): Take new
+ argument fname and pass it via ah.fname to open_archive.
+ * locale/programs/localedef.h: Update decl.
+ (open_archive): If AH->fname is non-null, open that file
+ rather than the default file name, and don't ignore ENOENT.
+ (create_archive): Set AH.fname to NULL.
+ (delete_locales_from_archive): Likewise.
+ (add_locales_to_archive): Likewise.
+ * locale/programs/locfile.c (write_all_categories): Likewise.
+
2013-10-18 Joseph Myers <joseph@codesourcery.com>
Aldy Hernandez <aldyh@redhat.com>
diff --git a/libc/INSTALL b/libc/INSTALL
index 9d55fccca..ec960ad2a 100644
--- a/libc/INSTALL
+++ b/libc/INSTALL
@@ -380,7 +380,7 @@ build the GNU C Library:
should definitely upgrade `sed'.
-If you change any of the `configure.in' files you will also need
+If you change any of the `configure.ac' files you will also need
* GNU `autoconf' 2.53 or higher
diff --git a/libc/Makeconfig b/libc/Makeconfig
index dc9363c4c..36ba506cd 100644
--- a/libc/Makeconfig
+++ b/libc/Makeconfig
@@ -88,16 +88,16 @@ $(common-objpfx)config.status: $(..)version.h $(..)configure \
$(wildcard $(dir)/Implies) \
$(patsubst %.in,%,\
$(firstword $(wildcard \
- $(addprefix $(dir)/,configure configure.in))))) \
+ $(addprefix $(dir)/,configure configure.ac))))) \
$(patsubst %.in,%,\
- $(wildcard $(..)sysdeps/*/preconfigure $(..)sysdeps/*/preconfigure.in)) \
+ $(wildcard $(..)sysdeps/*/preconfigure $(..)sysdeps/*/preconfigure.ac)) \
$(patsubst %.in,%,\
$(foreach add-on,$(add-ons),\
$(firstword $(wildcard \
$(addprefix $(firstword $(filter /%,$(add-on)) $(..)$(add-on))/,\
- configure configure.in))) \
+ configure configure.ac))) \
$(wildcard $(addprefix $(firstword $(filter /%,$(add-on)) $(..)$(add-on))/,\
- sysdeps/*/preconfigure sysdeps/*/preconfigure.in))))
+ sysdeps/*/preconfigure sysdeps/*/preconfigure.ac))))
@cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \
echo The GNU C library has not been configured. >&2; \
echo Run \`configure\' to configure it before building. >&2; \
diff --git a/libc/Makefile b/libc/Makefile
index 1ff2a785b..96cfd10fe 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -38,9 +38,9 @@ chmod a-w$(patsubst %,$(comma)a+x,$(filter .,$(@D))) $@.new
mv -f $@.new $@
endef
-configure: configure.in aclocal.m4; $(autoconf-it)
-%/configure: %/configure.in aclocal.m4; $(autoconf-it)
-%/preconfigure: %/preconfigure.in aclocal.m4; $(autoconf-it)
+configure: configure.ac aclocal.m4; $(autoconf-it)
+%/configure: %/configure.ac aclocal.m4; $(autoconf-it)
+%/preconfigure: %/preconfigure.ac aclocal.m4; $(autoconf-it)
endif # $(AUTOCONF) = no
@@ -59,7 +59,7 @@ endif # $(AUTOCONF) = no
$(addprefix install-, no-libc.a bin lib data headers others)
headers := limits.h values.h features.h gnu-versions.h bits/libc-lock.h \
- bits/xopen_lim.h gnu/libc-version.h stdc-predef.h bits/predefs.h
+ bits/xopen_lim.h gnu/libc-version.h stdc-predef.h
echo-headers: subdir_echo-headers
diff --git a/libc/NEWS b/libc/NEWS
index 9e32ba5e2..bb1db5b0a 100644
--- a/libc/NEWS
+++ b/libc/NEWS
@@ -9,13 +9,15 @@ Version 2.19
* The following bugs are resolved with this release:
- 156, 431, 832, 13028, 13982, 13985, 14155, 14547, 14699, 14910, 15048,
- 15218, 15277, 15308, 15362, 15400, 15427, 15522, 15531, 15532, 15608,
- 15609, 15610, 15632, 15640, 15672, 15680, 15681, 15723, 15734, 15735,
- 15736, 15748, 15749, 15754, 15760, 15764, 15797, 15844, 15847, 15849,
- 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893,
- 15895, 15897, 15905, 15909, 15919, 15921, 15923, 15939, 15948, 15963,
- 15966, 15988, 16032, 16034, 16036, 16041.
+ 156, 431, 832, 2801, 7003, 9954, 10278, 11087, 13028, 13982, 13985,
+ 14029, 14155, 14547, 14699, 14752, 14876, 14910, 15048, 15218, 15277,
+ 15308, 15362, 15400, 15427, 15522, 15531, 15532, 15608, 15609, 15610,
+ 15632, 15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736,
+ 15748, 15749, 15754, 15760, 15763, 15764, 15797, 15799, 15825, 15844,
+ 15847, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890,
+ 15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921, 15923,
+ 15939, 15948, 15963, 15966, 15985, 15988, 16032, 16034, 16036, 16037,
+ 16041, 16071, 16072, 16074, 16078, 16112.
* CVE-2012-4412 The strcoll implementation caches indices and rules for
large collation sequences to optimize multiple passes. This cache
@@ -44,8 +46,11 @@ Version 2.19
heap when passed very large allocation size values (Bugzilla #15855,
#15856, #15857).
-* New locales: ak_GH, cmn_TW, hak_TW, lzh_TW, nan_TW, quz_PE, pap_AW, pap_CW,
- ar_SS.
+* CVE-2013-4458 Stack overflow in getaddrinfo with large number of results
+ for AF_INET6 has been fixed (Bugzilla #16072).
+
+* New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW,
+ pap_CW, quz_PE
* Substantially revised locales: gd_GB, ht_HT
@@ -60,6 +65,18 @@ Version 2.19
command-line options to generate locales for a different system from that
for which the C library was built.
+* Binary locale files now only depend on the endianness of the system for
+ which they are generated and not on other properties of that system. As a
+ consequence, binary files generated with new localedef may be incompatible
+ with old versions of the GNU C Library, and binary files generated with
+ old localedef may be incompatible with this version of the GNU C Library,
+ in the following circumstances:
+
+ + Locale files may be incompatible on m68k systems.
+
+ + Locale archive files (but not separate files for individual locales) may
+ be incompatible on systems where plain "char" is signed.
+
* The configure option --disable-versioning has been removed. Builds with
--disable-versioning had not worked for several years.
@@ -69,6 +86,8 @@ Version 2.19
* SystemTap probes for malloc have been introduced.
* Support for powerpc64le has been added.
+
+* The soft-float powerpc port now supports e500 processors.
Version 2.18
diff --git a/libc/aclocal.m4 b/libc/aclocal.m4
index 64351d0a0..bc48586dc 100644
--- a/libc/aclocal.m4
+++ b/libc/aclocal.m4
@@ -9,8 +9,8 @@ m4_defn([AC_AUTOCONF_VERSION])
), [63])])dnl
dnl
dnl We define the macro GLIBC_PROVIDES to do an AC_PROVIDE for each macro
-dnl which appears in configure.in before the sysdep configure scripts are run.
-dnl Each sysdep configure.in does GLIBC_PROVIDES first, to avoid any
+dnl which appears in configure.ac before the sysdep configure scripts are run.
+dnl Each sysdep configure.ac does GLIBC_PROVIDES first, to avoid any
dnl AC_REQUIREs or AC_BEFOREs duplicating their code.
dnl
define([GLIBC_PROVIDES], [dnl
@@ -39,7 +39,7 @@ dnl Ripped out of AS_INIT, which does more cruft we do not want.
m4_wrap([m4_divert_pop([BODY])[]])
m4_divert_push([BODY])[]dnl
dnl End of ripped out of AS_INIT.
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
define([_AC_LANG], [C])dnl
])dnl
dnl
diff --git a/libc/benchtests/exp-inputs b/libc/benchtests/exp-inputs
index 593ad7c74..aff3fb42f 100644
--- a/libc/benchtests/exp-inputs
+++ b/libc/benchtests/exp-inputs
@@ -1,8 +1,589 @@
## args: double
## ret: double
## includes: math.h
+0x1.6200315ce81efp9
+0x1.0000000031579p0
+0x1.000000009b551p0
+0x1.000000067ace6p0
+0x1.6200315ad0fc0p9
+0x1.0000000000060p0
+0x1.00000004237a7p0
+0x1.6200315ad0fb2p9
+0x1.0000000054ac1p0
+0x1.6200315c98bcdp9
+0x1.0000000002d96p0
+0x1.0000000000038p256
+0x1.6200315ad0fafp9
+0x1.6200315d680ecp9
+0x1.0000000000042p0
+0x1.0000000000048p256
+0x1.6200315ad0fbcp9
+0x1.000000000000dp256
+0x1.000000000001ep256
+0x1.0000000000015p256
+0x1.0000000000018p-256
+0x1.000000000002ep0
+0x1.000000000004ep-256
+0x1.000000000001dp-256
+0x1.6200315ad0fb4p9
+0x1.00000002ca5f8p0
+0x1.0000000000017p256
+0x1.0000000000022p0
+0x1.0000000000059p256
+0x1.0000000000028p0
+0x1.6200315ad0fa7p9
+0x1.000000048059cp0
+0x1.0000000000023p256
+0x1.000000000003ap-256
+0x1.0000000000022p-256
+0x1.6200315f211bep9
+0x1.000000000002ep-256
+0x1.0000000000041p256
+0x1.0000000000042p-256
+0x1.6200315ad0fcfp9
+0x1.6200315ad0fd7p9
+0x1.000000004bd6fp0
+0x1.000000000000dp-256
+0x1.6200315ad0fb7p9
+0x1.000000000001fp0
+0x1.0000000000024p-256
+0x1.0000000000058p256
+0x1.6200315ad0fc5p9
+0x1.620030025fbe9p9
+0x1.000000000003dp-256
+0x1.000000000003fp-256
+0x1.0000000000009p256
+0x1.00000005c7304p0
+0x1.0000000000045p-256
+0x1.0000000000011p-256
+0x1.0000000000033p-256
+0x1.0000000000036p256
+0x1.0000000000059p-256
+0x1.0000000000001p-256
+0x1.0000000000052p-256
+0x1.000000045baafp0
+0x1.0000000000032p0
+0x1.00000004a5089p0
+0x1.00000005edb68p0
+0x1.6200315ad0fd1p9
+0x1.0000000080d5bp0
+0x1.0000000000038p0
+0x1.6200315ad0fdbp9
+0x1.000000000005fp256
+0x1.0000000291b1ep0
+0x1.6200315af4bedp9
+0x1.0000000000031p-256
+0x1.6200315aea99bp9
+0x1.00000005ab569p0
+0x1.6200315d47b24p9
+0x1.6200315ad0fd9p9
+0x1.000000000003bp256
+0x1.6200315d31eb9p9
+0x1.000000059a297p0
+0x1.0000000000011p256
+0x1.0000000000021p-256
+0x1.0000000000041p-256
+0x1.0000000000049p0
+0x1.00000006857afp0
+0x1.6200315ceb300p9
+0x1.000000000003bp-256
+0x1.6200315bcaec3p9
+0x1.0000000000018p256
+0x1.00000002f3b77p0
+0x1.6200315ad0fb5p9
+0x1.0000000000027p-256
+0x1.000000054447dp0
+0x1.6200315e84846p9
+0x1.0000000172fefp0
+0x1.00000001c8808p0
+0x1.0000000000003p256
+0x1.000000000003ep-256
+0x1.00000002ed36ep0
+0x1.000000000002ap0
+0x1.00000002ae08bp0
+0x1.000000000005dp-256
+0x1.0000000000063p256
+0x1.000000000003ep0
+0x1.0000000000037p256
+0x1.6200315ad0fb6p9
+0x1.000000000005ep0
+0x1.000000000002ap256
+0x1.0000000000056p256
+0x1.0000000266056p0
+0x1.6200315ad0fdap9
+0x1.000000000002dp0
+0x1.000000000004cp0
+0x1.6200315ad0fb8p9
+0x1.0000000000039p0
+0x1.000000000002ap-256
+0x1.6200315ad0fa5p9
+0x1.0000000000035p256
+0x1.000000000005ep256
+0x1.000000000004cp-256
+0x1.0000000000039p256
+0x1.000000055574fp0
+0x1.0000000000033p256
+0x1.6200315ad0fc2p9
+0x1.62003001fc398p9
+0x1.000000000004ap-256
+0x1.000000000001ap256
+0x1.000000005d813p0
+0x1.6200315ad0fe4p9
+0x1.0000000000030p-256
+0x1.0000000000020p-256
+0x1.0000000066565p0
+0x1.0000000000029p-256
+0x1.6200315ad0fc7p9
+0x1.000000049e880p0
+0x1.0000000609903p0
+0x1.00000005e309fp0
+0x1.0000000000013p256
+0x1.0000000000026p0
+0x1.000000000002dp-256
+0x1.6200315ad0fbdp9
+0x1.000000000000fp256
+0x1.00000001a9d52p0
+0x1.000000000002cp256
+0x1.0000000479d93p0
+0x1.0000000000016p256
+0x1.00000001d7d63p0
+0x1.6200315bd5b13p9
+0x1.00000001097e9p0
+0x1.0000000000030p0
+0x1.6200315d37392p9
+0x1.6200315ad0fe0p9
+0x1.6200315ba6119p9
+0x1.000000000003ep256
+0x1.00000000e87eap0
+0x1.0000000000002p256
+0x1.00000006501c2p0
+0x1.000000000004bp256
+0x1.620030022b98ap9
+0x1.000000000003fp0
+0x1.00000002d0e01p0
+0x1.00000001f6819p0
+0x1.0000000000020p256
+0x1.0000000000021p0
+0x1.000000000005cp256
+0x1.6200315ad0faep9
+0x1.6200315c61515p9
+0x1.0000000000008p256
+0x1.0000000000056p-256
+0x1.00000004f2923p0
+0x1.000000000001ep0
+0x1.0000000000028p256
+0x1.000000000004fp256
+0x1.000000000002cp-256
+0x1.0000000000025p0
+0x1.6200315e1215ap9
+0x1.6200315ad0fb3p9
+0x1.6200315e921dap9
+0x1.6200315ad0fd6p9
+0x1.0000000000049p256
+0x1.000000000004dp256
+0x1.0000000000042p256
+0x1.0000000000051p0
+0x1.6200315d83129p9
+0x1.0000000690278p0
+0x1.0000000000036p0
+0x1.0000000000026p256
+0x1.000000000005fp-256
+0x1.000000000000cp256
+0x1.0000000000007p256
+0x1.000000050a3fep0
+0x1.000000000001fp-256
+0x1.000000000002ep256
+0x1.000000000004ep256
+0x1.6200315f00e77p9
+0x1.6200315ad0fd2p9
+0x1.6200315d4ee5bp9
+0x1.00000004552a6p0
+0x1.6200315ad0fe3p9
+0x1.000000003a2cbp0
+0x1.6200315ad0fdfp9
+0x1.00000002b4894p0
+0x1.0000000000022p256
+0x1.000000023a58ep0
+0x1.6200315ad0fd8p9
+0x1.0000000000029p256
+0x1.6200315efe051p9
+0x1.0000000205d74p0
+0x1.0000000000045p256
+0x1.6200315ad0fb0p9
+0x1.6200315d77cc5p9
+0x1.000000065ac8bp0
+0x1.0000000000037p0
+0x1.6200315ad0fbfp9
+0x1.6200315dacc95p9
+0x1.000000000002fp-256
+0x1.000000000000ep256
+0x1.00000006bf05cp0
+0x1.0000000000051p256
+0x1.0000000000062p0
+0x1.0000000000031p256
+0x1.6200315be943dp9
+0x1.000000000005bp0
+0x1.0000000000045p0
+0x1.6200315e08505p9
+0x1.000000000001bp256
+0x1.0000000000005p256
+0x1.000000000005dp256
+0x1.6200315ad0fc9p9
+0x1.6200315e97676p9
+0x1.0000000000024p0
+0x1.0000000000003p-256
+0x1.6200315ad0fd4p9
+0x1.6200315ee2c3bp9
+0x1.0000000000020p0
+0x1.6200315ad0fdcp9
+0x1.0000000000053p-256
+0x1.000000000004bp-256
+0x1.6200315cafb6ep9
+0x1.000000000003ap256
+0x1.0000000000013p-256
+0x1.0000000000060p256
+0x1.6200315ad0fd3p9
+0x1.0000000000009p-256
+0x1.000000000005cp-256
+0x1.00000000acff5p0
+0x1.000000000004dp0
+0x1.0000000000050p256
+0x1.6200315e34fc6p9
+0x1.0000000000044p-256
+0x1.000000000002dp256
+0x1.0000000000062p256
+0x1.6200315bf4442p9
+0x1.6200315ad0fabp9
+0x1.000000000003cp0
+0x1.0000000000019p256
+0x1.000000000000cp-256
+0x1.000000000000bp-256
+0x1.0000000000063p0
+0x1.000000000003cp256
+0x1.0000000000061p-256
+0x1.6200315ad0fb1p9
+0x1.00000006456f9p0
+0x1.6200315ad0fb9p9
+0x1.6200315ad0fccp9
+0x1.6200315ad0fd5p9
+0x1.6200315ad0fd0p9
+0x1.0000000353687p0
+0x1.6200315ad0facp9
+0x1.000000000005bp256
+0x1.6200315e8bb51p9
+0x1.6200315d73094p9
+0x1.000000027bdbap0
+0x1.000000006f2b7p0
+0x1.0000000000057p0
+0x1.0000000298327p0
+0x1.000000019a7f7p0
+0x1.6200315b7b9ddp9
+0x1.000000041cf9ep0
+0x1.0000000000040p256
+0x1.0000000000059p0
+0x1.6200315ad0fe2p9
+0x1.0000000000056p0
+0x1.0000000000034p-256
+0x1.6200315cf49aep9
+0x1.0000000000017p-256
+0x1.000000000bae8p0
+0x1.6200315ad0fc1p9
+0x1.00000004c336dp0
+0x1.0000000000032p256
+0x1.6200315ae9fb5p9
+0x1.000000000004cp256
+0x1.0000000000057p-256
+0x1.0000000000035p-256
+0x1.6200315d4d455p9
42
+0x1.6200315ad0fa8p9
+0x1.00000002502f2p0
+0x1.6200315ad0fa3p9
+0x1.000000000005dp0
+0x1.0000000000012p-256
+0x1.0000000000006p256
+0x1.0000000000028p-256
+0x1.0000000000044p256
+0x1.000000000004ap0
+0x1.00000000927ffp0
+0x1.0000000000044p0
+0x1.00000006f8909p0
+0x1.6200315ad0fc8p9
+0x1.0000000000061p0
+0x1.000000012a7e8p0
+0x1.000000000000fp-256
+0x1.6200315b6f0a0p9
+0x1.00000001b92adp0
+0x1.000000000005ep-256
+0x1.6200315d436fep9
+0x1.000000004301dp0
+0x1.0000000000023p0
+0x1.000000000005ap0
+0x1.6200315e7189ap9
+0x1.0000000000033p0
+0x1.6200315c19f20p9
+0x1.0000000000040p-256
+0x1.0000000000031p0
+0x1.0000000000027p0
+0x1.6200315d1dfeap9
+0x1.0000000588fc5p0
+0x1.000000015ad42p0
+0x1.6200300248616p9
+0x1.0000000000021p256
+0x1.6200315ad0fcap9
+0x1.6200315ad0fbbp9
+0x1.6200315ad0fbep9
+0x1.0000000000052p0
+0x1.0000000000016p-256
+0x1.0000000000005p-256
+0x1.0000000000046p256
+0x1.000000000003cp-256
+0x1.0000000000054p0
+0x1.000000034ce7ep0
+0x1.0000000000050p-256
+0x1.000000000002fp256
+0x1.6200315f2a44bp9
+0x1.6200315ad0fa2p9
+0x1.6200315f53addp9
+0x1.0000000000043p256
+0x1.000000000002bp0
+0x1.6200315b9a51fp9
+0x1.62003002148e6p9
+0x1.0000000000039p-256
+0x1.0000000000023p-256
+0x1.00000006d45eep0
+0x1.000000000002cp0
+0x1.0000000000055p256
+0x1.000000000000ap256
+0x1.0000000000010p-256
+0x1.0000000000047p-256
+0x1.000000000002fp0
+0x1.0000000000001p256
+0x1.000000040ff8cp0
+0x1.0000000121a96p0
+0x1.6200315c8b9bcp9
+0x1.000000000001cp-256
+0x1.0000000000063p-256
+0x1.0000000000006p-256
+0x1.000000000001ap-256
+0x1.6200300247b12p9
+0x1.0000000000046p0
+0x1.0000000000036p-256
+0x1.00000004bcb64p0
+0x1.0000000000032p-256
+0x1.0000000000057p256
+0x1.6200315e03518p9
+0x1.00000005331abp0
+0x1.000000000001ep-256
+0x1.6200315f76ad3p9
+0x1.000000000004dp-256
+0x1.000000000003bp0
+0x1.00000005b6032p0
+0x1.0000000000007p-256
+0x1.6200315ad0fc4p9
+0x1.0000000000051p-256
+0x1.000000000005cp0
+0x1.6200315ad0fc6p9
+0x1.0000000100a97p0
+0x1.0000000000040p0
+0x1.000000000004fp0
+0x1.000000000003dp0
+0x1.0000000000027p256
+0x1.0000000000000p-256
+0x1.6200315b10d8dp9
+0x1.0000000000060p-256
+0x1.6200315ad0fcdp9
+0x1.6200315ad0fa4p9
+0x1.6200315d07f8ep9
+0x1.000000000001bp-256
+0x1.0000000000041p0
+0x1.6200315ad0fe1p9
+0x1.0000000000053p0
+0x1.00000003168edp0
+0x1.0000000000000p256
+0x1.0000000000002p-256
+0x1.6200315bd4cecp9
+0x1.0000000000047p256
+0x1.6200315b2b8adp9
+0x1.000000000002bp256
+0x1.0000000000055p-256
+0x1.000000000004ap256
+0x1.00000006c9b25p0
+0x1.0000000000054p-256
+0x1.0000000000047p0
+0x1.6200315d8ee5dp9
+0x1.6200315b74b4cp9
+0x1.000000000005ap256
+0x1.0000000000043p-256
+0x1.0000000000055p0
+0x1.0000000000019p-256
+0x1.000000031d0f6p0
+0x1.00000006ede40p0
+0x1.00000002152cfp0
+0x1.6200315f61210p9
+0x1.6200315ad0fadp9
+0x1.000000044ea9dp0
+0x1.0000000000050p0
+0x1.0000000000024p256
+0x1.000000022b033p0
+0x1.0000000000043p0
+0x1.000000000001fp256
+0x1.0000000000034p0
+0x1.0000000000025p-256
+0x1.0000000000034p256
+0x1.000000000001dp0
+0x1.000000000005ap-256
+0x1.6200315ad0fddp9
+0x1.0000000577cf3p0
+0x1.000000051b6d0p0
+0x1.00000006143ccp0
+0x1.0000000000010p256
+0x1.000000061ee95p0
+0x1.6200315c3eed5p9
+0x1.00000000dfa98p0
+0x1.0000000000049p-256
+0x1.0000000000052p256
+0x1.0000000000053p256
+0x1.000000000005bp-256
+0x1.000000000000ep-256
+0x1.6200315e8ca3cp9
+0x1.6200315ad0faap9
+0x1.0000000142a95p0
+0x1.6200315ad0fcep9
+0x1.6200315ad0fcbp9
+0x1.6200315ef86c6p9
+0x1.0000000000026p-256
+0x1.6200315ed1587p9
+0x1.000000067021dp0
+0x1.00000001e72bep0
+0x1.6200315ad0fbap9
+0x1.00000000d6d46p0
+0x1.0000000000058p0
+0x1.00000000a42a3p0
+0x1.6200315b50c42p9
+0x1.6200315c4ee10p9
+0x1.0000000416795p0
+0x1.0000000000014p-256
+0x1.0000000000037p-256
+0x1.6200315ad0fa6p9
+0x1.0000000000004p-256
+0x1.0000000000054p256
+0x1.000000018254ap0
+0x1.6200315dc2365p9
+0x1.0000000000015p-256
+0x1.000000000004fp-256
+0x1.0000000665754p0
+0x1.0000000000046p-256
+0x1.6200315b2ba38p9
+0x1.000000000002bp-256
+0x1.6200315ba202ep9
+0x1.0000000000008p-256
+0x1.0000000359e90p0
+0x1.00000004dae48p0
+0x1.000000000001cp256
+0x1.0000000000062p-256
+0x1.0000000000048p0
+0x1.000000000003fp256
+0x1.6200315bcd48bp9
+0x1.6200315ad0fa9p9
+0x1.0000000000030p256
+0x1.6200315d64448p9
+0x1.0000000089aadp0
+0x1.6200315f0aa29p9
+0x1.00000005d1dcdp0
+0x1.6200315ad0fdep9
+0x1.0000000000061p256
+0x1.0000000000058p-256
+0x1.0000000000012p256
+0x1.000000000005fp0
+0x1.000000000003ap0
+0x1.000000000000bp256
+0x1.000000000004bp0
+0x1.0000000000038p-256
+0x1.0000000000029p0
+0x1.0000000000025p256
+0x1.000000000001dp256
+0x1.0000000000004p256
+0x1.6200315e2240ep9
+0x1.6200315ad0fc3p9
+0x1.6200315b2bbc3p9
+0x1.0000000000014p256
+0x1.0000000078009p0
+0x1.000000000003dp256
+0x1.6200315db488fp9
+0x1.000000000000ap-256
+0x1.000000000004ep0
+0x1.0000000000035p0
+0x1.0000000000048p-256
+# Slow path with computation in 144 bit precision.
+# Implemented in: sysdeps/ieee754/dbl-64/mpexp.c
+## name: 144bits
+0x1.0000000002d96p0
+0x1.000000000bae8p0
+0x1.0000000031579p0
+0x1.000000003a2cbp0
+0x1.000000004301dp0
+0x1.000000004bd6fp0
+0x1.0000000054ac1p0
+0x1.000000005d813p0
+0x1.00000005ab569p0
+0x1.00000005b6032p0
+0x1.00000005c7304p0
+0x1.00000005d1dcdp0
+0x1.00000005e309fp0
+0x1.00000005edb68p0
+0x1.0000000609903p0
+0x1.00000006143ccp0
+0x1.000000061ee95p0
+0x1.00000006456f9p0
+0x1.00000006501c2p0
+0x1.000000065ac8bp0
+0x1.0000000665754p0
+0x1.000000067021dp0
+0x1.000000067ace6p0
+0x1.00000006857afp0
+0x1.0000000690278p0
+0x1.00000006bf05cp0
+0x1.00000006c9b25p0
+0x1.00000006d45eep0
+0x1.00000006ede40p0
+0x1.00000006f8909p0
+0x1.62003000076d2p9
+0x1.6200300017e2cp9
+0x1.6200300023ffbp9
+0x1.620030002b135p9
+0x1.6200300030a8bp9
+0x1.620030003123fp9
+0x1.62003000652b3p9
+0x1.620030007bf4ap9
+0x1.6200300081a79p9
+0x1.6200300090289p9
+0x1.620030009dcbbp9
+0x1.62003000c07cep9
+0x1.62003000ee5dbp9
+0x1.62003000fa646p9
+0x1.62003000fe2cap9
+0x1.6200300125996p9
+0x1.6200300130865p9
+0x1.6200300133673p9
+0x1.6200300136fdfp9
+0x1.6200300150360p9
+0x1.620030016c416p9
+0x1.6200315ee2c3bp9
+0x1.6200315ef86c6p9
+0x1.6200315efe051p9
+0x1.6200315f00e77p9
+0x1.6200315f0aa29p9
+0x1.6200315f211bep9
+0x1.6200315f2a44bp9
+0x1.6200315f53addp9
+0x1.6200315f61210p9
+0x1.6200315f76ad3p9
# Slowest path with computation in 768 bit precision.
# Implemented in: sysdeps/ieee754/dbl-64/mpexp.c
## name: 768bits
708.00096423260981737257679924368858
+0x1.00000027f5496p0
+0x1.0000015853da7p0
+0x1.0000098e5e007p0
+0x1.0000099a1ac59p0
diff --git a/libc/benchtests/pow-inputs b/libc/benchtests/pow-inputs
index 96b1b6c2a..78f8ac73d 100644
--- a/libc/benchtests/pow-inputs
+++ b/libc/benchtests/pow-inputs
@@ -2,7 +2,510 @@
## ret: double
## includes: math.h
42.0, 42.0
+-0x1.086f771a2b37bp696, 0x1.592b453fe869fp-81
+0x1.19eb12518e61bp-217, 0x1.c87753325f271p59
+0x1.5c68b7b390060p-869, -0x1.0000000000000p-64
+0x1.d96cb2cd196ebp3, 0x1.0000000000000p-64
+-0x1.f7cb93ee0ba9bp-238, 0x1.b7f046c622df6p691
+0x1.5cf5307b64e94p-233, 0x1.4499d7e88a731p124
+0x1.58bc610fde155p756, -0x1.0000000000000p-64
+0x1.11e4c61e2489ep9, 0x1.f3ddd0aadf9e9p94
+0x1.064765103f18ap-245, 0x1.a413811779c11p89
+-0x1.a26e540b1b5e0p77, 0x1.5987a1b0f6368p897
+0x1.465db461ffd24p681, -0x1.0000000000000p-64
+-0x1.b986d646b93b4p-100, -0x1.936ff2a7c8adep-420
+0x1.af0d371d0a43dp-197, 0x1.f185f2aba0958p217
+0x1.13ce451492820p115, -0x1.1598c3d54c625p81
+0x1.d5ec14b6de205p-604, -0x1.0000000000000p-64
+0x1.cf8ad6a495d19p-100, 0x1.8d2563e08105dp7
+0x1.1a7d3100f9ef4p-636, -0x1.0000000000000p-64
+-0x1.6dd9a7d0122f5p421, 0x1.199895f013a09p49
+0x1.b892e5125d7d1p-345, 0x1.0000000000000p-64
+0x1.5dfa7063ce092p996, 0x1.0000000000000p-64
+0x1.9e7d74cdbf190p512, -0x1.3d1b5206e8127p237
+0x1.b941e202e240dp-325, -0x1.0000000000000p-64
+-0x1.fbe85766fae96p-463, 0x1.91c903c89b075p85
+0x1.eab5553bcdfbap-957, 0x1.ab0a06811189cp90
+0x1.4c2c90f483a09p917, -0x1.0000000000000p-64
+0x1.014bc72248db8p439, -0x1.e1bef116ca6d9p112
+-0x1.6733d0746880bp-316, 0x1.8a34e6c887c39p-107
+-0x1.5a9b05cc4e1c4p461, -0x1.88d2560562b17p-798
+0x1.9690663e74e47p967, -0x1.0000000000000p-64
+-0x1.125986687c812p-159, -0x1.bd3236342d0f4p550
+0x1.3d6422e5177bep-951, 0x1.3878a292f55d9p226
+-0x1.9922669366d2dp590, -0x1.ae14d63976e00p-684
+0x1.d838c66e05cc9p256, 0x1.0000000000000p-64
+0x1.c319328022c2cp890, -0x1.4a627098d6e49p170
+0x1.0deee25028507p461, 0x1.310f343ce0281p94
+0x1.279923dac3d31p147, 0x1.0000000000000p-64
+0x1.e27fe364ee0b4p963, -0x1.107d33f004629p245
+-0x1.8160e4b7efcecp833, -0x1.9612560bf9302p-472
+-0x1.7814633c7452bp-821, -0x1.d36af1ef2c42fp636
+0x1.bac865bccd66ep113, -0x1.454be507db267p19
+0x1.c75b53051ead0p-931, -0x1.0000000000000p-64
+-0x1.cab4e5935aeaep318, -0x1.6794550b87520p-257
+0x1.088056b5fbc0dp-459, 0x1.0000000000000p-64
+0x1.1f8eb28937183p748, -0x1.b2a940cf17bc0p217
+0x1.ba85352faba13p-796, -0x1.0000000000000p-64
+0x1.1d3984c620975p460, 0x1.0000000000000p-64
+0x1.37acd13a9ea78p1019, 0x1.0000000000000p-64
+0x1.0e9d041b054d3p-411, 0x1.0000000000000p-64
+0x1.a156c095ec992p102, -0x1.46f561fd1fda9p98
+-0x1.273ca2d449455p471, -0x1.fa6c92046c475p-860
+-0x1.7b475167ae88ep-116, -0x1.eba627003ccc5p-339
+0x1.2996c344cf7dcp-564, 0x1.21df51e88e157p161
+-0x1.7d29f253d3e79p636, -0x1.8e30a1ba55f7fp77
+0x1.99ffe6fb747bep1003, -0x1.8b1047a0ed3b3p67
+0x1.248c46b353471p251, -0x1.3aa8631084564p8
+-0x1.500c56dfd8fa0p-869, 0x1.819212336e2afp-523
+0x1.012185cb5e155p-672, 0x1.dcbc907d906f0p203
+0x1.964221fe0b0c5p-260, -0x1.0000000000000p-64
+-0x1.172f10899cbcep669, 0x1.e4e656fea6c19p663
+0x1.e356e63b681dep989, -0x1.dd9d772868663p41
+0x1.ccd0118265376p287, -0x1.22ae0058250b6p184
+0x1.3de177d6762ebp742, -0x1.ebc180d571e12p58
+0x1.04caa30a223c6p-294, 0x1.0000000000000p-64
+-0x1.e0ffa63b800fcp-938, 0x1.0a2c229973ed9p149
+0x1.e0ffa63b800fcp-938, 0x1.0a2c229973ed9p149
+0x1.d43815bff9e7dp-685, 0x1.825755f8cae4bp168
+0x1.fe3b21bec8806p456, 0x1.0000000000000p-64
+0x1.b26d766ab1f27p-162, 0x1.184f242e49092p249
+-0x1.1c70d750f61abp-899, 0x1.e3f3e7ec803dap759
+0x1.220fe763e4353p897, 0x1.6a6f650adecc0p141
+0x1.d6f7716723825p-58, 0x1.0000000000000p-64
+0x1.2b0242282c767p308, 0x1.c9dd84f859214p104
+0x1.7d0ee4b3bb946p-563, -0x1.9d1683c6f5c5ap226
+-0x1.8547b5d202937p967, -0x1.14e58570b43a5p-765
+-0x1.568636c53d51fp-638, 0x1.164257f3ab632p-455
+0x1.6d7936f1f5553p-435, 0x1.8f26767f92ccbp147
+0x1.7c18551f15775p147, -0x1.0000000000000p-64
+-0x1.f2ac8209992fbp-965, 0x1.5faaf4ec0340cp-236
+-0x1.f57620fa5afd6p-69, -0x1.096166fce916ep-683
+-0x1.5054f3c0b1320p-215, 0x1.8c01c0a19db1bp-285
+0x1.e41e64f79a6a9p404, 0x1.0000000000000p-64
+0x1.71fc41e25fe85p-413, 0x1.4acb80e80f0b2p214
+0x1.fbf477dec9138p-661, 0x1.0000000000000p-64
+0x1.7575c7cd67604p498, 0x1.0000000000000p-64
+-0x1.f4dd41d434b62p-205, -0x1.981f66551fd64p805
+0x1.76ac564847250p-870, -0x1.0000000000000p-64
+0x1.bb0e222493e31p-632, 0x1.16ad202a7c871p27
+-0x1.079a76db55d95p-974, -0x1.19d4717967203p-409
+0x1.68a7c79597132p-227, 0x1.6c3871ff9ad60p195
+0x1.4961c76e0940cp271, -0x1.0000000000000p-64
+0x1.04cf75ca8337cp-273, -0x1.0000000000000p-64
+0x1.4fffe4a25f260p152, -0x1.a0e3a7e58a0d3p149
+0x1.c125c40bb88b6p-281, 0x1.bedf8672d605fp215
+0x1.bcd59440339b5p67, -0x1.d225c2cc02d3bp60
+0x1.670e80ab2399bp-841, 0x1.887061c29e4afp131
+0x1.7c6ef76479beep839, -0x1.0f72a2967e041p98
+0x1.272f8550905f7p-961, 0x1.21a6d4787c14cp190
+0x1.0a33d4e39655cp-424, 0x1.4dafa3da87794p162
+0x1.a34e21945e568p-641, 0x1.3a0a05d61f5e4p119
+-0x1.b57493dffe1c3p68, -0x1.8e19843fbbd1ep515
+0x1.a8ce11ea61121p248, -0x1.7b2376aa515e8p115
+-0x1.5feca3ddab161p-509, 0x1.3e0c341715e1cp217
+0x1.6695a0cf6063fp-689, 0x1.1852d463ea98ep37
+0x1.9367127039f77p-293, 0x1.adbe75323caaap47
+0x1.6ad5c2f704166p-336, -0x1.9bf7b7271daefp100
+0x1.6791a1f6e89bap-845, 0x1.07e4c362cf895p92
+-0x1.20d7f6086ddb2p143, 0x1.687a7454403f4p337
+-0x1.9bd727a165453p-810, 0x1.742fe1f2bf2dbp-551
+0x1.40c3b16a0dba0p438, -0x1.67a872ec62dadp90
+0x1.5e0ab0f983abfp629, -0x1.0000000000000p-64
+0x1.c929a231173cfp844, -0x1.f25c7501c8144p116
+-0x1.410ad6057e935p204, 0x1.bdb5a3d649e74p-928
+0x1.9f222254cab3fp-817, -0x1.0000000000000p-64
+0x1.7f7d22b44403fp1007, -0x1.2299d752e308dp177
+0x1.41f824f624f36p511, -0x1.0000000000000p-64
+0x1.9fbb158e5d5dfp-525, 0x1.f803767193e3fp31
+-0x1.e6a1216cab6d4p-260, 0x1.100d3600b5996p935
+-0x1.dd23855d0cc3ep1003, 0x1.3411e38397aaep-158
+-0x1.3a9e0585f7979p-827, -0x1.db64725e35a3cp-259
+0x1.ce93a02ba2924p866, 0x1.0000000000000p-64
+0x1.445bf157156d4p-100, 0x1.0000000000000p-64
+-0x1.ba1ca38fc92ebp-848, -0x1.9270247b4b009p-609
+-0x1.5ac2b6a0c0476p-172, -0x1.595d419d9babdp-399
+-0x1.94f2b24fd7b65p839, -0x1.a42b466df80e1p519
+0x1.bf66704c603f1p-859, 0x1.430eb110359f6p-63
+0x1.e9ccb07667b5fp-435, 0x1.e7cec7c8e2138p229
+-0x1.bcd59440339b5p67, -0x1.d225c2cc02d3bp60
+0x1.a5e7c0a9c79d2p-503, -0x1.0000000000000p-64
+0x1.91aa125544e6ep681, -0x1.0000000000000p-64
+0x1.5371f5af7cd6ep-628, 0x1.078a57c0c5e30p147
+-0x1.2890a668b0252p-207, 0x1.ec956130d1ea0p411
+0x1.70f496a3b1319p-183, 0x1.9f04e4dd9dee0p159
+-0x1.ab4c0689a295cp375, 0x1.ec1627c9f2374p-617
+-0x1.390d459924f44p-348, -0x1.8e36a55756005p481
+0x1.c1b483579742ap101, 0x1.a05a357f2d54fp236
+0x1.d0a84005691b7p763, -0x1.68f840a20c734p60
+0x1.f32d34d1fffd4p-40, 0x1.fc09869af26f1p131
+-0x1.e693e5dbee2e0p207, 0x1.2301f18cd9d27p817
+0x1.1f72a3d4f7881p-764, 0x1.4617565381163p177
+-0x1.7f69c3aee139ep-648, 0x1.1f42e1d53ae48p597
+-0x1.adc7f1f9fdc02p38, -0x1.a07af4087ad66p1011
+-0x1.923d01b1c3960p-276, 0x1.2c6710910e47ap889
+0x1.6b60a2accafe3p977, -0x1.78f4404c514b7p170
+-0x1.0a2a3540be5a3p302, 0x1.3259b15ad5075p-333
+-0x1.11e4c61e2489ep9, 0x1.f3ddd0aadf9e9p94
+0x1.e02943925b096p-651, 0x1.3e5010a3be270p137
+0x1.9887e07a7b4bdp-835, -0x1.0000000000000p-64
+0x1.fb9fd6c57d283p-969, -0x1.eb21f1c75479dp195
+0x1.55fb70ae2db62p-910, 0x1.b77402b5190d5p10
+-0x1.38b1775c225eep723, 0x1.7595a59a7ba8dp901
+0x1.fbdc30f777a6ap649, -0x1.ea19f696739e0p183
+0x1.c2b5309403401p760, -0x1.0000000000000p-64
+-0x1.3d6de154feafep496, -0x1.9763760be8c9dp-161
+0x1.1c0a33e2b3719p-116, -0x1.0000000000000p-64
+0x1.06b1024b8b4bap471, -0x1.cd9f24d503076p59
+-0x1.6d0d67d7d2ad2p627, 0x1.35c77413a4d2fp190
+-0x1.881467b6c56d5p-194, -0x1.465995072de7cp707
+0x1.1147d4d59a3a5p-952, -0x1.0000000000000p-64
+-0x1.c319328022c2cp890, -0x1.4a627098d6e49p170
+0x1.993864ddbc05dp562, 0x1.0000000000000p-64
+0x1.f9abd78250a64p633, -0x1.f104e2772f8cep141
+-0x1.4d87f27b51978p-916, 0x1.073e35dc85a96p-1003
+0x1.1e8e0347dd99bp278, 0x1.0000000000000p-64
+0x1.7fbfc71fde6edp891, -0x1.0000000000000p-64
+-0x1.ae86836ca4d83p659, -0x1.5153616fefc6ap-61
+0x1.0452d237e1de7p-518, 0x1.296675c74320cp87
+0x1.12fc06ee54ac1p615, -0x1.0000000000000p-64
+0x1.887c234a8cc63p-708, 0x1.ae5fb57f66c84p175
+0x1.4978c021c25cbp-130, -0x1.115a65f48b23cp80
+-0x1.a1e733c9fd87fp552, 0x1.cef7045a6012ap811
+0x1.f98611b7c6a51p538, -0x1.0000000000000p-64
+-0x1.858f201dffc93p26, 0x1.6a110485981d4p-285
+0x1.84297333218cep712, 0x1.497396c926ddfp73
+0x1.12c3e319b6a54p-783, 0x1.0000000000000p-64
+-0x1.8ee011da43d65p-879, 0x1.7b6cf1473438ep670
+-0x1.4978c021c25cbp-130, -0x1.115a65f48b23cp80
+0x1.f057a19099427p-736, 0x1.0000000000000p-64
+0x1.407a2417c0b48p413, -0x1.90cbb0161a8c6p12
+0x1.04f492d848a39p-816, 0x1.ec7fb651e4df9p225
+-0x1.5290f79114db5p-971, -0x1.feede687f8cf3p-101
+0x1.fb0cc227fae39p-669, 0x1.924f06f662685p143
+-0x1.7d10c2a023848p734, -0x1.86a912207d0c3p757
+-0x1.5ebd0337bf9f3p945, 0x1.cb53f1b618ab5p465
+0x1.cef8d3cce5e81p531, -0x1.0000000000000p-64
+0x1.cdc7962fdc900p51, 0x1.0000000000000p-64
+-0x1.04f492d848a39p-816, 0x1.ec7fb651e4df9p225
+-0x1.23221091a234fp828, -0x1.b08e262c8eca5p972
+0x1.bc16f113ad6ebp-101, 0x1.7c8311241b744p169
+0x1.e1c163876ccdcp843, -0x1.0000000000000p-64
+0x1.3daea5a429d79p-639, 0x1.0000000000000p-64
+0x1.e99204b546e58p215, -0x1.0000000000000p-64
+-0x1.950493326e8b2p679, 0x1.fdc874cefc875p-615
+0x1.016dd4fb0abd2p853, -0x1.c82dd72b4ab44p102
+0x1.d0f6737fbcdbbp-353, 0x1.081a8002b8e53p211
+0x1.f1d1f5c67bb5ap-321, 0x1.d64ec22c49552p176
+-0x1.8a60721e2686ap880, -0x1.936f75de69956p-750
+0x1.8368e4ed700bbp-57, 0x1.0000000000000p-64
+-0x1.7c5d037e915cep538, -0x1.aa30914f141e5p-886
+-0x1.9ff485cb26fa7p227, 0x1.82c1703140ceep465
+-0x1.bc56157fec778p-542, -0x1.898e228074677p-385
+0x1.eb16d56eb1d78p-224, 0x1.393ef32f107adp205
+-0x1.10bf71d60a4d1p-524, 0x1.335ac0ca90f62p1004
+0x1.392bc7ade8723p528, -0x1.50ea12907473fp21
+0x1.a26d44e3b408fp-896, 0x1.beda15a2a2799p129
+0x1.6d0d67d7d2ad2p627, 0x1.35c77413a4d2fp190
+-0x1.47a744db0c087p689, -0x1.0445309d5d5bdp-205
+0x1.0d3c074692057p781, -0x1.885716d3dcfbap146
+0x1.5feca3ddab161p-509, 0x1.3e0c341715e1cp217
+0x1.001af5dcc9beep589, 0x1.0000000000000p-64
+0x1.0b0f700297c73p388, 0x1.0000000000000p-64
+-0x1.4591e2de659a7p796, 0x1.4ab1a273f0697p736
+0x1.1e68964b6cc85p6, -0x1.d50762f9e9ce4p59
+0x1.40a7f08b7509dp-373, 0x1.6784b7c373049p207
+0x1.c43b310d38279p-924, 0x1.d4b5d23a0b96dp239
+0x1.421436f55761ep-12, 0x1.320481b0055a7p227
+-0x1.135fa0f337e6ep856, -0x1.ed172226e05edp335
+-0x1.d0a84005691b7p763, -0x1.68f840a20c734p60
+-0x1.6153c39025700p908, -0x1.87eff6801054cp257
+0x1.ad64258a1c8aep201, -0x1.eb202553cc800p129
+0x1.09a810c8ff945p866, -0x1.0000000000000p-64
+0x1.d14433f742c09p-360, 0x1.f4ff819b628ddp21
+0x1.0c04a59d1fa4fp562, 0x1.66b354392a531p134
+-0x1.84297333218cep712, 0x1.497396c926ddfp73
+-0x1.fb9fd6c57d283p-969, -0x1.eb21f1c75479dp195
+0x1.dd87e7279e72bp748, -0x1.0000000000000p-64
+0x1.e494b3d72a143p612, -0x1.3b94e6aa337a0p-57
+0x1.4a6b277bdabe4p-613, -0x1.0000000000000p-64
+0x1.aa78012aaa9c7p338, 0x1.0000000000000p-64
+-0x1.ab74577adade9p149, -0x1.2057c78ee21ccp31
+0x1.3974c5e1e2049p105, -0x1.d3dbb0fb0baf1p54
+0x1.c83bb023360a9p879, -0x1.0c6922624c625p97
+-0x1.e21c0605b5f2bp-634, 0x1.f28232c2ebba3p-74
+0x1.e61ed69f4f3e5p558, -0x1.0ee6a03187e13p128
+0x1.d32cb4d190af4p-556, -0x1.0000000000000p-64
+0x1.97a202fe3d99bp812, -0x1.12eba5e07e17fp131
+0x1.5cbf140578025p750, -0x1.0000000000000p-64
+0x1.8754d2c071fd1p-796, -0x1.0000000000000p-64
+-0x1.c24a21659e391p874, 0x1.8fca31719d26fp-203
+0x1.db5587ed33e3dp-392, -0x1.0000000000000p-64
+0x1.59b6e3bd2734fp959, -0x1.0000000000000p-64
+-0x1.2f68f32a5979ep367, 0x1.d77b92aecf0f8p-414
+0x1.73e621f69389dp222, -0x1.1235366e0a84bp216
+0x1.076b75274a516p-7, -0x1.0000000000000p-64
+0x1.2505e4b701385p-178, -0x1.0000000000000p-64
+0x1.ae0c974a70a8fp607, 0x1.0000000000000p-64
+0x1.b2c344636c704p595, -0x1.9d1b879d64e7dp213
+-0x1.a6f695e9d29eep-629, 0x1.dad8811e62691p422
+0x1.e5aca4566a08ap234, -0x1.645ed34f63b48p65
+0x1.67faa10de96c9p-929, 0x1.0000000000000p-64
+0x1.503a50f3f36c9p-313, 0x1.a1b537c589279p212
+-0x1.e62711b5b18aap-336, 0x1.176d22b7c6703p-81
+-0x1.78e6d2fb3c6c8p-802, -0x1.4354b70f8d56ap-407
+-0x1.a9b890e6a309bp-974, -0x1.fc73521e05c84p446
+0x1.605c070891e95p751, -0x1.00e8a0f55071cp255
+-0x1.8e249352e8ed4p-690, -0x1.d751a5bb2c420p-254
+0x1.67246027c2465p584, 0x1.3aaa16d492946p178
+0x1.c53735a56d1edp610, -0x1.630662efaf0c6p60
+0x1.d54a131bae182p142, -0x1.a313606a0459dp220
+0x1.38afe5f1ed5b4p-779, 0x1.0000000000000p-64
+0x1.f2aa76462ad42p-982, 0x1.0000000000000p-64
+0x1.e188a166c06b6p45, 0x1.0000000000000p-64
+0x1.fbe85766fae96p-463, 0x1.91c903c89b075p85
+0x1.3342d36ecf081p28, -0x1.0000000000000p-64
+0x1.c2b0a036a1828p719, 0x1.0000000000000p-64
+0x1.ba7f308dc60ddp517, -0x1.b38d014638da6p246
+-0x1.075aa7ba85f42p624, -0x1.a357d32f45a61p-867
+0x1.1fbb4362bf313p995, 0x1.d039c2c0e18bfp-6
+-0x1.150426e803137p622, -0x1.9bafe2efa3e89p39
+-0x1.3f2456d5cba52p116, 0x1.fa9ec45f18306p-389
+0x1.8e58945bd1087p-701, 0x1.0000000000000p-64
+-0x1.ab0ef29932d78p111, 0x1.4313d75c1df97p658
+0x1.ee3e13dd00d34p1016, 0x1.d6b3d3b9034c1p85
+-0x1.7f0bd006c0d62p-324, 0x1.8210646a5ccddp871
+-0x1.c004d2256a5b8p402, -0x1.a01df480fdcb7p98
+-0x1.3717c2e75f865p-749, -0x1.628ab47e4b9c7p-879
+-0x1.dfb414ca1e89fp780, -0x1.b1a6d17b59340p927
+0x1.2bb340a5c99b8p772, -0x1.4cb4a208cd38ap49
+0x1.983d90ffcdc95p-131, 0x1.294857e7a5d9dp66
+0x1.0789a00a3ff0fp-950, -0x1.0000000000000p-64
+0x1.6816c6cd93ea9p112, 0x1.985412f1ac3d6p104
+0x1.3c0e604f8974bp-226, 0x1.0000000000000p-64
+0x1.07acb29e12fc1p687, -0x1.edff80d6b306fp107
+0x1.22c1d3b2c0e45p135, -0x1.9a5dc703e46dbp204
+0x1.ede956a719d56p248, -0x1.80e8e672e144fp156
+-0x1.ff6263662c8fbp-263, 0x1.cf3867b2bac05p652
+0x1.f01e46c129d76p-5, 0x1.00d113cf96023p137
+0x1.45cf928146851p636, 0x1.26b1c5666d711p131
+-0x1.768376c2f7584p563, 0x1.017143ae97b27p545
+-0x1.1f72a3d4f7881p-764, 0x1.4617565381163p177
+0x1.dd9431675dbb5p-114, 0x1.0000000000000p-64
+-0x1.64cc1762105b7p-569, -0x1.2d69b27570067p840
+0x1.bd1077dadd530p235, 0x1.0000000000000p-64
+0x1.0aa166c2b93bdp488, -0x1.48d03430453b8p213
+-0x1.b513845f09747p-331, -0x1.d04e154527b26p685
+0x1.5c97b3a12df62p696, -0x1.e160e008f7d3ap89
+0x1.8eec91bde3d69p-376, -0x1.0000000000000p-64
+0x1.7d29f253d3e79p636, -0x1.8e30a1ba55f7fp77
+0x1.c004d2256a5b8p402, -0x1.a01df480fdcb7p98
+0x1.52b9d41aaa1e9p-589, -0x1.292cb15f1459dp46
+-0x1.ea9ca6fa0919ep-279, -0x1.601e44b6a588cp40
+# pow slow path at 240 bits
+# Implemented in sysdeps/ieee754/dbl-64/slowpow.c
+## name: 240bits
+0x1.01fcd33493ea3p596, -0x1.724bd4e887783p-14
+0x1.032ff59ab34fdp-540, -0x1.61e3632080b87p-24
+0x1.045c337b80f53p304, 0x1.dc3404c30fa69p-56
+0x1.0681338469475p-294, -0x1.3562210f27dfap-51
+0x1.0b55c01eab2a6p-447, -0x1.cd7162fecd483p-48
+0x1.0b74d4b709002p-811, -0x1.0af1478682e96p-50
+0x1.0e4d10f3aabc8p664, 0x1.e2bde3471eaa1p-55
+0x1.110607de11aa5p120, 0x1.dcec269cfd865p-47
+0x1.132aa4cc6f38bp-751, 0x1.366ca7979d9bbp-8
+0x1.138ae6f5a6dadp-680, 0x1.890a0755fce7ap-40
+0x1.1b7b95bdc6400p467, 0x1.ec36f5f75ce4cp-8
+0x1.1c20e7f14086cp-788, 0x1.f22967f8b5d7cp-48
+0x1.278262637b59cp446, -0x1.1aab83169f61cp-10
+0x1.2936f2eb01500p-234, -0x1.aa25c56c7a42ap-51
+0x1.2991068d7df8dp-895, -0x1.e22e0335a6813p-19
+0x1.2a4320a5a4e06p342, 0x1.a60de202d0f39p0
+0x1.2baa57016f98bp445, -0x1.19b39156d7af6p-42
+0x1.3003b731560f2p189, -0x1.d03a35d7809bbp-6
+0x1.3098f631b79b3p322, 0x1.936cf77d12901p-58
+0x1.329f9083895d6p-470, 0x1.c4e0407eac9e1p-60
+0x1.32e62120a48dep-373, 0x1.8c03970ea6143p-15
+0x1.3b69741c89827p-951, 0x1.d7e2d50ab916bp-13
+0x1.46d346d411a30p-451, -0x1.5bed1300261dcp-37
+0x1.48d0870fc99a7p-691, -0x1.4f6541a43b8cdp-5
+0x1.49ae5141ea416p-825, 0x1.cfc4b51dbe592p-24
+0x1.4d1fb5a2a4d73p738, -0x1.d2a54658b1df9p-50
+0x1.4ddb12f9500cbp962, 0x1.48bc1158eb70ap-15
+0x1.4f51d32b02376p758, 0x1.11d1409aaea9fp-27
+0x1.54f723dd63e3bp605, 0x1.6c02f2514de2ap-23
+0x1.5529070b8d631p-489, 0x1.1c3dd76010b92p-37
+0x1.569bf17eb40dfp217, -0x1.8cb97627ae884p-31
+0x1.5e2892c719a5ap817, 0x1.f0e3d4b66e9c0p-11
+0x1.619a049c49284p329, -0x1.0bc7b3735d182p-12
+0x1.62e6745b17235p344, 0x1.86dcb0cd4e584p-39
+0x1.6532120398cb6p374, -0x1.dd57d385dde4ap-56
+0x1.6ab9873394341p712, 0x1.6cec233df7f19p-59
+0x1.6d7c56b0ec1f9p723, -0x1.864ae3aa72d4ap-11
+0x1.6decf38117b3ap-629, 0x1.e1c8b1eaebfbbp-27
+0x1.6f57771705979p518, -0x1.44fbe6fcf4182p-24
+0x1.6f57b14f5f248p880, 0x1.e2554493e7f0cp-2
+0x1.6fee9735004b7p-71, 0x1.8eaf1527d88bep-48
+0x1.7190e00c6cae0p-495, 0x1.705594f79ee43p-33
+0x1.7238a1904c29cp40, 0x1.d454673e675eep-30
+0x1.76aa529cae2a7p-457, -0x1.0652207d202acp-45
+0x1.78e630a117b59p-105, 0x1.ecb1a67d5b9dcp-32
+0x1.7d0976b552b5bp-316, -0x1.9c52a2a02f146p1
+0x1.80a10162f3c9ep-462, 0x1.af6ef1f1d004ep-54
+0x1.8794943d6e34bp-745, -0x1.0c7df064d51e9p-10
+0x1.8a3d749288cbcp-469, 0x1.a9bf9202d914fp-46
+0x1.8da421e64749bp-540, -0x1.494a81df89b6bp-26
+0x1.8e05154795810p247, 0x1.3c04802f44ddcp-47
+0x1.91b9d616c0878p-313, 0x1.a3c9263d26b2ap-30
+0x1.95e973a94d414p-229, 0x1.d83d8244e6566p-28
+0x1.9a3217b4fb0e5p-990, 0x1.82853149b1e30p-42
+0x1.9e2556775fc02p-377, -0x1.a6ec93193a127p-38
+0x1.9e83d7b0c831fp-906, 0x1.6a3485e3e4fe8p-21
+0x1.a51cf0f0f49f7p751, 0x1.07b941a3af664p-12
+0x1.a883c2cef7802p-432, 0x1.b5ee3711a8260p-34
+0x1.aca70602f90f3p205, -0x1.a40d85c2b0ddap-55
+0x1.b118069c4e0f8p133, 0x1.85ed946b41169p0
+0x1.b1ada0a8ca383p-699, 0x1.ddfec76f67c1fp-37
+0x1.b236b6872f638p419, 0x1.fa8f6525758b6p-5
+0x1.b2413258b83b1p892, -0x1.bcea65c80772bp-12
+0x1.b51563dac9885p-571, 0x1.7a1e16e485fdcp-30
+0x1.b5e4833e40f76p-445, 0x1.44e23325bcc3fp-22
+0x1.b6a2168ec3212p-674, -0x1.35bda0265f18bp-30
+0x1.b8dd676727fa1p124, 0x1.3605e6ec76006p-29
+0x1.b95437f961192p-500, 0x1.9276767f94721p-10
+0x1.bb6647f65218ap741, -0x1.b9dd250927a8ap-6
+0x1.bffdf0efb5c4ep-703, 0x1.85fac77188c01p-9
+0x1.c0345583020c9p236, 0x1.de31b044cb918p-37
+0x1.c4b9163604b90p548, 0x1.0a51f116977d3p-17
+0x1.c66ec323be811p-726, -0x1.8829c716f5ddbp-24
+0x1.c69da72348031p-390, 0x1.109f77bb4a2a2p-37
+0x1.c712558c00177p-883, -0x1.9cf047e60fa38p-8
+0x1.c74df6d64da29p-154, -0x1.bdba55e26ef07p2
+0x1.c75fa2c065d1dp731, 0x1.fa827749d723cp-21
+0x1.c8f5b7f54aa5fp-998, 0x1.59fa40e2d7a95p-10
+0x1.c957e3768f0c2p-102, 0x1.0047f59669535p-5
+0x1.ce0615637c099p-737, 0x1.b1795333136d6p-59
+0x1.d1a7872210098p245, -0x1.afd8c410a1918p-16
+0x1.d39ee7b8cae5ep722, 0x1.639a1575eb95cp-56
+0x1.d4b4276a02096p-5, -0x1.7ff8354a6ba9cp-21
+0x1.d500d1daf1bfcp-352, 0x1.e4c7243104fa7p-34
+0x1.d684c68e86321p-661, -0x1.11305765580a9p-13
+0x1.db08f6fcae9f5p-637, -0x1.a8cba163bd1dep-21
+0x1.db09e6535414dp809, -0x1.0b10e70ed8d88p-48
+0x1.e50573d07ecc0p41, 0x1.19ec44b6d99e6p-58
+0x1.e59505ef043e0p926, -0x1.3201c7a1e8882p-62
+0x1.e6b9b28e678a4p546, 0x1.70e042daa89e7p-30
+0x1.e9a4e6bbbf235p-851, -0x1.1d70f7b787412p-21
+0x1.ea68a16e4b7c9p-733, -0x1.ee7f337779825p-34
+0x1.f0e76025ece1cp642, -0x1.bdc0d0d7020d5p-57
+0x1.f1bcb1d70f84bp-568, 0x1.98c5d3b11e934p-21
+0x1.f568146a8c658p240, 0x1.4def9749a6a7ep-44
+0x1.f75bd43867225p-454, 0x1.34b1e5cb0df40p-16
+0x1.fae7a09d10f34p955, -0x1.f7f8439082552p-31
+0x1.fae913d4f952ep-809, -0x1.4b649402fce63p-6
+0x1.fe6d725408f24p484, -0x1.25f4f6441d2e4p-12
+0x1.ff6393f9150ccp-718, 0x1.a0cb50a9bf2f3p-31
# pow slowest path at 768 bits
# Implemented in sysdeps/ieee754/dbl-64/slowpow.c
## name: 768bits
1.0000000000000020, 1.5
+0x1.006777b4b61dep843, -0x1.67e3145491872p-1
+0x1.0477a5cfb1972p-402, 0x1.8742e7a1ce99dp-1
+0x1.0827a160ab475p-239, 0x1.fcae51d2d997dp-1
+0x1.083723672b1a4p-204, 0x1.baddc57f1404cp-2
+0x1.0b39f4b2f5c4fp-546, 0x1.7d02a31183f36p-1
+0x1.0e2d62ea9d078p-68, 0x1.8afb43919ece2p3
+0x1.0fedd1fd9bdc5p-1011, 0x1.c0ce64b178832p-6
+0x1.10b984764821ep724, -0x1.36e872083e630p-4
+0x1.12424342d99bbp686, -0x1.f8d4e18b1b309p-5
+0x1.1335f40a059c7p1014, -0x1.5818e19224448p-2
+0x1.14185484cbdb2p-780, 0x1.23f8d7d596280p-4
+0x1.14f5b49e12b8fp-751, 0x1.522c717bca3eap0
+0x1.15fe345b21e2bp399, -0x1.0a09061cd1de9p-1
+0x1.17c3e75436530p104, -0x1.ef30d09c541e9p0
+0x1.1e5296bbfeea7p747, -0x1.f68df5996bfedp-1
+0x1.1efdd081a8d35p-90, 0x1.7c7d10d98a3c9p-1
+0x1.203101f62452ap317, -0x1.3be834bfd34fap-1
+0x1.29cb8617add92p968, -0x1.9cbe73f892a16p-6
+0x1.2d75353d5df74p719, -0x1.e2f317d7b2c01p-1
+0x1.2f08247664913p592, -0x1.35ab9793384a5p-2
+0x1.2ff58217e86d7p725, -0x1.2c98b6be067ccp-2
+0x1.3113614c8b9e1p159, -0x1.fc2f4279c8cbep-1
+0x1.3115402118c24p134, -0x1.d435f65f0eefcp1
+0x1.32e5a1ba96cdap52, -0x1.f7d8248930c17p-1
+0x1.346f712d4c234p78, -0x1.830235fa4eb2cp3
+0x1.35ea84ad8b4fap742, -0x1.728dd1bc7d70cp-3
+0x1.36b91497c147ep579, -0x1.b7e7b0d1ad44dp-2
+0x1.3752c6b5da9e6p351, -0x1.2a00f003acdd1p-1
+0x1.3bccb31761b21p-193, 0x1.bdd7b5da189c8p1
+0x1.42c0b561c10bep-850, 0x1.dcdee5de63ebcp-3
+0x1.4520f56ca1422p-471, 0x1.348c312c9f319p-1
+0x1.46e7406c8e11ep546, -0x1.876f67bed28c4p0
+0x1.4ba3f35d2f4afp-333, 0x1.6e39f0895a072p-3
+0x1.4cb3303ab8786p-838, 0x1.fe88a032de46ap-1
+0x1.4d61505a36a60p234, -0x1.45c3e271db1fep1
+0x1.4fcff0e946b1ep909, -0x1.90fa07de4eea5p-1
+0x1.5172c6b32f2aep293, -0x1.fb0fa58fc74abp-2
+0x1.51e4b4afeb58ap-2, 0x1.f184d702a5f4bp3
+0x1.5212b31c06068p306, -0x1.e8e5c1b09f30dp-2
+0x1.55c7413fbdd0cp-168, 0x1.68687102fa0b8p-3
+0x1.5975f5580b29cp361, -0x1.cda627a0b0899p-3
+0x1.5b3d77ff20607p-694, 0x1.95877099718f5p-4
+0x1.5b85e6f45d26fp763, -0x1.b727a35d92656p-4
+0x1.5c83b2d038766p-984, 0x1.4232c330c81b9p-1
+0x1.5ec6e7e275af2p773, -0x1.8da470ca7dd62p-1
+0x1.60b0e6123149bp-743, 0x1.25a696ab5fc09p-4
+0x1.6567f1ab52caap-769, 0x1.ff57c1e78cc81p-3
+0x1.689cb423d7ec7p95, -0x1.71d3f5a46c36fp-2
+0x1.69e2a022e3db6p-672, 0x1.209f77b27f146p-1
+0x1.6a6bb05202fd0p-621, 0x1.bc1f316194126p-5
+0x1.72b181bf25fd7p303, -0x1.629be448db4f7p1
+0x1.7667d46544feap887, -0x1.e92ef7681c985p-3
+0x1.776f45edc5aa6p967, -0x1.8b34366de0584p-3
+0x1.77d4e3169e8fdp889, -0x1.7159c5a0e440ep-4
+0x1.792c56f01b25ep-474, 0x1.45237144dc76dp-2
+0x1.7c4d814b67ce3p-30, 0x1.32f4217aa69bfp2
+0x1.7fec1487cd8c2p-790, 0x1.373ec1a13952fp-4
+0x1.8280e15921e7bp-544, 0x1.17f4d1f294f23p-2
+0x1.8be4858d98288p395, -0x1.8ecf7076c1cadp-3
+0x1.8c1a3651b2a3cp251, -0x1.fe464693b592fp-1
+0x1.95b8339b15437p-805, 0x1.c590d48f70e09p-4
+0x1.9ea712eab015cp643, -0x1.9f9a2005cd04dp-2
+0x1.9ec010ebb0fb4p966, -0x1.322de55e2f27dp-3
+0x1.a055b4cacfb90p692, -0x1.45a6d0302680bp-4
+0x1.a2541721f7549p508, -0x1.46b5008fed93ap0
+0x1.aa4ea2a62e6d3p146, -0x1.4948a7f0b9447p-2
+0x1.aeab6627bd7fep-883, 0x1.e334b6e331bcfp-4
+0x1.afc9062dd5d6cp285, -0x1.704640b7e8a60p0
+0x1.b2e0e5768b8a4p700, -0x1.e3cc63841415cp-1
+0x1.b44dd7483ff8fp762, -0x1.376275f0c7542p0
+0x1.b461c649ef81fp-297, 0x1.757d3606ad420p-2
+0x1.b47177acf880bp162, -0x1.dbc2c7336fcdcp-3
+0x1.b5d597a5647bep312, -0x1.0d87f0669fd98p-3
+0x1.b5f5f6894898fp824, -0x1.aeec9752febccp-2
+0x1.b78b84a583db6p711, -0x1.443983558960ap-1
+0x1.ba15f474f95a7p250, -0x1.9d46c49adf4ecp1
+0x1.ba6e74fdcaafap685, -0x1.c69a403d3e719p-3
+0x1.c14ed18d4eb53p652, -0x1.231bb32f82a5fp-1
+0x1.c44727ecf4620p-965, 0x1.c61391aad6567p-6
+0x1.c492c6882ec27p-423, 0x1.6bb9123ab40fdp-1
+0x1.c525d219db143p-681, 0x1.5e10738bb6aefp-5
+0x1.ca9510663b619p878, -0x1.8966f1a726428p-2
+0x1.d2d4d70d57384p-769, 0x1.eec5e348f3c65p-5
+0x1.d3275243b3fd2p-203, 0x1.a56f87acf7afbp1
+0x1.d5d3022665384p-509, 0x1.d4f984b477a34p-5
+0x1.dabf72e2c886fp642, -0x1.e930d581ea0c3p-3
+0x1.daffa04064cf7p799, -0x1.b944c271f477bp-1
+0x1.db25c4ae37695p710, -0x1.ff84b0c08defdp-3
+0x1.dc06652f06a70p-689, 0x1.f2eb368dd304ap-3
+0x1.e09726def851ap-784, 0x1.8d62918b2f6a5p-5
+0x1.e1561576de8f5p-470, 0x1.983137f5396b2p-2
+0x1.e5e4c7891da9bp-871, 0x1.5775130263654p-5
+0x1.eca182884f17fp-295, 0x1.af55d3375f461p-3
+0x1.f1c172bc4f401p-360, 0x1.f40476496c282p-4
+0x1.f244722a51df2p548, -0x1.20f7a2f2fc3e8p-2
+0x1.f422f159f235bp126, -0x1.339620de97b69p1
+0x1.f43463d9cef16p-845, 0x1.2c364792462fep-3
+0x1.f8b79758182dap-884, 0x1.ed6174093fca4p-6
+0x1.fa5c677254961p133, -0x1.c91962524971ep-1
+0x1.ff0544adacb78p649, -0x1.6c17c3a7210e2p-1
diff --git a/libc/config.h.in b/libc/config.h.in
index 0ee1ec6f5..f6151c55b 100644
--- a/libc/config.h.in
+++ b/libc/config.h.in
@@ -201,13 +201,13 @@
They are used only in miscellaneous generator programs, not
in compiling libc itself. */
-/* sysdeps/generic/configure.in */
+/* sysdeps/generic/configure.ac */
#undef HAVE_PSIGNAL
-/* sysdeps/unix/configure.in */
+/* sysdeps/unix/configure.ac */
#undef HAVE_STRERROR
-/* sysdeps/unix/common/configure.in */
+/* sysdeps/unix/common/configure.ac */
#undef HAVE_SYS_SIGLIST
#undef HAVE__SYS_SIGLIST
#undef HAVE__CTYPE_
diff --git a/libc/configure b/libc/configure
index deab3950b..81cad5ed6 100755
--- a/libc/configure
+++ b/libc/configure
@@ -4761,7 +4761,7 @@ $as_echo_n "checking version of $MAKE... " >&6; }
ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.79* | 3.[89]*)
+ 3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -5171,7 +5171,7 @@ $as_echo_n "checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works... " >&6; }
if ${libc_cv_autoconf_works+:} false; then :
$as_echo_n "(cached) " >&6
else
- if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
+ if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
libc_cv_autoconf_works=yes
else
libc_cv_autoconf_works=no
diff --git a/libc/configure.in b/libc/configure.ac
index ffc8490a1..a246508d8 100644
--- a/libc/configure.in
+++ b/libc/configure.ac
@@ -984,7 +984,7 @@ AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
critic_missing="$critic_missing gcc")
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
- [3.79* | 3.[89]*], critic_missing="$critic_missing make")
+ [3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
[GNU gettext.* \([0-9]*\.[0-9.]*\)],
@@ -1010,7 +1010,7 @@ xno|x|x:) AUTOCONF=no ;;
*)
AC_CACHE_CHECK(dnl
whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
- if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
+ if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
libc_cv_autoconf_works=yes
else
libc_cv_autoconf_works=no
@@ -2155,7 +2155,7 @@ AC_SUBST(static_nss)
AC_SUBST(DEFINES)
-dnl See sysdeps/mach/configure.in for this variable.
+dnl See sysdeps/mach/configure.ac for this variable.
AC_SUBST(mach_interface_list)
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
diff --git a/libc/elf/rtld.c b/libc/elf/rtld.c
index 8e8eafa94..da92966d5 100644
--- a/libc/elf/rtld.c
+++ b/libc/elf/rtld.c
@@ -817,8 +817,8 @@ do_preload (char *fname, struct link_map *main_map, const char *where)
if (__builtin_expect (err_str != NULL, 0))
{
_dl_error_printf ("\
-ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n",
- fname, where);
+ERROR: ld.so: object '%s' from %s cannot be preloaded (%s): ignored.\n",
+ fname, where, err_str);
/* No need to call free, this is still before
the libc's malloc is used. */
}
@@ -2218,10 +2218,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
_dl_start_profile ();
}
-#ifndef NONTLS_INIT_TP
-# define NONTLS_INIT_TP do { } while (0)
-#endif
-
if (!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0)
++GL(dl_tls_generation);
diff --git a/libc/include/stdc-predef.h b/libc/include/stdc-predef.h
index 4de839d70..f8cb2cb97 100644
--- a/libc/include/stdc-predef.h
+++ b/libc/include/stdc-predef.h
@@ -26,8 +26,28 @@
explicitly includes a system header. GCC knows the name of this
header in order to preinclude it. */
-/* Define __STDC_IEC_559__ and other similar macros. */
-#include <bits/predefs.h>
+/* glibc's intent is to support the IEC 559 math functionality, real
+ and complex. If the GCC (4.9 and later) predefined macros
+ specifying compiler intent are available, use them to determine
+ whether the overall intent is to support these features; otherwise,
+ presume an older compiler has intent to support these features and
+ define these macros by default. */
+
+#ifdef __GCC_IEC_559
+# if __GCC_IEC_559 > 0
+# define __STDC_IEC_559__ 1
+# endif
+#else
+# define __STDC_IEC_559__ 1
+#endif
+
+#ifdef __GCC_IEC_559_COMPLEX
+# if __GCC_IEC_559_COMPLEX > 0
+# define __STDC_IEC_559_COMPLEX__ 1
+# endif
+#else
+# define __STDC_IEC_559_COMPLEX__ 1
+#endif
/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /
Unicode 6.0. */
diff --git a/libc/libidn/ChangeLog b/libc/libidn/ChangeLog
index 46ebd1fa9..e8130bb5b 100644
--- a/libc/libidn/ChangeLog
+++ b/libc/libidn/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * configure.in: Moved to ...
+ * configure.ac: ... here.
+ * configure: Regenerated.
+
2013-08-29 Ondřej Bílka <neleai@seznam.cz>
* stringprep.c: Fix typos.
diff --git a/libc/libidn/configure b/libc/libidn/configure
index 39ed16352..8195663d9 100644
--- a/libc/libidn/configure
+++ b/libc/libidn/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
libc_add_on_canonical=
diff --git a/libc/libidn/configure.in b/libc/libidn/configure.ac
index 16740ffb9..16740ffb9 100644
--- a/libc/libidn/configure.in
+++ b/libc/libidn/configure.ac
diff --git a/libc/locale/iso-639.def b/libc/locale/iso-639.def
index 83cd7643a..249b6e2d1 100644
--- a/libc/locale/iso-639.def
+++ b/libc/locale/iso-639.def
@@ -86,6 +86,7 @@ DEFINE_LANGUAGE_CODE3 ("Caucasian (Other)", cau, cau)
DEFINE_LANGUAGE_CODE3 ("Cebuano", ceb, ceb)
DEFINE_LANGUAGE_CODE3 ("Celtic (Other)", cel, cel)
DEFINE_LANGUAGE_CODE3 ("Central American Indian (Other)", cai, cai)
+DEFINE_LANGUAGE_CODE3 ("Central Nahuatl", nhn, nhn)
DEFINE_LANGUAGE_CODE3 ("Central Sama", sml, sml)
DEFINE_LANGUAGE_CODE3 ("Chagatai", chg, chg)
DEFINE_LANGUAGE_CODE3 ("Chamic languages", cmc, cmc)
@@ -271,6 +272,7 @@ DEFINE_LANGUAGE_CODE ("Lao", lo, lao, lao)
DEFINE_LANGUAGE_CODE ("Latin", la, lat, lat)
DEFINE_LANGUAGE_CODE ("Latvian", lv, lav, lav)
DEFINE_LANGUAGE_CODE3 ("Lezghian", lez, lez)
+DEFINE_LANGUAGE_CODE3 ("Ligurian", lij, lij)
DEFINE_LANGUAGE_CODE ("Limburgan; Limburger; Limburgish", li, lim, lim)
DEFINE_LANGUAGE_CODE ("Lingala", ln, lin, lin)
DEFINE_LANGUAGE_CODE3 ("Literary Chinese", lzh, lzh)
@@ -310,6 +312,7 @@ DEFINE_LANGUAGE_CODE ("Marshallese", mh, mah, mah)
DEFINE_LANGUAGE_CODE3 ("Marwari", mwr, mwr)
DEFINE_LANGUAGE_CODE3 ("Masai", mas, mas)
DEFINE_LANGUAGE_CODE3 ("Mayan languages", myn, myn)
+DEFINE_LANGUAGE_CODE3 ("Meadow Mari", mhr, mhr)
DEFINE_LANGUAGE_CODE3 ("Mende", men, men)
DEFINE_LANGUAGE_CODE3 ("Mi'kmaq; Micmac", mic, mic)
DEFINE_LANGUAGE_CODE3 ("Minangkabau", min, min)
@@ -383,6 +386,7 @@ DEFINE_LANGUAGE_CODE3 ("Provençal, Old (to 1500)", pro, pro)
DEFINE_LANGUAGE_CODE3 ("Pu-Xian Chinese", cpx, cpx)
DEFINE_LANGUAGE_CODE ("Pushto", ps, pus, pus)
DEFINE_LANGUAGE_CODE ("Quechua", qu, que, que)
+DEFINE_LANGUAGE_CODE3 ("Quechua, Southern", quz, quz)
DEFINE_LANGUAGE_CODE ("Raeto-Romance", rm, roh, roh)
DEFINE_LANGUAGE_CODE3 ("Rajasthani", raj, raj)
DEFINE_LANGUAGE_CODE3 ("Rapanui", rap, rap)
@@ -415,6 +419,7 @@ DEFINE_LANGUAGE_CODE3 ("Sicilian", scn, scn)
DEFINE_LANGUAGE_CODE3 ("Sidamo", sid, sid)
DEFINE_LANGUAGE_CODE3 ("Sign Languages", sgn, sgn)
DEFINE_LANGUAGE_CODE3 ("Siksika", bla, bla)
+DEFINE_LANGUAGE_CODE3 ("Silesian", szl, szl)
DEFINE_LANGUAGE_CODE ("Sindhi", sd, snd, snd)
DEFINE_LANGUAGE_CODE ("Sinhala; Sinhalese", si, sin, sin)
DEFINE_LANGUAGE_CODE3 ("Sino-Tibetan (Other)", sit, sit)
@@ -481,6 +486,7 @@ DEFINE_LANGUAGE_CODE3 ("Ugaritic", uga, uga)
DEFINE_LANGUAGE_CODE ("Uighur; Uyghur", ug, uig, uig)
DEFINE_LANGUAGE_CODE ("Ukrainian", uk, ukr, ukr)
DEFINE_LANGUAGE_CODE3 ("Umbundu", umb, umb)
+DEFINE_LANGUAGE_CODE3 ("Unami Delaware", unm, unm)
DEFINE_LANGUAGE_CODE3 ("Undetermined", und, und)
DEFINE_LANGUAGE_CODE3 ("Upper Sorbian", hsb, hsb)
DEFINE_LANGUAGE_CODE ("Urdu", ur, urd, urd)
@@ -492,7 +498,7 @@ DEFINE_LANGUAGE_CODE ("Volapük", vo, vol, vol)
DEFINE_LANGUAGE_CODE3 ("Votic", vot, vot)
DEFINE_LANGUAGE_CODE3 ("Wakashan languages", wak, wak)
DEFINE_LANGUAGE_CODE3 ("Walser", wae, wae)
-DEFINE_LANGUAGE_CODE3 ("Walamo", wal, wal)
+DEFINE_LANGUAGE_CODE3 ("Walaita", wal, wal)
DEFINE_LANGUAGE_CODE ("Walloon", wa, wln, wln)
DEFINE_LANGUAGE_CODE3 ("Waray", war, war)
DEFINE_LANGUAGE_CODE3 ("Washo", was, was)
diff --git a/libc/locale/locarchive.h b/libc/locale/locarchive.h
index f2d84771a..fec3b1a4f 100644
--- a/libc/locale/locarchive.h
+++ b/libc/locale/locarchive.h
@@ -80,6 +80,8 @@ struct locrecent
struct locarhandle
{
+ /* Full path to the locale archive file. */
+ const char *fname;
int fd;
void *addr;
size_t mmaped;
diff --git a/libc/locale/programs/localedef.c b/libc/locale/programs/localedef.c
index 51927173a..8b94ba066 100644
--- a/libc/locale/programs/localedef.c
+++ b/libc/locale/programs/localedef.c
@@ -212,7 +212,7 @@ main (int argc, char *argv[])
/* Handle a few special cases. */
if (list_archive)
- show_archive_content (verbose);
+ show_archive_content (remaining > 1 ? argv[remaining] : NULL, verbose);
if (add_to_archive)
return add_locales_to_archive (argc - remaining, &argv[remaining],
replace_archive);
diff --git a/libc/locale/programs/localedef.h b/libc/locale/programs/localedef.h
index e010c7298..5a05a2e38 100644
--- a/libc/locale/programs/localedef.h
+++ b/libc/locale/programs/localedef.h
@@ -170,7 +170,9 @@ extern int add_locales_to_archive (size_t nlist, char *list[], bool replace);
/* Removed named locales from archive. */
extern int delete_locales_from_archive (size_t nlist, char *list[]);
-/* List content of locale archive. */
-extern void show_archive_content (int verbose) __attribute__ ((noreturn));
+/* List content of locale archive. If FNAME is non-null use that as
+ the locale archive to list, otherwise the default. */
+extern void show_archive_content (const char *fname,
+ int verbose) __attribute__ ((noreturn));
#endif /* localedef.h */
diff --git a/libc/locale/programs/locarchive.c b/libc/locale/programs/locarchive.c
index e2a30b568..e796865a7 100644
--- a/libc/locale/programs/locarchive.c
+++ b/libc/locale/programs/locarchive.c
@@ -223,6 +223,7 @@ create_archive (const char *archivefname, struct locarhandle *ah)
_("cannot change mode of new locale archive"));
}
+ ah->fname = NULL;
ah->fd = fd;
ah->mmap_base = mmap_base;
ah->mmap_len = mmap_len;
@@ -562,11 +563,17 @@ open_archive (struct locarhandle *ah, bool readonly)
struct locarhead head;
int retry = 0;
size_t prefix_len = output_prefix ? strlen (output_prefix) : 0;
- char archivefname[prefix_len + sizeof (ARCHIVE_NAME)];
+ char default_fname[prefix_len + sizeof (ARCHIVE_NAME)];
+ char *archivefname = ah->fname;
- if (output_prefix)
- memcpy (archivefname, output_prefix, prefix_len);
- strcpy (archivefname + prefix_len, ARCHIVE_NAME);
+ /* If ah has a non-NULL fname open that otherwise open the default. */
+ if (archivefname == NULL)
+ {
+ archivefname = default_fname;
+ if (output_prefix)
+ memcpy (archivefname, output_prefix, prefix_len);
+ strcpy (archivefname + prefix_len, ARCHIVE_NAME);
+ }
while (1)
{
@@ -574,8 +581,11 @@ open_archive (struct locarhandle *ah, bool readonly)
fd = open64 (archivefname, readonly ? O_RDONLY : O_RDWR);
if (fd == -1)
{
- /* Maybe the file does not yet exist. */
- if (errno == ENOENT)
+ /* Maybe the file does not yet exist? If we are opening
+ the default locale archive we ignore the failure and
+ list an empty archive, otherwise we print an error
+ and exit. */
+ if (errno == ENOENT && archivefname == default_fname)
{
if (readonly)
{
@@ -1329,6 +1339,7 @@ add_locales_to_archive (nlist, list, replace)
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
+ ah.fname = NULL;
open_archive (&ah, false);
while (nlist-- > 0)
@@ -1528,6 +1539,7 @@ delete_locales_from_archive (nlist, list)
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
+ ah.fname = NULL;
open_archive (&ah, false);
head = ah.addr;
@@ -1617,7 +1629,7 @@ dataentcmp (const void *a, const void *b)
void
-show_archive_content (int verbose)
+show_archive_content (const char *fname, int verbose)
{
struct locarhandle ah;
struct locarhead *head;
@@ -1627,6 +1639,7 @@ show_archive_content (int verbose)
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
+ ah.fname = fname;
open_archive (&ah, true);
head = ah.addr;
diff --git a/libc/locale/programs/locfile.c b/libc/locale/programs/locfile.c
index f12ca0725..73bbe11c3 100644
--- a/libc/locale/programs/locfile.c
+++ b/libc/locale/programs/locfile.c
@@ -343,6 +343,7 @@ write_all_categories (struct localedef_t *definitions,
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
+ ah.fname = NULL;
open_archive (&ah, false);
if (add_locale_to_archive (&ah, locname, to_archive, true) != 0)
diff --git a/libc/localedata/ChangeLog b/libc/localedata/ChangeLog
index b87cc98f4..e493d9d3e 100644
--- a/libc/localedata/ChangeLog
+++ b/libc/localedata/ChangeLog
@@ -1,3 +1,118 @@
+2013-11-04 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/unm_US: Adjust language-code fields of LC_ADDRESS.
+ * locales/wal_ET: Likewise.
+
+2013-11-03 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/quz_PE: Adjust language-code fields of LC_ADDRESS.
+ * locales/szl_PL: Likewise.
+ * locales/ta_IN: Likewise.
+ * locales/ta_LK: Likewise.
+ * locales/te_IN: Likewise.
+ * locales/tg_TJ: Likewise.
+ * locales/tl_PH: Likewise.
+ * locales/tn_ZA: Likewise.
+ * locales/tr_CY: Likewise.
+ * locales/tr_TR: Likewise.
+ * locales/ts_ZA: Likewise.
+ * locales/tt_RU: Likewise.
+ * locales/tt_RU@iqtelif: Likewise.
+ * locales/ug_CN: Likewise.
+ * locales/ur_IN: Likewise.
+ * locales/ur_PK: Likewise.
+ * locales/uz_UZ: Likewise.
+ * locales/uz_UZ@cyrillic: Likewise.
+ * locales/ve_ZA: Likewise.
+ * locales/vi_VN: Likewise.
+ * locales/wa_BE: Likewise.
+ * locales/wal_ET: Likewise.
+ * locales/wo_SN: Likewise.
+ * locales/xh_ZA: Likewise.
+ * locales/yi_US: Likewise.
+ * locales/yue_HK: Likewise.
+ * locales/zh_HK: Likewise.
+ * locales/zh_SG: Likewise.
+
+2013-11-03 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/pa_IN: Adjust language-code fields of LC_ADDRESS.
+ * locales/pa_PK: Likewise.
+ * locales/pl_PL: Likewise.
+ * locales/ps_AF: Likewise.
+ * locales/pt_BR: Likewise.
+ * locales/pt_PT: Likewise.
+ * locales/ru_RU: Likewise.
+ * locales/ru_UA: Likewise.
+ * locales/sa_IN: Likewise.
+ * locales/sat_IN: Likewise.
+ * locales/sc_IT: Likewise.
+ * locales/sd_IN: Likewise.
+ * locales/sd_IN@devanagari: Likewise.
+ * locales/se_NO: Likewise.
+ * locales/si_LK: Likewise.
+ * locales/sk_SK: Likewise.
+ * locales/sl_SI: Likewise.
+ * locales/sq_AL: Likewise.
+ * locales/sq_MK: Likewise.
+ * locales/ss_ZA: Likewise.
+ * locales/st_ZA: Likewise.
+ * locales/sv_SE: Likewise.
+ * locales/sw_KE: Likewise.
+ * locales/sw_TZ: Likewise.
+
+2013-11-01 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/nb_NO: Adjust language-code fields of LC_ADDRESS.
+ * locales/ne_NP: Likewise.
+ * locales/nhn_MX: Likewise.
+ * locales/niu_NU: Likewise.
+ * locales/niu_NZ: Likewise.
+ * locales/nl_AW: Likewise.
+ * locales/nl_BE: Likewise.
+ * locales/nn_NO: Likewise.
+ * locales/nr_ZA: Likewise.
+ * locales/oc_FR: Likewise.
+ * locales/or_IN: Likewise.
+ * locales/os_RU: Likewise.
+
+2013-10-31 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/mag_IN: Adjust language-code fields of LC_ADDRESS.
+ * locales/mai_IN: Likewise.
+ * locales/mg_MG: Likewise.
+ * locales/mhr_RU: Likewise.
+ * locales/mi_NZ: Likewise.
+ * locales/ml_IN: Likewise.
+ * locales/mni_IN: Likewise.
+ * locales/mr_IN: Likewise.
+ * locales/ms_MY: Likewise.
+ * locales/mt_MT: Likewise.
+
+2013-10-29 Chris Leonard <cjl@sugarlabs.org>
+
+ [BZ #16078]
+ * locales/anp_IN: New locale for anp_IN.
+ * SUPPORTED: Add anp_IN.
+
+2013-10-24 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/ja_JP: Adjust language-code fields of LC_ADDRESS.
+ * locales/ka_GE: Likewise.
+ * locales/kk_KZ: Likewise.
+ * locales/kl_GL: Likewise.
+ * locales/kn_IN: Likewise.
+ * locales/ko_KR: Likewise.
+ * locales/kok_IN: Likewise.
+ * locales/ks_IN: Likewise.
+ * locales/ku_TR: Likewise.
+ * locales/kw_GB: Likewise.
+ * locales/ky_KG: Likewise.
+ * locales/lg_UG: Likewise.
+ * locales/lij_IT: Likewise.
+ * locales/lt_LT: Likewise.
+ * locales/lv_LV: Likewise.
+
2013-10-13 Chris Leonard <cjl@sugarlabs.org>
* locales/he_IL: Adjust language-code fields of LC_ADDRESS.
diff --git a/libc/localedata/SUPPORTED b/libc/localedata/SUPPORTED
index 9fde294a8..25dfca306 100644
--- a/libc/localedata/SUPPORTED
+++ b/libc/localedata/SUPPORTED
@@ -12,6 +12,7 @@ ak_GH/UTF-8 \
am_ET/UTF-8 \
an_ES.UTF-8/UTF-8 \
an_ES/ISO-8859-15 \
+anp_IN/UTF-8 \
ar_AE.UTF-8/UTF-8 \
ar_AE/ISO-8859-6 \
ar_BH.UTF-8/UTF-8 \
diff --git a/libc/localedata/locales/anp_IN b/libc/localedata/locales/anp_IN
new file mode 100644
index 000000000..c2400643c
--- /dev/null
+++ b/libc/localedata/locales/anp_IN
@@ -0,0 +1,205 @@
+comment_char %
+escape_char /
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Angika language locale for India.
+%
+% Contributed by Dr Amrendra, Sangeeta Kumari <sangeeta_0975@yahoo.com>,
+% Rajesh Ranjan <rajeshkajha@yahoo.com>, Pravin Satpute <psatpute AT redhat DOT com>
+% and Chris Leonard <cjlhomeaddress AT gmail DOT com>
+%
+% This file is a part of GNU C Library (glibc) and contains locale data. The
+% Free Software Foundation does not claim any copyright interest in the
+% locale data contained in this file. The foregoing does not affect the
+% license of GNU C Library (glibc) as a whole. It does not exempt you from the
+% conditions of the license if your use would otherwise be governed by
+% that license.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LC_IDENTIFICATION
+title "Angika language locale for India"
+source ""
+address ""
+contact ""
+email "bhashaghar@googlegroups.com"
+tel ""
+fax ""
+language "Angika"
+territory "India"
+revision "1.0"
+date "2013-10-24"
+%
+category "anp_IN:2013";LC_IDENTIFICATION
+category "anp_IN:2013";LC_CTYPE
+category "anp_IN:2013";LC_COLLATE
+category "anp_IN:2013";LC_TIME
+category "anp_IN:2013";LC_NUMERIC
+category "anp_IN:2013";LC_MONETARY
+category "anp_IN:2013";LC_MESSAGES
+category "anp_IN:2013";LC_PAPER
+category "anp_IN:2013";LC_NAME
+category "anp_IN:2013";LC_ADDRESS
+category "anp_IN:2013";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "hi_IN"
+END LC_CTYPE
+
+LC_COLLATE
+copy "hi_IN"
+END LC_COLLATE
+
+LC_MONETARY
+copy "hi_IN"
+END LC_MONETARY
+
+
+LC_NUMERIC
+copy "hi_IN"
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category.
+% These are generated based on XML base Locale definition file
+% for IBM Class for Unicode/Java
+%
+% Abbreviated weekday names (%a)
+% रवि; सोम; मंगल; बुध; बृहस्पति; शुक्र; शनि
+abday "<U0930><U0935><U093F><U0020>";/
+ "<U0938><U094B><U092E><U0020>";/
+ "<U092E><U0902><U0917><U0932><U0020>";/
+ "<U092C><U0941><U0927><U0020>";/
+ "<U092C><U0943><U0939><U0938><U094D><U092A><U0924><U093F><U0020>";/
+ "<U0936><U0941><U0915><U094D><U0930><U0020>";/
+ "<U0936><U0928><U093F><U0020>"
+%
+% Full weekday names (%A)
+% रविवार; सोमवार; मंगलवार; बुधवार; बृहस्पतिवार; शुक्रवार; शनिवार
+day "<U0930><U0935><U093F><U0935><U093E><U0930><U0020>";/
+ "<U0938><U094B><U092E><U0935><U093E><U0930><U0020>";/
+ "<U092E><U0902><U0917><U0932><U0935><U093E><U0930><U0020>";/
+ "<U092C><U0941><U0927><U0935><U093E><U0930><U0020>";/
+ "<U092C><U0943><U0939><U0938><U094D><U092A><U0924><U093F><U0935><U093E><U0930><U0020>";/
+ "<U0936><U0941><U0915><U094D><U0930><U0935><U093E><U0930><U0020>";/
+ "<U0936><U0928><U093F><U0935><U093E><U0930><U0020>"
+%
+% Abbreviated month names (%b)
+% जन; फर; मार्च; अप्रै; मई; जून; जुल; अग; सित; अक्टू; नव; दिस
+abmon "<U091C><U0928><U0935><U0930><U0940>";/
+ "<U092B><U0930><U0935><U0930><U0940>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A><U094D><U0930><U0948><U0932>";/
+ "<U092E><U0908>";/
+ "<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E><U0908>";/
+ "<U0905><U0917><U0938><U094D><U0924>";/
+ "<U0938><U093F><U0924><U0902><U092C><U0930>";/
+ "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
+ "<U0928><U0935><U0902><U092C><U0930>";/
+ "<U0926><U093F><U0938><U0902><U092C><U0930>"
+%
+% Full month names (%B)
+% जनवरी; फरवरी; मार्च; अप्रैल; मई; जून; जुलाई; अगस्त; सितंबर; अक्टूबर; नवंबर; दिसंबर
+mon "<U091C><U0928><U0935><U0930><U0940>";/
+ "<U092B><U0930><U0935><U0930><U0940>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A><U094D><U0930><U0948><U0932>";/
+ "<U092E><U0908>";/
+ "<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E><U0908>";/
+ "<U0905><U0917><U0938><U094D><U0924>";/
+ "<U0938><U093F><U0924><U0902><U092C><U0930>";/
+ "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
+ "<U0928><U0935><U0902><U092C><U0930>";/
+ "<U0926><U093F><U0938><U0902><U092C><U0930>"%
+%
+% Equivalent of AM PM
+% पूर्वाह्न; अपराह्न
+am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
+ "<U0905><U092A><U0930><U093E><U0939><U094D><U0928>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S %Z
+d_t_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S %Z
+t_fmt "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+
+LC_MESSAGES
+% ^[yY].*
+yesexpr "<U005E><U005B><U0939><U0935><U0079><U0059><U005D>"
+% ^[nN].*
+noexpr "<U005E><U005B><U0928><U0907><U006E><U004E><U005D>"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "hi_IN"
+END LC_PAPER
+
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_NAME category.
+%
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen ""
+% श्री
+name_mr "<U0936><U094D><U0930><U0940>"
+% श्रीमती
+name_mrs "<U0936><U094D><U0930><U0940><U092E><U0924><U0940>"
+% कुमारी
+name_miss "<U0915><U0941><U092E><U093E><U0930><U0940>"
+% कुमार
+name_ms "<U0915><U0941><U092E><U093E><U0930>"
+END LC_NAME
+
+
+LC_ADDRESS
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+% anp
+lang_term "<U0061><U006E><U0070>"
+% anp
+lang_lib "<U0061><U006E><U0070>"
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+copy "hi_IN"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
diff --git a/libc/localedata/locales/ja_JP b/libc/localedata/locales/ja_JP
index ee2e7f3be..53b11e997 100644
--- a/libc/localedata/locales/ja_JP
+++ b/libc/localedata/locales/ja_JP
@@ -15044,7 +15044,12 @@ country_ab3 "<U004A><U0050><U004E>"
country_num 392
% J
country_car "<U004A>"
-
+% ja
+lang_ab "<U006A><U0061>"
+% jpn
+lang_term "<U006A><U0070><U006E>"
+% jpn
+lang_lib "<U006A><U0070><U006E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ka_GE b/libc/localedata/locales/ka_GE
index 5577c5453..0b7114260 100644
--- a/libc/localedata/locales/ka_GE
+++ b/libc/localedata/locales/ka_GE
@@ -48,9 +48,12 @@ country_num 268
country_car "<U0047><U0045>"
country_isbn "99928"
% lang_name FIXME Georgian in Georgian
-lang_ab "ka"
-lang_term "kat"
-lang_lib "geo"
+% ka
+lang_ab "<U006B><U0061>"
+% kat
+lang_term "<U006B><U0061><U0074>"
+% geo
+lang_lib "<U0067><U0065><U006F>"
END LC_ADDRESS
LC_COLLATE
diff --git a/libc/localedata/locales/kk_KZ b/libc/localedata/locales/kk_KZ
index 2f4994da6..9fe04881a 100644
--- a/libc/localedata/locales/kk_KZ
+++ b/libc/localedata/locales/kk_KZ
@@ -263,5 +263,10 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U004E><U0025><U0063><U0025><U004E>"
% KZ
country_car "<U004B><U005A>"
-
+% kk
+lang_ab "<U006B><U006B>"
+% kaz
+lang_term "<U006B><U0061><U007A>"
+% kaz
+lang_lib "<U006B><U0061><U007A>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/kl_GL b/libc/localedata/locales/kl_GL
index 5bd305d94..217ba6bf9 100644
--- a/libc/localedata/locales/kl_GL
+++ b/libc/localedata/locales/kl_GL
@@ -145,4 +145,10 @@ country_ab3 "<U0047><U0052><U004C>"
country_num 304
% GRO
country_car "<U0047><U0052><U004F>"
+% kl
+lang_ab "<U006B><U006C>"
+% kal
+lang_term "<U006B><U0061><U006C>"
+% kal
+lang_lib "<U006B><U0061><U006C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/kn_IN b/libc/localedata/locales/kn_IN
index ce0a1ade6..aa6ea38b2 100644
--- a/libc/localedata/locales/kn_IN
+++ b/libc/localedata/locales/kn_IN
@@ -221,7 +221,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% kn
+lang_ab "<U006B><U006E>"
+% kan
+lang_term "<U006B><U0061><U006E>"
+% kan
+lang_lib "<U006B><U0061><U006E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ko_KR b/libc/localedata/locales/ko_KR
index 97d9b1656..fea519eb9 100644
--- a/libc/localedata/locales/ko_KR
+++ b/libc/localedata/locales/ko_KR
@@ -6249,5 +6249,10 @@ country_ab3 "<U004B><U004F><U0052>"
country_num 410
% ROK
country_car "<U0052><U004F><U004B>"
-
+% ko
+lang_ab "<U006B><U006F>"
+% kor
+lang_term "<U006B><U006F><U0072>"
+% kor
+lang_lib "<U006B><U006F><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/kok_IN b/libc/localedata/locales/kok_IN
index c17887c2b..fb7aa9e6e 100644
--- a/libc/localedata/locales/kok_IN
+++ b/libc/localedata/locales/kok_IN
@@ -198,6 +198,10 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
+% kok
+lang_term "<U006B><U006F><U006B>"
+% kok
+lang_lib "<U006B><U006F><U006B>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ks_IN b/libc/localedata/locales/ks_IN
index bdaf57dc0..ad6eafef7 100644
--- a/libc/localedata/locales/ks_IN
+++ b/libc/localedata/locales/ks_IN
@@ -199,6 +199,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
+% ks
+lang_ab "<U006B><U0073>"
+% kas
+lang_term "<U006B><U0061><U0073>"
+% kas
+lang_lib "<U006B><U0061><U0073>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ku_TR b/libc/localedata/locales/ku_TR
index 3fff19ccb..ddd671d97 100644
--- a/libc/localedata/locales/ku_TR
+++ b/libc/localedata/locales/ku_TR
@@ -210,7 +210,10 @@ country_isbn 975
country_car "<U0054><U0052>"
% "kurdi"
lang_name "<U006B><U0075><U0072><U0064><U0069>"
-lang_ab "ku"
-lang_term "kur"
-lang_lib "kur"
+% ku
+lang_ab "<U006B><U0075>"
+% kur
+lang_term "<U006B><U0075><U0072>"
+% kur
+lang_lib "<U006B><U0075><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/kw_GB b/libc/localedata/locales/kw_GB
index a7c03b9b7..35b21e50b 100644
--- a/libc/localedata/locales/kw_GB
+++ b/libc/localedata/locales/kw_GB
@@ -166,5 +166,10 @@ country_ab3 "<U0047><U0042><U0052>"
country_num 826
% GB
country_car "<U0047><U0042>"
-
+% kw
+lang_ab "<U006B><U0077>"
+% cor
+lang_term "<U0063><U006F><U0072>"
+% cor
+lang_lib "<U0063><U006F><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ky_KG b/libc/localedata/locales/ky_KG
index 2702ad31f..107b2a43c 100644
--- a/libc/localedata/locales/ky_KG
+++ b/libc/localedata/locales/ky_KG
@@ -206,5 +206,10 @@ country_ab3 "<U004B><U0059><U0052>"
%country_num 643
% KS
country_car "<U004B><U0053>"
-
+% ky
+lang_ab "<U006B><U0079>"
+% kir
+lang_term "<U006B><U0069><U0072>"
+% kir
+lang_lib "<U006B><U0069><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/lg_UG b/libc/localedata/locales/lg_UG
index 0248145a4..f75e07ba2 100644
--- a/libc/localedata/locales/lg_UG
+++ b/libc/localedata/locales/lg_UG
@@ -332,5 +332,10 @@ country_ab3 "<U0055><U0047><U0041>"
country_num 800
% EAU
country_car "<U0045><U0041><U0055>"
-
+% lg
+lang_ab "<U006C><U0067>"
+% lug
+lang_term "<U006C><U0075><U0067>"
+% lug
+lang_lib "<U006C><U0075><U0067>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/lij_IT b/libc/localedata/locales/lij_IT
index 0d7e4586e..647528011 100644
--- a/libc/localedata/locales/lij_IT
+++ b/libc/localedata/locales/lij_IT
@@ -131,4 +131,8 @@ country_ab3 "<U0049><U0054><U0041>"
country_num 380
% I
country_car "<U0049>"
+% lij
+lang_term "<U006C><U0069><U006A>"
+% lij
+lang_lib "<U006C><U0069><U006A>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/lt_LT b/libc/localedata/locales/lt_LT
index 659a45d6c..49aff858e 100644
--- a/libc/localedata/locales/lt_LT
+++ b/libc/localedata/locales/lt_LT
@@ -2234,5 +2234,10 @@ country_ab3 "<U004C><U0054><U0055>"
country_num 440
% LT
country_car "<U004C><U0054>"
-
+% lt
+lang_ab "<U006C><U0074>"
+% lit
+lang_term "<U006C><U0069><U0074>"
+% lit
+lang_lib "<U006C><U0069><U0074>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/lv_LV b/libc/localedata/locales/lv_LV
index ae9de9b46..4ae623cfa 100644
--- a/libc/localedata/locales/lv_LV
+++ b/libc/localedata/locales/lv_LV
@@ -2226,5 +2226,10 @@ country_ab3 "<U004C><U0056><U0041>"
country_num 428
% LV
country_car "<U004C><U0056>"
-
+% lv
+lang_ab "<U006C><U0076>"
+% lav
+lang_term "<U006C><U0061><U0076>"
+% lav
+lang_lib "<U006C><U0061><U0076>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mag_IN b/libc/localedata/locales/mag_IN
index 4510776da..098002ee8 100644
--- a/libc/localedata/locales/mag_IN
+++ b/libc/localedata/locales/mag_IN
@@ -163,7 +163,10 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% mag
+lang_term "<U006D><U0061><U0067>"
+% mag
+lang_lib "<U006D><U0061><U0067>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mai_IN b/libc/localedata/locales/mai_IN
index 30108990b..7d01817a8 100644
--- a/libc/localedata/locales/mai_IN
+++ b/libc/localedata/locales/mai_IN
@@ -79,7 +79,10 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% mai
+lang_term "<U006D><U0061><U0069>"
+% mai
+lang_lib "<U006D><U0061><U0069>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mg_MG b/libc/localedata/locales/mg_MG
index 159a4a206..14a8658de 100644
--- a/libc/localedata/locales/mg_MG
+++ b/libc/localedata/locales/mg_MG
@@ -180,4 +180,10 @@ country_ab3 "<U004D><U0044><U0047>"
country_num 450
% RM
country_car "<U0052><U004D>"
+% mg
+lang_ab "<U006D><U0067>"
+% mlg
+lang_term "<U006D><U006C><U0067>"
+% mlg
+lang_lib "<U006D><U006C><U0067>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mhr_RU b/libc/localedata/locales/mhr_RU
index b636aab16..7fa34f30c 100644
--- a/libc/localedata/locales/mhr_RU
+++ b/libc/localedata/locales/mhr_RU
@@ -161,4 +161,8 @@ country_ab3 "<U0052><U0055><U0053>"
country_num 643
% RUS
country_car "<U0052><U0055><U0053>"
+% mhr
+lang_term "<U006D><U0068><U0072>"
+% mhr
+lang_lib "<U006D><U0068><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mi_NZ b/libc/localedata/locales/mi_NZ
index a32ece45a..d4cf2a37e 100644
--- a/libc/localedata/locales/mi_NZ
+++ b/libc/localedata/locales/mi_NZ
@@ -170,6 +170,12 @@ country_ab3 "<U004E><U005A><U004C>"
country_num 554
% NZ
country_car "<U004E><U005A>"
+% mi
+lang_ab "<U006D><U0069>"
+% mri
+lang_term "<U006D><U0072><U0069>"
+% mao
+lang_lib "<U006D><U0061><U006F>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ml_IN b/libc/localedata/locales/ml_IN
index cf7b7520a..8dc65f47a 100644
--- a/libc/localedata/locales/ml_IN
+++ b/libc/localedata/locales/ml_IN
@@ -211,7 +211,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% ml
+lang_ab "<U006D><U006C>"
+% mal
+lang_term "<U006D><U0061><U006C>"
+% mal
+lang_lib "<U006D><U0061><U006C>"
END LC_ADDRESS
%
LC_TELEPHONE
diff --git a/libc/localedata/locales/mni_IN b/libc/localedata/locales/mni_IN
index d7d67860f..d12b782b4 100644
--- a/libc/localedata/locales/mni_IN
+++ b/libc/localedata/locales/mni_IN
@@ -165,7 +165,10 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% mni
+lang_term "<U006D><U006E><U0069>"
+% mni
+lang_lib "<U006D><U006E><U0069>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mr_IN b/libc/localedata/locales/mr_IN
index 11c4e09b2..09b9c3736 100644
--- a/libc/localedata/locales/mr_IN
+++ b/libc/localedata/locales/mr_IN
@@ -221,7 +221,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% mr
+lang_ab "<U006D><U0072>"
+% mar
+lang_term "<U006D><U0061><U0072>"
+% mar
+lang_lib "<U006D><U0061><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ms_MY b/libc/localedata/locales/ms_MY
index 122f13f7c..e8535ace0 100644
--- a/libc/localedata/locales/ms_MY
+++ b/libc/localedata/locales/ms_MY
@@ -203,7 +203,12 @@ country_ab3 "<U004D><U0059><U0053>"
country_num 458
% MAL
country_car "<U004D><U0041><U004C>"
-
+% ms
+lang_ab "<U006D><U0073>"
+% msa
+lang_term "<U006D><U0073><U0061>"
+% may
+lang_lib "<U006D><U0061><U0079>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/mt_MT b/libc/localedata/locales/mt_MT
index 7d021b367..61077665f 100644
--- a/libc/localedata/locales/mt_MT
+++ b/libc/localedata/locales/mt_MT
@@ -292,7 +292,12 @@ country_ab3 "<U004D><U004C><U0054>"
country_num 470
% M
country_car "<U004D>"
-
+% mt
+lang_ab "<U006D><U0074>"
+% mlt
+lang_term "<U006D><U006C><U0074>"
+% mlt
+lang_lib "<U006D><U006C><U0074>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/nb_NO b/libc/localedata/locales/nb_NO
index 66b590f6d..07df38cc8 100644
--- a/libc/localedata/locales/nb_NO
+++ b/libc/localedata/locales/nb_NO
@@ -243,5 +243,10 @@ country_ab3 "<U004E><U004F><U0052>"
country_num 578
% N
country_car "<U004E>"
-
+% nb
+lang_ab "<U006E><U0062>"
+% nob
+lang_term "<U006E><U006F><U0062>"
+% nob
+lang_lib "<U006E><U006F><U0062>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ne_NP b/libc/localedata/locales/ne_NP
index 7574772cb..9ee000a94 100644
--- a/libc/localedata/locales/ne_NP
+++ b/libc/localedata/locales/ne_NP
@@ -197,7 +197,12 @@ country_ab3 "<U004E><U0050><U004C>"
country_num 524
% NEP
country_car "<U004E><U0045><U0050>"
-
+% ne
+lang_ab "<U006E><U0065>"
+% nep
+lang_term "<U006E><U0065><U0070>"
+% nep
+lang_lib "<U006E><U0065><U0070>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/nhn_MX b/libc/localedata/locales/nhn_MX
index 9029fb08f..6534b78a8 100644
--- a/libc/localedata/locales/nhn_MX
+++ b/libc/localedata/locales/nhn_MX
@@ -150,5 +150,8 @@ country_ab3 "<U004D><U0045><U0058>"
country_num 484
% MEX
country_car "<U004D><U0045><U0058>"
-
+% nhn
+lang_term "<U006E><U0068><U006E>"
+% nhn
+lang_lib "<U006E><U0068><U006E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/niu_NU b/libc/localedata/locales/niu_NU
index 9b2c4510d..440b497f8 100644
--- a/libc/localedata/locales/niu_NU
+++ b/libc/localedata/locales/niu_NU
@@ -183,6 +183,8 @@ country_ab3 "<U004E><U0049><U0055>"
country_num 570
% niu
lang_term "<U006E><U0069><U0075>"
+% niu
+lang_lib "<U006E><U0069><U0075>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/niu_NZ b/libc/localedata/locales/niu_NZ
index 9a7e333af..0afacda7e 100644
--- a/libc/localedata/locales/niu_NZ
+++ b/libc/localedata/locales/niu_NZ
@@ -185,6 +185,8 @@ country_num 554
country_car "<U004E><U005A>"
% niu
lang_term "<U006E><U0069><U0075>"
+% niu
+lang_lib "<U006E><U0069><U0075>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/nl_AW b/libc/localedata/locales/nl_AW
index e9fe8f82e..3da454b65 100644
--- a/libc/localedata/locales/nl_AW
+++ b/libc/localedata/locales/nl_AW
@@ -85,6 +85,9 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0041><U0057>"
country_ab3 "<U0041><U0042><U0057>"
country_num 533
+lang_ab "<U006E><U006C>"
+lang_term "<U006E><U006C><U0064>"
+lang_lib "<U0064><U0075><U0074>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/nl_BE b/libc/localedata/locales/nl_BE
index a3d72dca0..3d1615b6c 100644
--- a/libc/localedata/locales/nl_BE
+++ b/libc/localedata/locales/nl_BE
@@ -136,5 +136,7 @@ country_ab3 "<U0042><U0045><U004C>"
country_num 056
% B
country_car "<U0042>"
-
+lang_ab "<U006E><U006C>"
+lang_term "<U006E><U006C><U0064>"
+lang_lib "<U0064><U0075><U0074>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/nn_NO b/libc/localedata/locales/nn_NO
index c9fe73086..b1a829fa6 100644
--- a/libc/localedata/locales/nn_NO
+++ b/libc/localedata/locales/nn_NO
@@ -161,6 +161,12 @@ country_ab3 "<U004E><U004F><U0052>"
country_num 578
% N
country_car "<U004E>"
+% nn
+lang_ab "<U006E><U006E>"
+% nno
+lang_term "<U006E><U006E><U006F>"
+% nno
+lang_lib "<U006E><U006E><U006F>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/nr_ZA b/libc/localedata/locales/nr_ZA
index 32c2e693d..62d7567c1 100644
--- a/libc/localedata/locales/nr_ZA
+++ b/libc/localedata/locales/nr_ZA
@@ -239,9 +239,12 @@ lang_name "<U0049><U0073><U0069><U004E><U0064><U0065><U0062><U0065><U006C><U0065
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
-% "nr", "nbl"
+% nr
lang_ab "<U006E><U0072>"
+% nbl
lang_term "<U006E><U0062><U006C>"
+% nbl
+lang_lib "<U006E><U0062><U006C>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/oc_FR b/libc/localedata/locales/oc_FR
index 2a7f83643..dfdc09507 100644
--- a/libc/localedata/locales/oc_FR
+++ b/libc/localedata/locales/oc_FR
@@ -47,9 +47,12 @@ country_num 250
country_isbn "2"
country_car "F"
% FIXME lang_name "Occitan" in Occitan ?
-lang_ab "oc"
-lang_term "oci"
-lang_lib "oci"
+% oc
+lang_ab "<U006F><U0063>"
+% oci
+lang_term "<U006F><U0063><U0069>"
+% oci
+lang_lib "<U006F><U0063><U0069>"
END LC_ADDRESS
LC_CTYPE
diff --git a/libc/localedata/locales/or_IN b/libc/localedata/locales/or_IN
index a291cc3ec..15ed7ce4c 100644
--- a/libc/localedata/locales/or_IN
+++ b/libc/localedata/locales/or_IN
@@ -815,6 +815,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
+% or
+lang_ab "<U006F><U0072>"
+% ori
+lang_term "<U006F><U0072><U0069>"
+% ori
+lang_lib "<U006F><U0072><U0069>"
END LC_ADDRESS
%%%%%%%%%%%%%
diff --git a/libc/localedata/locales/os_RU b/libc/localedata/locales/os_RU
index fe66c2864..91743dd65 100644
--- a/libc/localedata/locales/os_RU
+++ b/libc/localedata/locales/os_RU
@@ -176,5 +176,10 @@ country_ab3 "<U0052><U0055><U0053>"
country_num 643
% RUS
country_car "<U0052><U0055><U0053>"
-
+% os
+lang_ab "<U006F><U0073>"
+% oss
+lang_term "<U006F><U0073><U0073>"
+% oss
+lang_lib "<U006F><U0073><U0073>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/pa_IN b/libc/localedata/locales/pa_IN
index 2c4d503cd..a3f8ef475 100644
--- a/libc/localedata/locales/pa_IN
+++ b/libc/localedata/locales/pa_IN
@@ -210,7 +210,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% pa
+lang_ab "<U0070><U0061>"
+% pan
+lang_term "<U0070><U0061><U006E>"
+% pan
+lang_lib "<U0070><U0061><U006E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/pa_PK b/libc/localedata/locales/pa_PK
index 95543d913..122113aa9 100644
--- a/libc/localedata/locales/pa_PK
+++ b/libc/localedata/locales/pa_PK
@@ -179,6 +179,12 @@ country_ab3 "<U0050><U0041><U004B>"
country_num 586
% PK
country_car "<U0050><U004B>"
+% pa
+lang_ab "<U0070><U0061>"
+% pan
+lang_term "<U0070><U0061><U006E>"
+% pan
+lang_lib "<U0070><U0061><U006E>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/pl_PL b/libc/localedata/locales/pl_PL
index 9a4b1ba9d..143161453 100644
--- a/libc/localedata/locales/pl_PL
+++ b/libc/localedata/locales/pl_PL
@@ -2235,5 +2235,10 @@ country_ab3 "<U0050><U004F><U004C>"
country_num 616
% PL
country_car "<U0050><U004C>"
-
+% pl
+lang_ab "<U0070><U006C>"
+% pol
+lang_term "<U0070><U006F><U006C>"
+% pol
+lang_lib "<U0070><U006F><U006C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ps_AF b/libc/localedata/locales/ps_AF
index 7f686abbb..87ce5a6ed 100644
--- a/libc/localedata/locales/ps_AF
+++ b/libc/localedata/locales/ps_AF
@@ -29,18 +29,18 @@ LC_IDENTIFICATION
revision "0.2"
date "2009-01-16"
- category "ps_AF:2007";LC_IDENTIFICATION
- category "ps_AF:2007";LC_CTYPE
- category "ps_AF:2007";LC_COLLATE
- category "ps_AF:2007";LC_TIME
- category "ps_AF:2007";LC_NUMERIC
- category "ps_AF:2007";LC_MONETARY
- category "ps_AF:2007";LC_MESSAGES
- category "ps_AF:2007";LC_MEASUREMENT
- category "ps_AF:2007";LC_PAPER
- category "ps_AF:2007";LC_NAME
- category "ps_AF:2007";LC_ADDRESS
- category "ps_AF:2007";LC_TELEPHONE
+category "ps_AF:2007";LC_IDENTIFICATION
+category "ps_AF:2007";LC_CTYPE
+category "ps_AF:2007";LC_COLLATE
+category "ps_AF:2007";LC_TIME
+category "ps_AF:2007";LC_NUMERIC
+category "ps_AF:2007";LC_MONETARY
+category "ps_AF:2007";LC_MESSAGES
+category "ps_AF:2007";LC_MEASUREMENT
+category "ps_AF:2007";LC_PAPER
+category "ps_AF:2007";LC_NAME
+category "ps_AF:2007";LC_ADDRESS
+category "ps_AF:2007";LC_TELEPHONE
END LC_IDENTIFICATION
LC_CTYPE
@@ -248,27 +248,26 @@ LC_NAME
END LC_NAME
LC_ADDRESS
- postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025>/
+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025>/
<U004E><U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025>/
<U0073><U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072>/
<U0025><U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054>/
<U0025><U004E><U0025><U0063><U0025><U004E>"
- country_name "<U0627><U0641><U063A><U0627><U0646>/
+country_name "<U0627><U0641><U063A><U0627><U0646>/
<U0633><U062A><U0627><U0646>"
- %country_post "<U0041><U0046><U0047>" % FIXME: Not confirmed.
- country_ab2 "<U0041><U0046>"
- country_ab3 "<U0041><U0046><U0047>"
- country_num 004
- country_car "<U0041><U0046><U0047>"
-
- %country_isbn "" % Unfortunately not yet assigned :-(
- % Since to date there is no ISBN agency working
- % in Afghanistan.
-
- lang_name "<U067E><U069A><U062A><U0648>"
- lang_ab "<U0070><U0073>"
- lang_term "<U0070><U0075><U0073>"
- lang_lib "<U0070><U0075><U0073>"
+%country_post "<U0041><U0046><U0047>" % FIXME: Not confirmed.
+country_ab2 "<U0041><U0046>"
+country_ab3 "<U0041><U0046><U0047>"
+country_num 004
+country_car "<U0041><U0046><U0047>"
+
+%country_isbn "" % Unfortunately not yet assigned :-(
+% Since to date there is no ISBN agency working in Afghanistan.
+
+lang_name "<U067E><U069A><U062A><U0648>"
+lang_ab "<U0070><U0073>"
+lang_term "<U0070><U0075><U0073>"
+lang_lib "<U0070><U0075><U0073>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/pt_BR b/libc/localedata/locales/pt_BR
index c93909562..acc9897fd 100644
--- a/libc/localedata/locales/pt_BR
+++ b/libc/localedata/locales/pt_BR
@@ -157,5 +157,10 @@ country_ab3 "<U0042><U0052><U0041>"
country_num 076
% BR
country_car "<U0042><U0052>"
-
+% pt
+lang_ab "<U0070><U0074>"
+% por
+lang_term "<U0070><U006F><U0072>"
+% por
+lang_lib "<U0070><U006F><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/pt_PT b/libc/localedata/locales/pt_PT
index 7e443032b..7417b3457 100644
--- a/libc/localedata/locales/pt_PT
+++ b/libc/localedata/locales/pt_PT
@@ -158,5 +158,10 @@ country_ab3 "<U0050><U0052><U0054>"
country_num 620
% P
country_car "<U0050>"
-
+% pt
+lang_ab "<U0070><U0074>"
+% por
+lang_term "<U0070><U006F><U0072>"
+% por
+lang_lib "<U0070><U006F><U0072>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/quz_PE b/libc/localedata/locales/quz_PE
index efc5a0077..6521fec8b 100644
--- a/libc/localedata/locales/quz_PE
+++ b/libc/localedata/locales/quz_PE
@@ -170,7 +170,10 @@ country_ab3 "<U0050><U0045><U0052>"
country_num 604
% PE
country_car "<U0050><U0045>"
-
+% quz
+lang_term "<U0071><U0075><U007A>"
+% quz
+lang_lib "<U0071><U0075><U007A>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ru_RU b/libc/localedata/locales/ru_RU
index 1c7e8069e..0cb3a119b 100644
--- a/libc/localedata/locales/ru_RU
+++ b/libc/localedata/locales/ru_RU
@@ -188,5 +188,10 @@ country_ab3 "<U0052><U0055><U0053>"
country_num 643
% RUS
country_car "<U0052><U0055><U0053>"
-
+% ru
+lang_ab "<U0072><U0075>"
+% rus
+lang_term "<U0072><U0075><U0073>"
+% rus
+lang_lib "<U0072><U0075><U0073>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ru_UA b/libc/localedata/locales/ru_UA
index ef689d583..676424933 100644
--- a/libc/localedata/locales/ru_UA
+++ b/libc/localedata/locales/ru_UA
@@ -179,5 +179,10 @@ country_ab3 "<U0055><U004B><U0052>"
country_num 804
% UA
country_car "<U0055><U0041>"
-
+% ru
+lang_ab "<U0072><U0075>"
+% rus
+lang_term "<U0072><U0075><U0073>"
+% rus
+lang_lib "<U0072><U0075><U0073>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sa_IN b/libc/localedata/locales/sa_IN
index efcb6de1d..41651ca55 100644
--- a/libc/localedata/locales/sa_IN
+++ b/libc/localedata/locales/sa_IN
@@ -237,7 +237,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% sa
+lang_ab "<U0073><U0061>"
+% san
+lang_term "<U0073><U0061><U006E>"
+% san
+lang_lib "<U0073><U0061><U006E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sat_IN b/libc/localedata/locales/sat_IN
index 57fb383f1..b334b8823 100644
--- a/libc/localedata/locales/sat_IN
+++ b/libc/localedata/locales/sat_IN
@@ -179,7 +179,10 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% sat
+lang_term "<U0073><U0061><U0074>"
+% sat
+lang_lib "<U0073><U0061><U0074>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sc_IT b/libc/localedata/locales/sc_IT
index 8ff00a02e..065ad6165 100644
--- a/libc/localedata/locales/sc_IT
+++ b/libc/localedata/locales/sc_IT
@@ -142,5 +142,10 @@ country_ab3 "<U0049><U0054><U0041>"
country_num 380
% I
country_car "<U0049>"
-
+% sc
+lang_ab "<U0073><U0063>"
+% srd
+lang_term "<U0073><U0072><U0064>"
+% srd
+lang_lib "<U0073><U0072><U0064>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sd_IN b/libc/localedata/locales/sd_IN
index cc0de5b54..866cc8db8 100644
--- a/libc/localedata/locales/sd_IN
+++ b/libc/localedata/locales/sd_IN
@@ -194,7 +194,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% sd
+lang_ab "<U0073><U0064>"
+% snd
+lang_term "<U0073><U006E><U0064>"
+% snd
+lang_lib "<U0073><U006E><U0064>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sd_IN@devanagari b/libc/localedata/locales/sd_IN@devanagari
index e275eb627..66b1f9e6d 100644
--- a/libc/localedata/locales/sd_IN@devanagari
+++ b/libc/localedata/locales/sd_IN@devanagari
@@ -194,6 +194,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
+% sd
+lang_ab "<U0073><U0064>"
+% snd
+lang_term "<U0073><U006E><U0064>"
+% snd
+lang_lib "<U0073><U006E><U0064>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/se_NO b/libc/localedata/locales/se_NO
index 6bbf280dc..53ee33fe5 100644
--- a/libc/localedata/locales/se_NO
+++ b/libc/localedata/locales/se_NO
@@ -316,5 +316,10 @@ country_ab3 "<U004E><U004F><U0052>"
country_num 578
% N
country_car "<U004E>"
-
+% se
+lang_ab "<U0073><U0065>"
+% sme
+lang_term "<U0073><U006D><U0065>"
+% sme
+lang_lib "<U0073><U006D><U0065>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/si_LK b/libc/localedata/locales/si_LK
index f600ab710..cc75c49a6 100644
--- a/libc/localedata/locales/si_LK
+++ b/libc/localedata/locales/si_LK
@@ -200,6 +200,12 @@ country_ab3 "<U004C><U004B><U0041>"
country_num 144
% CL
country_car "<U0043><U004C>"
+% si
+lang_ab "<U0073><U0069>"
+% sin
+lang_term "<U0073><U0069><U006E>"
+% sin
+lang_lib "<U0073><U0069><U006E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sk_SK b/libc/localedata/locales/sk_SK
index bf3f6a414..8ba797a4f 100644
--- a/libc/localedata/locales/sk_SK
+++ b/libc/localedata/locales/sk_SK
@@ -226,5 +226,10 @@ country_ab3 "<U0053><U0056><U004B>"
country_num 703
% SK
country_car "<U0053><U004B>"
-
+% sk
+lang_ab "<U0073><U006B>"
+% slk
+lang_term "<U0073><U006C><U006B>"
+% slo
+lang_lib "<U0073><U006C><U006F>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sl_SI b/libc/localedata/locales/sl_SI
index 3808e63e8..353933eb0 100644
--- a/libc/localedata/locales/sl_SI
+++ b/libc/localedata/locales/sl_SI
@@ -2225,5 +2225,10 @@ country_ab3 "<U0053><U0056><U004E>"
country_num 705
% SLO
country_car "<U0053><U004C><U004F>"
-
+% sl
+lang_ab "<U0073><U006C>"
+% slv
+lang_term "<U0073><U006C><U0076>"
+% slv
+lang_lib "<U0073><U006C><U0076>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sq_AL b/libc/localedata/locales/sq_AL
index 2d3253279..09873c020 100644
--- a/libc/localedata/locales/sq_AL
+++ b/libc/localedata/locales/sq_AL
@@ -334,7 +334,12 @@ country_ab3 "<U0041><U004C><U0042>"
country_num 008
% AL
country_car "<U0041><U004C>"
-
+% sq
+lang_ab "<U0073><U0071>"
+% sqi
+lang_term "<U0073><U0071><U0069>"
+% alb
+lang_lib "<U0061><U006C><U0062>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sq_MK b/libc/localedata/locales/sq_MK
index caa250acf..7bac02ee9 100644
--- a/libc/localedata/locales/sq_MK
+++ b/libc/localedata/locales/sq_MK
@@ -102,9 +102,12 @@ country_car "<U004d><U004b>"
country_num 807
country_isbn "9989"
% lang_name ""
-% lang_ab ""
-% lang_term ""
-% lang_lib ""
+% sq
+lang_ab "<U0073><U0071>"
+% sqi
+lang_term "<U0073><U0071><U0069>"
+% alb
+lang_lib "<U0061><U006C><U0062>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ss_ZA b/libc/localedata/locales/ss_ZA
index 19cb7413b..d33683c15 100644
--- a/libc/localedata/locales/ss_ZA
+++ b/libc/localedata/locales/ss_ZA
@@ -243,9 +243,12 @@ lang_name "<U0053><U0069><U0053><U0077><U0061><U0074><U0069>"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
-% "ss", ssw"
+% ss
lang_ab "<U0073><U0073>"
+% ssw
lang_term "<U0073><U0073><U0077>"
+% ssw
+lang_lib "<U0073><U0073><U0077>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/st_ZA b/libc/localedata/locales/st_ZA
index 67e356cf7..c29bb7d49 100644
--- a/libc/localedata/locales/st_ZA
+++ b/libc/localedata/locales/st_ZA
@@ -240,9 +240,12 @@ country_car "<U005A><U0041>"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
-% "st", "sot"
+% st
lang_ab "<U0073><U0074>"
+% sot
lang_term "<U0073><U006F><U0074>"
+% sot
+lang_lib "<U0073><U006F><U0074>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/sv_SE b/libc/localedata/locales/sv_SE
index d7ebdd8f6..d0e59864b 100644
--- a/libc/localedata/locales/sv_SE
+++ b/libc/localedata/locales/sv_SE
@@ -219,5 +219,7 @@ country_ab3 "<U0053><U0057><U0045>"
country_num 752
% S
country_car "<U0053>"
-
+lang_ab "<U0073><U0076>"
+lang_term "<U0073><U0077><U0065>"
+lang_lib "<U0073><U0077><U0065>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sw_KE b/libc/localedata/locales/sw_KE
index 0037161ba..de91d37a5 100644
--- a/libc/localedata/locales/sw_KE
+++ b/libc/localedata/locales/sw_KE
@@ -157,7 +157,11 @@ country_car "<U0045><U0041><U004B>"
% Kiswahili
lang_name "<U004B><U0069><U0073><U0077><U0061><U0068><U0069><U006C><U0069>"
% sw
-lang_ab "<U0073><U0077>"
+lang_ab "<U0073><U0077>"
+% swa
+lang_term "<U0073><U0077><U0061>"
+% swa
+lang_lib "<U0073><U0077><U0061>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/sw_TZ b/libc/localedata/locales/sw_TZ
index 05a48731b..1ae73fb07 100644
--- a/libc/localedata/locales/sw_TZ
+++ b/libc/localedata/locales/sw_TZ
@@ -108,7 +108,11 @@ country_car "<U0045><U0041><U0054>"
% Kiswahili
lang_name "<U004B><U0069><U0073><U0077><U0061><U0068><U0069><U006C><U0069>"
% sw
-lang_ab "<U0073><U0077>"
+lang_ab "<U0073><U0077>"
+% swa
+lang_term "<U0073><U0077><U0061>"
+% swa
+lang_lib "<U0073><U0077><U0061>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/szl_PL b/libc/localedata/locales/szl_PL
index 3147ede4c..3323430f6 100644
--- a/libc/localedata/locales/szl_PL
+++ b/libc/localedata/locales/szl_PL
@@ -217,5 +217,8 @@ country_ab3 "<U0050><U004F><U004C>"
country_num 616
% PL
country_car "<U0050><U004C>"
-
+% szl
+lang_term "<U0073><U007A><U006C>"
+% szl
+lang_lib "<U0073><U007A><U006C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ta_IN b/libc/localedata/locales/ta_IN
index 39212839d..75f63249b 100644
--- a/libc/localedata/locales/ta_IN
+++ b/libc/localedata/locales/ta_IN
@@ -206,7 +206,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% ta
+lang_ab "<U0074><U0061>"
+% tam
+lang_term "<U0074><U0061><U006D>"
+% tam
+lang_lib "<U0074><U0061><U006D>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ta_LK b/libc/localedata/locales/ta_LK
index ae6f5d5c8..7051e3be7 100644
--- a/libc/localedata/locales/ta_LK
+++ b/libc/localedata/locales/ta_LK
@@ -89,4 +89,10 @@ country_ab3 "<U004C><U004B><U0041>"
country_num 144
% CL
country_car "<U0043><U004C>"
+% ta
+lang_ab "<U0074><U0061>"
+% tam
+lang_term "<U0074><U0061><U006D>"
+% tam
+lang_lib "<U0074><U0061><U006D>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/te_IN b/libc/localedata/locales/te_IN
index e9865f5ac..f2ab1b67e 100644
--- a/libc/localedata/locales/te_IN
+++ b/libc/localedata/locales/te_IN
@@ -224,8 +224,12 @@ country_num 356
% IND
country_car "<U0049><U004E><U0044>"
lang_name "<U0C24><U0C46><U0C32><U0C41><U0C17><U0C41>"
-lang_ab "te"
-lang_term "tel"
+% te
+lang_ab "<U0074><U0065>"
+% tel
+lang_term "<U0074><U0065><U006C>"
+% tel
+lang_lib "<U0074><U0065><U006C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/tg_TJ b/libc/localedata/locales/tg_TJ
index 03c36d2a6..3350881db 100644
--- a/libc/localedata/locales/tg_TJ
+++ b/libc/localedata/locales/tg_TJ
@@ -227,7 +227,12 @@ country_ab3 "<U0054><U004A><U004B>"
country_num 762
% TJ
country_car "<U0054><U004A>"
-
+% tg
+lang_ab "<U0074><U0067>"
+% tgk
+lang_term "<U0074><U0067><U006B>"
+% tgk
+lang_lib "<U0074><U0067><U006B>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/tl_PH b/libc/localedata/locales/tl_PH
index 27993e8d4..ae30aeea5 100644
--- a/libc/localedata/locales/tl_PH
+++ b/libc/localedata/locales/tl_PH
@@ -169,7 +169,12 @@ country_ab3 "<U0050><U0048><U004C>"
country_num 608
% RP
country_car "<U0052><U0050>"
-
+% tl
+lang_ab "<U0074><U006C>"
+% tgl
+lang_term "<U0074><U0067><U006C>"
+% tgl
+lang_lib "<U0074><U0067><U006C>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/tn_ZA b/libc/localedata/locales/tn_ZA
index a3f36db29..1a3fd8256 100644
--- a/libc/localedata/locales/tn_ZA
+++ b/libc/localedata/locales/tn_ZA
@@ -246,9 +246,12 @@ lang_name "<U0053><U0065><U0074><U0073><U0077><U0061><U006E><U0061>"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
-% "tn", "tsn"
+% tn
lang_ab "<U0074><U006E>"
+% tsn
lang_term "<U0074><U0073><U006E>"
+% tsn
+lang_lib "<U0074><U0073><U006E>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/tr_CY b/libc/localedata/locales/tr_CY
index daeffc1b9..1c2c3f313 100644
--- a/libc/localedata/locales/tr_CY
+++ b/libc/localedata/locales/tr_CY
@@ -105,9 +105,9 @@ country_ab2 "<U0054><U0052>"
country_ab3 "<U0054><U0055><U0052>"
% Turkish
lang_name "<U0054><U0075><U0072><U006B><U0069><U0073><U0068>"
-% tr
+% tur
lang_term "<U0074><U0075><U0072>"
-% tr
+% tur
lang_lib "<U0074><U0075><U0072>"
%tr
lang_ab "<U0074><U0072>"
diff --git a/libc/localedata/locales/tr_TR b/libc/localedata/locales/tr_TR
index 867e66fc8..189363320 100644
--- a/libc/localedata/locales/tr_TR
+++ b/libc/localedata/locales/tr_TR
@@ -3594,9 +3594,9 @@ country_ab2 "<U0054><U0052>"
country_ab3 "<U0054><U0055><U0052>"
% Turkish
lang_name "<U0054><U0075><U0072><U006B><U0069><U0073><U0068>"
-% tr
+% tur
lang_term "<U0074><U0075><U0072>"
-% tr
+% tur
lang_lib "<U0074><U0072>"
%tr
lang_ab "<U0074><U0072>"
diff --git a/libc/localedata/locales/ts_ZA b/libc/localedata/locales/ts_ZA
index 010cba2d3..c7b56435e 100644
--- a/libc/localedata/locales/ts_ZA
+++ b/libc/localedata/locales/ts_ZA
@@ -240,9 +240,12 @@ lang_name "<U0058><U0069><U0074><U0073><U006F><U006E><U0067><U0061>"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
-% "ts", "tso"
+% ts
lang_ab "<U0074><U0073>"
+% tso
lang_term "<U0074><U0073><U006F>"
+% tso
+lang_lib "<U0074><U0073><U006F>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/tt_RU b/libc/localedata/locales/tt_RU
index f5e1b7588..520c6eb1f 100644
--- a/libc/localedata/locales/tt_RU
+++ b/libc/localedata/locales/tt_RU
@@ -317,7 +317,12 @@ LC_ADDRESS
postal_fmt "???"
% RUS
country_car "<U0052><U0055><U0053>"
-
+% tt
+lang_ab "<U0074><U0074>"
+% tat
+lang_term "<U0074><U0061><U0074>"
+% tat
+lang_lib "<U0074><U0061><U0074>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/tt_RU@iqtelif b/libc/localedata/locales/tt_RU@iqtelif
index b6c40b3ec..4aac6365c 100644
--- a/libc/localedata/locales/tt_RU@iqtelif
+++ b/libc/localedata/locales/tt_RU@iqtelif
@@ -175,7 +175,12 @@ country_ab3 "<U0052><U0055><U0053>"
country_num 643
% RUS
country_car "<U0052><U0055><U0053>"
-
+% tt
+lang_ab "<U0074><U0074>"
+% tat
+lang_term "<U0074><U0061><U0074>"
+% tat
+lang_lib "<U0074><U0061><U0074>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ug_CN b/libc/localedata/locales/ug_CN
index c4e0a9ac1..462f42bc9 100644
--- a/libc/localedata/locales/ug_CN
+++ b/libc/localedata/locales/ug_CN
@@ -311,6 +311,23 @@ LC_NAME % to be fixed
copy "zh_CN"
END LC_NAME
-LC_ADDRESS % to be fixed
-copy "zh_CN"
+LC_ADDRESS
+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 "<U4E2D><U534E><U4EBA><U6C11><U5171><U548C><U56FD>"
+%country_post "FIXME"
+country_ab2 "<U0043><U004E>"
+country_ab3 "<U0043><U0048><U004E>"
+country_num 156
+%country_car "FIXME"
+country_isbn "<U0037>"
+% ug
+lang_ab "<U0075><U0067>"
+% uig
+lang_term "<U0075><U0069><U0067>"
+% uig
+lang_lib "<U0075><U0069><U0067>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/unm_US b/libc/localedata/locales/unm_US
index ddd049363..a04188ec1 100644
--- a/libc/localedata/locales/unm_US
+++ b/libc/localedata/locales/unm_US
@@ -153,8 +153,10 @@ country_car "<U0055><U0053><U0041>"
country_isbn 0
% lang_name ""
% lang_ab ""
-% lang_term ""
-% lang_lib ""
+% unm
+lang_term "<U0075><U006E><U006D>"
+% unm
+lang_lib "<U0075><U006E><U006D>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ur_IN b/libc/localedata/locales/ur_IN
index 366ad5ff4..85e19bfc0 100644
--- a/libc/localedata/locales/ur_IN
+++ b/libc/localedata/locales/ur_IN
@@ -178,7 +178,12 @@ country_ab3 "<U0049><U004E><U0044>"
country_num 356
% IND
country_car "<U0049><U004E><U0044>"
-
+% ur
+lang_ab "<U0075><U0072>"
+% urd
+lang_term "<U0075><U0072><U0064>"
+% urd
+lang_lib "<U0075><U0072><U0064>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ur_PK b/libc/localedata/locales/ur_PK
index 9c91b5a12..ec1ee3b50 100644
--- a/libc/localedata/locales/ur_PK
+++ b/libc/localedata/locales/ur_PK
@@ -197,7 +197,12 @@ country_ab3 "<U0050><U0041><U004B>"
country_num 586
% PK
country_car "<U0050><U004B>"
-
+% ur
+lang_ab "<U0075><U0072>"
+% urd
+lang_term "<U0075><U0072><U0064>"
+% urd
+lang_lib "<U0075><U0072><U0064>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/uz_UZ b/libc/localedata/locales/uz_UZ
index 375e4ac62..5a272a1ea 100644
--- a/libc/localedata/locales/uz_UZ
+++ b/libc/localedata/locales/uz_UZ
@@ -317,7 +317,10 @@ country_num 860
% UZ
country_car "<U0055><U005A>"
lang_name "<U004F><U0027><U007A><U0062><U0065><U006B>"
-lang_ab "uz"
-lang_term "uzb"
-lang_lib "uzb"
+% uz
+lang_ab "<U0075><U007A>"
+% uzb
+lang_term "<U0075><U007A><U0062>"
+% uzb
+lang_lib "<U0075><U007A><U0062>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/uz_UZ@cyrillic b/libc/localedata/locales/uz_UZ@cyrillic
index 4a34eacfc..c7cf51fd4 100644
--- a/libc/localedata/locales/uz_UZ@cyrillic
+++ b/libc/localedata/locales/uz_UZ@cyrillic
@@ -317,7 +317,10 @@ country_num 860
%country_isbn ""
country_car "<U0055><U005A>"
lang_name "<U040E><U0437><U0431><U0435><U043A><U0447><U0430>"
-lang_ab "<U0075><U007A>"
-lang_term "<U0075><U007A><U0062>"
-lang_lib "<U0075><U007A><U0062>"
+% uz
+lang_ab "<U0075><U007A>"
+% uzb
+lang_term "<U0075><U007A><U0062>"
+% uzb
+lang_lib "<U0075><U007A><U0062>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ve_ZA b/libc/localedata/locales/ve_ZA
index b7cf30347..43a9aed4b 100644
--- a/libc/localedata/locales/ve_ZA
+++ b/libc/localedata/locales/ve_ZA
@@ -243,12 +243,12 @@ lang_name "<U0054><U0073><U0068><U0069><U0076><U0065><U006E><U1E13><U0061>"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
-% "ve", "ven", :ven"
+% ve
lang_ab "<U0076><U0065>"
+% ven
lang_term "<U0076><U0065><U006E>"
-% FIXME there seems to be an error with the following but am unable to
-% determine what as it works correctly in other locale files
-% lang_lib "<U0076><U0065><U006E>"
+% ven
+lang_lib "<U0076><U0065><U006E>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/vi_VN b/libc/localedata/locales/vi_VN
index e372ae07c..c1b9e8621 100644
--- a/libc/localedata/locales/vi_VN
+++ b/libc/localedata/locales/vi_VN
@@ -338,7 +338,12 @@ country_ab3 "<U0056><U004E><U004D>"
country_num 704
% VN
country_car "<U0056><U004E>"
-
+% vi
+lang_ab "<U0076><U0069>"
+% vie
+lang_term "<U0076><U0069><U0065>"
+% vie
+lang_lib "<U0076><U0069><U0065>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/wa_BE b/libc/localedata/locales/wa_BE
index d0d4dbff2..8ca9cd8af 100644
--- a/libc/localedata/locales/wa_BE
+++ b/libc/localedata/locales/wa_BE
@@ -46,9 +46,12 @@ country_isbn "2"
% B
country_car "<U0042>"
lang_name "<U0057><U0061><U006C><U006F><U006E>"
-lang_ab "wa"
-lang_term "wln"
-lang_lib "wln"
+% wa
+lang_ab "<U0077><U0061>"
+% wln
+lang_term "<U0077><U006C><U006E>"
+% wln
+lang_lib "<U0077><U006C><U006E>"
END LC_ADDRESS
LC_CTYPE
diff --git a/libc/localedata/locales/wal_ET b/libc/localedata/locales/wal_ET
index 0c93f26cf..8408a629d 100644
--- a/libc/localedata/locales/wal_ET
+++ b/libc/localedata/locales/wal_ET
@@ -4,7 +4,7 @@ escape_char /
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% Sidama language locale for Ethiopia.
+% Walaita language locale for Ethiopia.
%
% Charset: UTF-8
%
@@ -113,9 +113,6 @@ country_car "<U0045><U0054><U0048>"
lang_name "<U12C8><U120B><U12ED><U1273><U1271>"
lang_term "<U0077><U0061><U006C>"
lang_lib "<U0077><U0061><U006C>"
-
-
-%
END LC_ADDRESS
diff --git a/libc/localedata/locales/wo_SN b/libc/localedata/locales/wo_SN
index d593f1f59..3841e0f06 100644
--- a/libc/localedata/locales/wo_SN
+++ b/libc/localedata/locales/wo_SN
@@ -178,6 +178,11 @@ country_ab3 "<U004D><U0044><U0047>"
country_num 450
% SN
country_car "<U0053><U004E>"
-
+% wo
+lang_ab "<U0077><U006F>"
+% wol
+lang_term "<U0077><U006F><U006C>"
+% wol
+lang_lib "<U0077><U006F><U006C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/xh_ZA b/libc/localedata/locales/xh_ZA
index f0f56ed4f..3277ca1a6 100644
--- a/libc/localedata/locales/xh_ZA
+++ b/libc/localedata/locales/xh_ZA
@@ -13,7 +13,7 @@ comment_char %
% 0.2 (2004-11-02):
% 2004-11-01 Dwayne Bailey <dwayne@translate.org.za>
% - Change all contact information
-% - d_t_fmt, date_fmt cahnged day number %e to %-e to remove
+% - d_t_fmt, date_fmt changed day number %e to %-e to remove
% space padding in day.
% - Remove .* from yes/noexpr
% 2004-03-30 Dwayne Bailey <dwayne@translate.org.za>
@@ -235,6 +235,7 @@ country_car "<U005A><U0041>"
% see http://www.loc.gov/standards/iso639-2/englangn.html
lang_ab "<U0078><U0068>"
lang_term "<U0078><U0068><U006F>"
+lang_lib "<U0078><U0068><U006F>"
% Representation of postal addresses (minus the addressee's name) in South
% Africa. (Ignored for now)
diff --git a/libc/localedata/locales/yi_US b/libc/localedata/locales/yi_US
index 586b12db9..46136fbaf 100644
--- a/libc/localedata/locales/yi_US
+++ b/libc/localedata/locales/yi_US
@@ -52,9 +52,12 @@ country_car "<U0055><U0053><U0041>"
% FIXME Check which isbn for Yiddish in USA
country_isbn "0"
lang_name "<U05D9><U05D9><U05B4><U05D3><U05D9><U05E9>"
-lang_ab "yi"
-lang_term "yid"
-lang_lib "yid"
+% yi
+lang_ab "<U0079><U0069>"
+% yid
+lang_term "<U0079><U0069><U0064>"
+% yid
+lang_lib "<U0079><U0069><U0064>"
END LC_ADDRESS
LC_CTYPE
diff --git a/libc/localedata/locales/yue_HK b/libc/localedata/locales/yue_HK
index 4bd7fe105..fdd15280c 100644
--- a/libc/localedata/locales/yue_HK
+++ b/libc/localedata/locales/yue_HK
@@ -151,6 +151,10 @@ country_ab3 "<U0048><U004B><U0047>"
country_num 344
country_isbn "<U0039><U0036><U0032>"
lang_name "<U7CB5><U8A9E>"
+% yue
+lang_term "<U0079><U0075><U0065>"
+% yue
+lang_lib "<U0079><U0075><U0065>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/zh_HK b/libc/localedata/locales/zh_HK
index 1674d816f..6c7d793f5 100644
--- a/libc/localedata/locales/zh_HK
+++ b/libc/localedata/locales/zh_HK
@@ -184,6 +184,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0048><U004B>"
country_ab3 "<U0048><U004B><U0047>"
country_num 344
+lang_ab "<U007A><U0068>"
+lang_term "<U007A><U0068><U006F>"
+lang_lib "<U0063><U0068><U0069>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/zh_SG b/libc/localedata/locales/zh_SG
index dc29268a5..cf7a2f6ea 100644
--- a/libc/localedata/locales/zh_SG
+++ b/libc/localedata/locales/zh_SG
@@ -196,7 +196,9 @@ country_ab3 "<U0053><U0047><U0050>"
country_num 702
% SGP
country_car "<U0053><U0047><U0050>"
-
+lang_ab "<U007A><U0068>"
+lang_term "<U007A><U0068><U006F>"
+lang_lib "<U0063><U0068><U0069>"
END LC_ADDRESS
diff --git a/libc/malloc/Makefile b/libc/malloc/Makefile
index 9ca8edf67..cdf55c85d 100644
--- a/libc/malloc/Makefile
+++ b/libc/malloc/Makefile
@@ -86,7 +86,7 @@ install-bin-script += memusage
generated += memusagestat memusage
extra-objs += memusagestat.o
-# The configure.in check for libgd and its headers did not use $SYSINCLUDES.
+# The configure.ac check for libgd and its headers did not use $SYSINCLUDES.
# The directory specified by --with-headers usually contains only the basic
# kernel interface headers, not something like libgd. So the simplest thing
# is to presume that the standard system headers will be ok for this file.
diff --git a/libc/malloc/hooks.c b/libc/malloc/hooks.c
index 3f663bb6b..1dbe93f38 100644
--- a/libc/malloc/hooks.c
+++ b/libc/malloc/hooks.c
@@ -361,6 +361,14 @@ memalign_check(size_t alignment, size_t bytes, const void *caller)
if (alignment <= MALLOC_ALIGNMENT) return malloc_check(bytes, NULL);
if (alignment < MINSIZE) alignment = MINSIZE;
+ /* If the alignment is greater than SIZE_MAX / 2 + 1 it cannot be a
+ power of 2 and will cause overflow in the check below. */
+ if (alignment > SIZE_MAX / 2 + 1)
+ {
+ __set_errno (EINVAL);
+ return 0;
+ }
+
/* Check for overflow. */
if (bytes > SIZE_MAX - alignment - MINSIZE)
{
diff --git a/libc/malloc/malloc.c b/libc/malloc/malloc.c
index 1a18c3f5f..897c43a39 100644
--- a/libc/malloc/malloc.c
+++ b/libc/malloc/malloc.c
@@ -2253,7 +2253,6 @@ static void* sysmalloc(INTERNAL_SIZE_T nb, mstate av)
mchunkptr remainder; /* remainder from allocation */
unsigned long remainder_size; /* its size */
- unsigned long sum; /* for updating stats */
size_t pagemask = GLRO(dl_pagesize) - 1;
bool tried_mmap = false;
@@ -2325,12 +2324,12 @@ static void* sysmalloc(INTERNAL_SIZE_T nb, mstate av)
/* update statistics */
- if (++mp_.n_mmaps > mp_.max_n_mmaps)
- mp_.max_n_mmaps = mp_.n_mmaps;
+ int new = atomic_exchange_and_add (&mp_.n_mmaps, 1) + 1;
+ atomic_max (&mp_.max_n_mmaps, new);
- sum = mp_.mmapped_mem += size;
- if (sum > (unsigned long)(mp_.max_mmapped_mem))
- mp_.max_mmapped_mem = sum;
+ unsigned long sum;
+ sum = atomic_exchange_and_add(&mp_.mmapped_mem, size) + size;
+ atomic_max (&mp_.max_mmapped_mem, sum);
check_chunk(av, p);
@@ -2780,8 +2779,8 @@ munmap_chunk(mchunkptr p)
return;
}
- mp_.n_mmaps--;
- mp_.mmapped_mem -= total_size;
+ atomic_decrement (&mp_.n_mmaps);
+ atomic_add (&mp_.mmapped_mem, -total_size);
/* If munmap failed the process virtual memory address space is in a
bad shape. Just leave the block hanging around, the process will
@@ -2822,10 +2821,10 @@ mremap_chunk(mchunkptr p, size_t new_size)
assert((p->prev_size == offset));
set_head(p, (new_size - offset)|IS_MMAPPED);
- mp_.mmapped_mem -= size + offset;
- mp_.mmapped_mem += new_size;
- if ((unsigned long)mp_.mmapped_mem > (unsigned long)mp_.max_mmapped_mem)
- mp_.max_mmapped_mem = mp_.mmapped_mem;
+ INTERNAL_SIZE_T new;
+ new = atomic_exchange_and_add (&mp_.mmapped_mem, new_size - size - offset)
+ + new_size - size - offset;
+ atomic_max (&mp_.max_mmapped_mem, new);
return p;
}
@@ -3017,6 +3016,14 @@ __libc_memalign(size_t alignment, size_t bytes)
/* Otherwise, ensure that it is at least a minimum chunk size */
if (alignment < MINSIZE) alignment = MINSIZE;
+ /* If the alignment is greater than SIZE_MAX / 2 + 1 it cannot be a
+ power of 2 and will cause overflow in the check below. */
+ if (alignment > SIZE_MAX / 2 + 1)
+ {
+ __set_errno (EINVAL);
+ return 0;
+ }
+
/* Check for overflow. */
if (bytes > SIZE_MAX - alignment - MINSIZE)
{
@@ -5042,23 +5049,11 @@ malloc_info (int options, FILE *fp)
sizes[i].total = sizes[i].count * sizes[i].to;
}
- mbinptr bin = bin_at (ar_ptr, 1);
- struct malloc_chunk *r = bin->fd;
- if (r != NULL)
- {
- while (r != bin)
- {
- ++sizes[NFASTBINS].count;
- sizes[NFASTBINS].total += r->size;
- sizes[NFASTBINS].from = MIN (sizes[NFASTBINS].from, r->size);
- sizes[NFASTBINS].to = MAX (sizes[NFASTBINS].to, r->size);
- r = r->fd;
- }
- nblocks += sizes[NFASTBINS].count;
- avail += sizes[NFASTBINS].total;
- }
- for (size_t i = 2; i < NBINS; ++i)
+ mbinptr bin;
+ struct malloc_chunk *r;
+
+ for (size_t i = 1; i < NBINS; ++i)
{
bin = bin_at (ar_ptr, i);
r = bin->fd;
diff --git a/libc/malloc/tst-memalign.c b/libc/malloc/tst-memalign.c
index 1c5975248..cf48e7ed1 100644
--- a/libc/malloc/tst-memalign.c
+++ b/libc/malloc/tst-memalign.c
@@ -70,6 +70,21 @@ do_test (void)
free (p);
+ errno = 0;
+
+ /* Test to expose integer overflow in malloc internals from BZ #16038. */
+ p = memalign (-1, pagesize);
+
+ save = errno;
+
+ if (p != NULL)
+ merror ("memalign (-1, pagesize) succeeded.");
+
+ if (p == NULL && save != EINVAL)
+ merror ("memalign (-1, pagesize) errno is not set correctly");
+
+ free (p);
+
/* A zero-sized allocation should succeed with glibc, returning a
non-NULL value. */
p = memalign (sizeof (void *), 0);
diff --git a/libc/malloc/tst-posix_memalign.c b/libc/malloc/tst-posix_memalign.c
index 27c0dd2bd..7f34e37bd 100644
--- a/libc/malloc/tst-posix_memalign.c
+++ b/libc/malloc/tst-posix_memalign.c
@@ -65,6 +65,16 @@ do_test (void)
p = NULL;
+ /* Test to expose integer overflow in malloc internals from BZ #16038. */
+ ret = posix_memalign (&p, -1, pagesize);
+
+ if (ret != EINVAL)
+ merror ("posix_memalign (&p, -1, pagesize) succeeded.");
+
+ free (p);
+
+ p = NULL;
+
/* A zero-sized allocation should succeed with glibc, returning zero
and setting p to a non-NULL value. */
ret = posix_memalign (&p, sizeof (void *), 0);
diff --git a/libc/manual/crypt.texi b/libc/manual/crypt.texi
index ef905904c..9c65b9535 100644
--- a/libc/manual/crypt.texi
+++ b/libc/manual/crypt.texi
@@ -30,8 +30,15 @@ message-digest algorithm that is compatible with modern BSD systems,
and the other based on the Data Encryption Standard (DES) that is
compatible with Unix systems.
+@vindex AUTH_DES
+@cindex FIPS 140-2
It also provides support for Secure RPC, and some library functions that
-can be used to perform normal DES encryption.
+can be used to perform normal DES encryption. The @code{AUTH_DES}
+authentication flavor in Secure RPC, as provided by @theglibc{},
+uses DES and does not comply with FIPS 140-2 nor does any other use of DES
+within @theglibc{}. It is recommended that Secure RPC should not be used
+for systems that need to comply with FIPS 140-2 since all flavors of
+encrypted authentication use normal DES.
@menu
* Legal Problems:: This software can get you locked up, or worse.
@@ -203,6 +210,7 @@ header @file{crypt.h}.
@node DES Encryption
@section DES Encryption
+@cindex FIPS 46-3
The Data Encryption Standard is described in the US Government Federal
Information Processing Standards (FIPS) 46-3 published by the National
Institute of Standards and Technology. The DES has been very thoroughly
diff --git a/libc/manual/install.texi b/libc/manual/install.texi
index 4ca7b1a1a..aaf27c9e4 100644
--- a/libc/manual/install.texi
+++ b/libc/manual/install.texi
@@ -413,7 +413,7 @@ should definitely upgrade @code{sed}.
@end itemize
@noindent
-If you change any of the @file{configure.in} files you will also need
+If you change any of the @file{configure.ac} files you will also need
@itemize @bullet
@item
diff --git a/libc/manual/llio.texi b/libc/manual/llio.texi
index b129cf40b..dd0eaa3cb 100644
--- a/libc/manual/llio.texi
+++ b/libc/manual/llio.texi
@@ -1226,8 +1226,8 @@ as the included @code{malloc} automatically uses @code{mmap} where appropriate.
@end vtable
-@code{mmap} returns the address of the new mapping, or @math{-1} for an
-error.
+@code{mmap} returns the address of the new mapping, or
+@code{MAP_FAILED} for an error.
Possible errors include:
diff --git a/libc/manual/maint.texi b/libc/manual/maint.texi
index 0f4b95981..659ceae01 100644
--- a/libc/manual/maint.texi
+++ b/libc/manual/maint.texi
@@ -316,7 +316,7 @@ This file is a shell script fragment to be run at configuration time.
The top-level @file{configure} script uses the shell @code{.} command to
read the @file{configure} file in each system-dependent directory
chosen, in order. The @file{configure} files are often generated from
-@file{configure.in} files using Autoconf.
+@file{configure.ac} files using Autoconf.
A system-dependent @file{configure} script will usually add things to
the shell variables @samp{DEFS} and @samp{config_vars}; see the
@@ -329,14 +329,14 @@ shell variable @w{@samp{with_@var{package}}} (with any dashes in
just @w{@samp{--with-@var{package}}} (no argument), then it sets
@w{@samp{with_@var{package}}} to @samp{yes}.
-@item configure.in
+@item configure.ac
This file is an Autoconf input fragment to be processed into the file
@file{configure} in this subdirectory. @xref{Introduction,,,
autoconf.info, Autoconf: Generating Automatic Configuration Scripts},
for a description of Autoconf. You should write either @file{configure}
-or @file{configure.in}, but not both. The first line of
-@file{configure.in} should invoke the @code{m4} macro
+or @file{configure.ac}, but not both. The first line of
+@file{configure.ac} should invoke the @code{m4} macro
@samp{GLIBC_PROVIDES}. This macro does several @code{AC_PROVIDE} calls
for Autoconf macros which are used by the top-level @file{configure}
script; without this, those macros might be invoked again unnecessarily
diff --git a/libc/manual/math.texi b/libc/manual/math.texi
index 193d415fb..57cf24f68 100644
--- a/libc/manual/math.texi
+++ b/libc/manual/math.texi
@@ -1364,7 +1364,7 @@ The prototypes for these functions are in @file{stdlib.h}.
@comment BSD
@deftypefun {long int} random (void)
This function returns the next pseudo-random number in the sequence.
-The value returned ranges from @code{0} to @code{RAND_MAX}.
+The value returned ranges from @code{0} to @code{2147483647}.
@strong{NB:} Temporarily this function was defined to return a
@code{int32_t} value to indicate that the return value always contains
diff --git a/libc/manual/memory.texi b/libc/manual/memory.texi
index 0c3d39efa..a80f87cbf 100644
--- a/libc/manual/memory.texi
+++ b/libc/manual/memory.texi
@@ -355,7 +355,7 @@ it is:
void *
xmalloc (size_t size)
@{
- register void *value = malloc (size);
+ void *value = malloc (size);
if (value == 0)
fatal ("virtual memory exhausted");
return value;
@@ -371,7 +371,7 @@ a newly allocated null-terminated string:
char *
savestring (const char *ptr, size_t len)
@{
- register char *value = (char *) xmalloc (len + 1);
+ char *value = (char *) xmalloc (len + 1);
value[len] = '\0';
return (char *) memcpy (value, ptr, len);
@}
@@ -502,7 +502,7 @@ as @code{xmalloc} does for @code{malloc}:
void *
xrealloc (void *ptr, size_t size)
@{
- register void *value = realloc (ptr, size);
+ void *value = realloc (ptr, size);
if (value == 0)
fatal ("Virtual memory exhausted");
return value;
diff --git a/libc/manual/pattern.texi b/libc/manual/pattern.texi
index 1966f3f14..afd648092 100644
--- a/libc/manual/pattern.texi
+++ b/libc/manual/pattern.texi
@@ -36,11 +36,8 @@ returns the nonzero value @code{FNM_NOMATCH}. The arguments
The argument @var{flags} is a combination of flag bits that alter the
details of matching. See below for a list of the defined flags.
-In @theglibc{}, @code{fnmatch} cannot experience an ``error''---it
-always returns an answer for whether the match succeeds. However, other
-implementations of @code{fnmatch} might sometimes report ``errors''.
-They would do so by returning nonzero values that are not equal to
-@code{FNM_NOMATCH}.
+In @theglibc{}, @code{fnmatch} might sometimes report ``errors'' by
+returning nonzero values that are not equal to @code{FNM_NOMATCH}.
@end deftypefun
These are the available flags for the @var{flags} argument:
diff --git a/libc/manual/socket.texi b/libc/manual/socket.texi
index 25c35c46b..4c7e623b2 100644
--- a/libc/manual/socket.texi
+++ b/libc/manual/socket.texi
@@ -1307,23 +1307,25 @@ Here's a small example:
struct hostent *
gethostname (char *host)
@{
- struct hostent hostbuf, *hp;
+ struct hostent *hostbuf, *hp;
size_t hstbuflen;
char *tmphstbuf;
int res;
int herr;
+ hostbuf = malloc (sizeof (struct hostent));
hstbuflen = 1024;
- /* Allocate buffer, remember to free it to avoid memory leakage. */
tmphstbuf = malloc (hstbuflen);
- while ((res = gethostbyname_r (host, &hostbuf, tmphstbuf, hstbuflen,
+ while ((res = gethostbyname_r (host, hostbuf, tmphstbuf, hstbuflen,
&hp, &herr)) == ERANGE)
@{
/* Enlarge the buffer. */
hstbuflen *= 2;
tmphstbuf = realloc (tmphstbuf, hstbuflen);
@}
+
+ free (tmphstbuf);
/* Check for errors. */
if (res || hp == NULL)
return NULL;
diff --git a/libc/nptl/ChangeLog b/libc/nptl/ChangeLog
index a08915382..9d04a7b3f 100644
--- a/libc/nptl/ChangeLog
+++ b/libc/nptl/ChangeLog
@@ -1,3 +1,12 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/pthread/configure.in: Moved to ...
+ * sysdeps/pthread/configure.ac: ... here.
+ * sysdeps/x86_64/configure.in: Moved to ...
+ * sysdeps/x86_64/configure.ac: ... here.
+ * sysdeps/pthread/configure: Regenerated.
+ * sysdeps/x86_64/configure: Likewise.
+
2013-10-04 Maciej W. Rozycki <macro@codesourcery.com>
* tst-mutex8.c (check_type) [ENABLE_PI]: Handle ENOTSUP failure
diff --git a/libc/nptl/sysdeps/pthread/configure b/libc/nptl/sysdeps/pthread/configure
index 7962ed6fc..239a039e3 100755
--- a/libc/nptl/sysdeps/pthread/configure
+++ b/libc/nptl/sysdeps/pthread/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
if test "x$libc_cv_gcc___thread" != xyes; then
as_fn_error $? "compiler support for __thread is required" "$LINENO" 5
diff --git a/libc/nptl/sysdeps/pthread/configure.in b/libc/nptl/sysdeps/pthread/configure.ac
index 413af9679..413af9679 100644
--- a/libc/nptl/sysdeps/pthread/configure.in
+++ b/libc/nptl/sysdeps/pthread/configure.ac
diff --git a/libc/nptl/sysdeps/x86_64/configure b/libc/nptl/sysdeps/x86_64/configure
index 8e5bcacaf..c9dea5a7a 100644
--- a/libc/nptl/sysdeps/x86_64/configure
+++ b/libc/nptl/sysdeps/x86_64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/i386.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .cfi_personality and .cfi_lsda pseudo-ops" >&5
diff --git a/libc/nptl/sysdeps/x86_64/configure.in b/libc/nptl/sysdeps/x86_64/configure.ac
index 0ba0cc372..0ba0cc372 100644
--- a/libc/nptl/sysdeps/x86_64/configure.in
+++ b/libc/nptl/sysdeps/x86_64/configure.ac
diff --git a/libc/nscd/Makefile b/libc/nscd/Makefile
index 535da43d5..cd70c858b 100644
--- a/libc/nscd/Makefile
+++ b/libc/nscd/Makefile
@@ -67,7 +67,7 @@ endif
nscd-modules += selinux
selinux-LIBS := -lselinux $(libaudit) $(libcap)
-# The configure.in check for libselinux and its headers did not use
+# The configure.ac check for libselinux and its headers did not use
# $SYSINCLUDES. The directory specified by --with-headers usually
# contains only the basic kernel interface headers, not something like
# libselinux. So the simplest thing is to presume that the standard
diff --git a/libc/nss/nss_files/files-XXX.c b/libc/nss/nss_files/files-XXX.c
index 082d1ea2b..b62208c32 100644
--- a/libc/nss/nss_files/files-XXX.c
+++ b/libc/nss/nss_files/files-XXX.c
@@ -179,8 +179,51 @@ CONCAT(_nss_files_end,ENTNAME) (void)
return NSS_STATUS_SUCCESS;
}
-/* Parsing the database file into `struct STRUCTURE' data structures. */
+typedef enum
+{
+ gcr_ok = 0,
+ gcr_error = -1,
+ gcr_overflow = -2
+} get_contents_ret;
+
+/* Hack around the fact that fgets only accepts int sizes. */
+static get_contents_ret
+get_contents (char *linebuf, size_t len, FILE *stream)
+{
+ size_t remaining_len = len;
+ char *curbuf = linebuf;
+
+ do
+ {
+ int curlen = ((remaining_len > (size_t) INT_MAX) ? INT_MAX
+ : remaining_len);
+ char *p = fgets_unlocked (curbuf, curlen, stream);
+
+ ((unsigned char *) curbuf)[curlen - 1] = 0xff;
+
+ /* EOF or read error. */
+ if (p == NULL)
+ return gcr_error;
+
+ /* Done reading in the line. */
+ if (((unsigned char *) curbuf)[curlen - 1] == 0xff)
+ return gcr_ok;
+
+ /* Drop the terminating '\0'. */
+ remaining_len -= curlen - 1;
+ curbuf += curlen - 1;
+ }
+ /* fgets copies one less than the input length. Our last iteration is of
+ REMAINING_LEN and once that is done, REMAINING_LEN is decremented by
+ REMAINING_LEN - 1, leaving the result as 1. */
+ while (remaining_len > 1);
+
+ /* This means that the current buffer was not large enough. */
+ return gcr_overflow;
+}
+
+/* Parsing the database file into `struct STRUCTURE' data structures. */
static enum nss_status
internal_getent (struct STRUCTURE *result,
char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO
@@ -188,7 +231,7 @@ internal_getent (struct STRUCTURE *result,
{
char *p;
struct parser_data *data = (void *) buffer;
- int linebuflen = buffer + buflen - data->linebuffer;
+ size_t linebuflen = buffer + buflen - data->linebuffer;
int parse_result;
if (buflen < sizeof *data + 2)
@@ -200,17 +243,16 @@ internal_getent (struct STRUCTURE *result,
do
{
- /* Terminate the line so that we can test for overflow. */
- ((unsigned char *) data->linebuffer)[linebuflen - 1] = '\xff';
+ get_contents_ret r = get_contents (data->linebuffer, linebuflen, stream);
- p = fgets_unlocked (data->linebuffer, linebuflen, stream);
- if (p == NULL)
+ if (r == gcr_error)
{
/* End of file or read error. */
H_ERRNO_SET (HOST_NOT_FOUND);
return NSS_STATUS_NOTFOUND;
}
- else if (((unsigned char *) data->linebuffer)[linebuflen - 1] != 0xff)
+
+ if (r == gcr_overflow)
{
/* The line is too long. Give the user the opportunity to
enlarge the buffer. */
@@ -219,7 +261,8 @@ internal_getent (struct STRUCTURE *result,
return NSS_STATUS_TRYAGAIN;
}
- /* Skip leading blanks. */
+ /* Everything OK. Now skip leading blanks. */
+ p = data->linebuffer;
while (isspace (*p))
++p;
}
diff --git a/libc/ports/ChangeLog b/libc/ports/ChangeLog
index a1dd8c342..47294712f 100644
--- a/libc/ports/ChangeLog
+++ b/libc/ports/ChangeLog
@@ -1,13 +1,7 @@
-2013-10-04 Alan Modra <amodra@gmail.com>
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
- * sysdeps/ia64/fpu/printf_fphex.c: Adjust for fpnum change.
-
-2013-09-02 Mike Frysinger <vapier@gentoo.org>
-
- * sysdeps/unix/sysv/linux/hppa/syscalls.list (fanotify_mark): New
- entry.
- * sysdeps/unix/sysv/linux/hppa/Versions (libc): Add GLIBC_2.19 and
- fanotify_mark.
+ * README: Change references to preconfigure.in to
+ preconfigure.ac.
2013-01-02 Joseph Myers <joseph@codesourcery.com>
diff --git a/libc/ports/ChangeLog.aarch64 b/libc/ports/ChangeLog.aarch64
index cebf5055d..1fd96eed7 100644
--- a/libc/ports/ChangeLog.aarch64
+++ b/libc/ports/ChangeLog.aarch64
@@ -1,3 +1,9 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/aarch64/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/aarch64/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/aarch64/configure: Regenerated.
+
2013-09-30 Andrew Pinski <andrew.pinski@caviumnetworks.com>
* sysdeps/unix/sysv/linux/aarch64/sysdep.h (SYSCALL_ERROR_HANDLER):
diff --git a/libc/ports/ChangeLog.alpha b/libc/ports/ChangeLog.alpha
index 68d430dc3..07f5dfb47 100644
--- a/libc/ports/ChangeLog.alpha
+++ b/libc/ports/ChangeLog.alpha
@@ -1,3 +1,12 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/alpha/configure.in: Moved to ...
+ * sysdeps/alpha/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/alpha/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/alpha/configure.ac: ... here.
+ * sysdeps/alpha/configure: Regenerated.
+ * sysdeps/unix/sysv/linux/alpha/configure: Likewise.
+
2013-10-12 Yuri Chornoivan <yurchor@ukr.net>
* sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S: Fix typos.
diff --git a/libc/ports/ChangeLog.am33 b/libc/ports/ChangeLog.am33
index 79bcc0a10..15b7a1b30 100644
--- a/libc/ports/ChangeLog.am33
+++ b/libc/ports/ChangeLog.am33
@@ -1,3 +1,9 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/am33/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/am33/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/am33/configure: Regenerated.
+
2013-08-29 Ondřej Bílka <neleai@seznam.cz>
* sysdeps/unix/sysv/linux/am33/bits/fcntl.h: Fix typos.
diff --git a/libc/ports/ChangeLog.arm b/libc/ports/ChangeLog.arm
index 6707d2ef3..0dfe5c788 100644
--- a/libc/ports/ChangeLog.arm
+++ b/libc/ports/ChangeLog.arm
@@ -1,3 +1,23 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/arm/configure.in: Moved to ...
+ * sysdeps/arm/configure.ac: ... here.
+ * sysdeps/arm/preconfigure.in: Moved to ...
+ * sysdeps/arm/preconfigure.ac: ... here. Change reference to
+ configure.in to configure.ac.
+ * sysdeps/arm/preconfigure: Regenerated.
+ * sysdeps/arm/armv7/configure.in: Moved to ...
+ * sysdeps/arm/armv7/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/arm/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/arm/configure.ac: ... here. Change
+ reference to preconfigure.in to preconfigure.ac.
+ * sysdeps/unix/sysv/linux/arm/configure: Regenerated.
+ * sysdeps/unix/sysv/linux/arm/nptl/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/arm/nptl/configure.ac: ... here.
+ * sysdeps/arm/configure: Regenerated.
+ * sysdeps/sysdeps/arm/armv7/configure: Likewise.
+ * sysdeps/unix/sysv/linux/arm/nptl/configure: Likewise.
+
2013-10-04 Will Newton <will.newton@linaro.org>
* sysdeps/arm/__longjmp.S (NO_THUMB): Remove define.
diff --git a/libc/ports/ChangeLog.hppa b/libc/ports/ChangeLog.hppa
index 3e7c16221..b7c82131d 100644
--- a/libc/ports/ChangeLog.hppa
+++ b/libc/ports/ChangeLog.hppa
@@ -1,7 +1,20 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/hppa/configure.in: Moved to ...
+ * sysdeps/hppa/configure.ac: ... here.
+ * sysdeps/hppa/configure: Regenerated.
+
2013-09-11 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h (__O_TMPFILE): Define.
+2013-09-02 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/hppa/syscalls.list (fanotify_mark): New
+ entry.
+ * sysdeps/unix/sysv/linux/hppa/Versions (libc): Add GLIBC_2.19 and
+ fanotify_mark.
+
2013-08-30 Ondřej Bílka <neleai@seznam.cz>
* sysdeps/unix/sysv/linux/hppa/clone.S: Fix typos.
diff --git a/libc/ports/ChangeLog.ia64 b/libc/ports/ChangeLog.ia64
index 272f73a1b..1eb0f389c 100644
--- a/libc/ports/ChangeLog.ia64
+++ b/libc/ports/ChangeLog.ia64
@@ -1,3 +1,16 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/ia64/configure.in: Moved to ...
+ * sysdeps/ia64/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/ia64/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/ia64/configure.ac: ... here.
+ * sysdeps/ia64/configure: Regenerated.
+ * sysdeps/unix/sysv/linux/ia64/configure: Likewise.
+
+2013-10-04 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/ia64/fpu/printf_fphex.c: Adjust for fpnum change.
+
2013-09-22 Carlos O'Donell <carlos@redhat.com>
[BZ #15754]
diff --git a/libc/ports/ChangeLog.m68k b/libc/ports/ChangeLog.m68k
index 5bcd94541..327216f5f 100644
--- a/libc/ports/ChangeLog.m68k
+++ b/libc/ports/ChangeLog.m68k
@@ -1,3 +1,9 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/m68k/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/m68k/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/m68k/configure: Regenerated.
+
2013-10-08 Andreas Schwab <schwab@suse.de>
* sysdeps/m68k/start.S [SHARED]: Use PIC.
diff --git a/libc/ports/ChangeLog.microblaze b/libc/ports/ChangeLog.microblaze
index 92faa0444..d792effa4 100644
--- a/libc/ports/ChangeLog.microblaze
+++ b/libc/ports/ChangeLog.microblaze
@@ -1,3 +1,9 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/microblaze/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/microblaze/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/microblaze/configure: Regenerated.
+
2013-06-15 Siddhesh Poyarekar <siddhesh@redhat.com>
* sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist:
diff --git a/libc/ports/ChangeLog.mips b/libc/ports/ChangeLog.mips
index eaa6ade59..3382d838f 100644
--- a/libc/ports/ChangeLog.mips
+++ b/libc/ports/ChangeLog.mips
@@ -1,3 +1,15 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/mips/configure.in: Moved to ...
+ * sysdeps/mips/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/mips/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/mips/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/mips/mips64/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/mips/mips64/configure.ac: ... here.
+ * sysdeps/mips/configure: Regenerated.
+ * sysdeps/unix/sysv/linux/mips/configure: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/configure: Likewise.
+
2013-09-26 Steve Ellcey <sellcey@mips.com>
[BZ #15632]
diff --git a/libc/ports/ChangeLog.tile b/libc/ports/ChangeLog.tile
index dc2e7e412..a0ec89cac 100644
--- a/libc/ports/ChangeLog.tile
+++ b/libc/ports/ChangeLog.tile
@@ -1,3 +1,12 @@
+2013-10-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/tile/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/tile/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/tile/tilegx/configure.in: Moved to ...
+ * sysdeps/unix/sysv/linux/tile/tilegx/configure.ac: ... here.
+ * sysdeps/unix/sysv/linux/tile/configure: Regenerated.
+ * sysdeps/unix/sysv/linux/tile/tilegx/configure: Likewise.
+
2013-09-22 Carlos O'Donell <carlos@redhat.com>
[BZ #15754]
diff --git a/libc/ports/README b/libc/ports/README
index d16b0f0f5..2c73b1e80 100644
--- a/libc/ports/README
+++ b/libc/ports/README
@@ -24,7 +24,7 @@ rather than the generic ones here.
The real source code for any ports is found in the sysdeps/ subdirectories.
These should be exactly what would go into the main libc source tree if you
were to incorporate it directly. The only exceptions are the files
-sysdeps/*/preconfigure and sysdeps/*/preconfigure.in; these are fragments
+sysdeps/*/preconfigure and sysdeps/*/preconfigure.ac; these are fragments
used by this add-on's configure fragment. The purpose of these is to set
$base_machine et al when the main libc configure's defaults are not right
for some machine. Everything else can and should be done from a normal
@@ -32,7 +32,7 @@ sysdeps/.../configure fragment that is used only when the configuration
selects that sysdeps subdirectory. Each port that requires some special
treatment before the sysdeps directory list is calculated, should add a
sysdeps/CPU/preconfigure file; this can either be written by hand or
-generated by Autoconf from sysdeps/CPU/preconfigure.in, and follow the
+generated by Autoconf from sysdeps/CPU/preconfigure.ac, and follow the
rules for glibc add-on configure fragments. No preconfigure file should do
anything on an unrelated configuration, so that disparate ports can be put
into a single add-on without interfering with each other.
diff --git a/libc/ports/sysdeps/alpha/configure b/libc/ports/sysdeps/alpha/configure
index 9c03229df..0403c63fe 100644
--- a/libc/ports/sysdeps/alpha/configure
+++ b/libc/ports/sysdeps/alpha/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/alpha.
# With required gcc+binutils, we can always access static and hidden
diff --git a/libc/ports/sysdeps/alpha/configure.in b/libc/ports/sysdeps/alpha/configure.ac
index eadc57afe..eadc57afe 100644
--- a/libc/ports/sysdeps/alpha/configure.in
+++ b/libc/ports/sysdeps/alpha/configure.ac
diff --git a/libc/ports/sysdeps/arm/armv7/configure b/libc/ports/sysdeps/arm/armv7/configure
index a879ffb5a..46e5d52df 100755
--- a/libc/ports/sysdeps/arm/armv7/configure
+++ b/libc/ports/sysdeps/arm/armv7/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/arm/armv7.
# We need binutils 2.21 to ensure that NEON alignments are assembled correctly.
diff --git a/libc/ports/sysdeps/arm/armv7/configure.in b/libc/ports/sysdeps/arm/armv7/configure.ac
index 01e93ecd3..01e93ecd3 100644
--- a/libc/ports/sysdeps/arm/armv7/configure.in
+++ b/libc/ports/sysdeps/arm/armv7/configure.ac
diff --git a/libc/ports/sysdeps/arm/bits/predefs.h b/libc/ports/sysdeps/arm/bits/predefs.h
deleted file mode 100644
index 0f3c5c9f2..000000000
--- a/libc/ports/sysdeps/arm/bits/predefs.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2005, 2006 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. */
-
-#ifndef _PREDEFS_H
-#define _PREDEFS_H
-
-#ifndef _STDC_PREDEF_H
-# error "Never use <bits/predefs.h> directly; include <stdc-predef.h> instead."
-#endif
-
-/* We do support the IEC 559 math functionality, real and complex, but only
- if a VFP coprocessor is present. If we don't have one, we fall back to
- software emulation and the functions won't work properly. So in general,
- we don't claim to support this functionality. */
-#if defined (__VFP_FP__) && !defined(__SOFTFP__)
-#define __STDC_IEC_559__ 1
-#define __STDC_IEC_559_COMPLEX__ 1
-#endif
-
-#endif /* predefs.h */
diff --git a/libc/ports/sysdeps/arm/configure b/libc/ports/sysdeps/arm/configure
index b84b3f69a..d79ef76ec 100644
--- a/libc/ports/sysdeps/arm/configure
+++ b/libc/ports/sysdeps/arm/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/arm.
#AC_DEFINE(PI_STATIC_AND_HIDDEN)
diff --git a/libc/ports/sysdeps/arm/configure.in b/libc/ports/sysdeps/arm/configure.ac
index d66500b3f..d66500b3f 100644
--- a/libc/ports/sysdeps/arm/configure.in
+++ b/libc/ports/sysdeps/arm/configure.ac
diff --git a/libc/ports/sysdeps/arm/preconfigure b/libc/ports/sysdeps/arm/preconfigure
index 908cd3430..b3124edae 100644
--- a/libc/ports/sysdeps/arm/preconfigure
+++ b/libc/ports/sysdeps/arm/preconfigure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local preconfigure fragment for sysdeps/arm
case "$machine" in
@@ -8,7 +8,7 @@ arm*)
# If the compiler enables unwind tables by default, this causes
# problems with undefined symbols in -nostdlib link tests. To
# avoid this, add -fno-unwind-tables here and remove it in
- # sysdeps/unix/sysv/linux/arm/configure.in after those tests have
+ # sysdeps/unix/sysv/linux/arm/configure.ac after those tests have
# been run.
if test "${CFLAGS+set}" != "set"; then
CFLAGS="-g -O2"
diff --git a/libc/ports/sysdeps/arm/preconfigure.in b/libc/ports/sysdeps/arm/preconfigure.ac
index f8357955e..39c86218a 100644
--- a/libc/ports/sysdeps/arm/preconfigure.in
+++ b/libc/ports/sysdeps/arm/preconfigure.ac
@@ -8,7 +8,7 @@ arm*)
# If the compiler enables unwind tables by default, this causes
# problems with undefined symbols in -nostdlib link tests. To
# avoid this, add -fno-unwind-tables here and remove it in
- # sysdeps/unix/sysv/linux/arm/configure.in after those tests have
+ # sysdeps/unix/sysv/linux/arm/configure.ac after those tests have
# been run.
if test "${CFLAGS+set}" != "set"; then
CFLAGS="-g -O2"
diff --git a/libc/ports/sysdeps/hppa/configure b/libc/ports/sysdeps/hppa/configure
index 762b668f4..d78e1bcd6 100644
--- a/libc/ports/sysdeps/hppa/configure
+++ b/libc/ports/sysdeps/hppa/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler line separator" >&5
$as_echo_n "checking for assembler line separator... " >&6; }
diff --git a/libc/ports/sysdeps/hppa/configure.in b/libc/ports/sysdeps/hppa/configure.ac
index 40f33603e..40f33603e 100644
--- a/libc/ports/sysdeps/hppa/configure.in
+++ b/libc/ports/sysdeps/hppa/configure.ac
diff --git a/libc/ports/sysdeps/ia64/configure b/libc/ports/sysdeps/ia64/configure
index e1fe62d8c..66b9bac15 100644
--- a/libc/ports/sysdeps/ia64/configure
+++ b/libc/ports/sysdeps/ia64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/ia64.
$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/libc/ports/sysdeps/ia64/configure.in b/libc/ports/sysdeps/ia64/configure.ac
index 4ad04ff2f..4ad04ff2f 100644
--- a/libc/ports/sysdeps/ia64/configure.in
+++ b/libc/ports/sysdeps/ia64/configure.ac
diff --git a/libc/ports/sysdeps/mips/configure b/libc/ports/sysdeps/mips/configure
index de8092c97..f3f5d2e00 100644
--- a/libc/ports/sysdeps/mips/configure
+++ b/libc/ports/sysdeps/mips/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/mips.
diff --git a/libc/ports/sysdeps/mips/configure.in b/libc/ports/sysdeps/mips/configure.ac
index bcbdaffd9..bcbdaffd9 100644
--- a/libc/ports/sysdeps/mips/configure.in
+++ b/libc/ports/sysdeps/mips/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure b/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure
index 6b2608acd..20593c7bb 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
arch_minimum_kernel=3.7.0
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure.ac
index b09070213..b09070213 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/alpha/configure b/libc/ports/sysdeps/unix/sysv/linux/alpha/configure
index b5df524c1..9afb5874c 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/alpha/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/alpha/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/alpha
# We did historically export the unwinder from glibc.
diff --git a/libc/ports/sysdeps/unix/sysv/linux/alpha/configure.in b/libc/ports/sysdeps/unix/sysv/linux/alpha/configure.ac
index a8b699665..a8b699665 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/alpha/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/alpha/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/am33/configure b/libc/ports/sysdeps/unix/sysv/linux/am33/configure
index 870c6a792..c916a321c 100755
--- a/libc/ports/sysdeps/unix/sysv/linux/am33/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/am33/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for am33/sysdeps/unix/sysv/linux/am33
arch_minimum_kernel=2.6.25
diff --git a/libc/ports/sysdeps/unix/sysv/linux/am33/configure.in b/libc/ports/sysdeps/unix/sysv/linux/am33/configure.ac
index 43e33f74c..43e33f74c 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/am33/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/am33/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/arm/configure b/libc/ports/sysdeps/unix/sysv/linux/arm/configure
index f66b15828..71eb19594 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/arm/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/arm/configure
@@ -1,6 +1,6 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/arm.
libc_cv_gcc_unwind_find_fde=no
-# Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.in.
+# Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.ac.
CFLAGS=${CFLAGS% -fno-unwind-tables}
diff --git a/libc/ports/sysdeps/unix/sysv/linux/arm/configure.in b/libc/ports/sysdeps/unix/sysv/linux/arm/configure.ac
index 8fffe9405..8e4e20d2b 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/arm/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/arm/configure.ac
@@ -2,5 +2,5 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux/arm.
libc_cv_gcc_unwind_find_fde=no
-# Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.in.
+# Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.ac.
CFLAGS=${CFLAGS% -fno-unwind-tables}
diff --git a/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure b/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure
index 518269913..a8c34fa3e 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
libc_cv_gcc_exceptions=yes
exceptions=-fexceptions
diff --git a/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.in b/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.ac
index 22f6f4b8f..22f6f4b8f 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/ia64/configure b/libc/ports/sysdeps/unix/sysv/linux/ia64/configure
index 71323718a..1d4e5d18d 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/ia64/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/ia64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/ia64
ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/libc/ports/sysdeps/unix/sysv/linux/ia64/configure.in b/libc/ports/sysdeps/unix/sysv/linux/ia64/configure.ac
index 4fb564721..4fb564721 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/ia64/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/ia64/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/m68k/configure b/libc/ports/sysdeps/unix/sysv/linux/m68k/configure
index a704dacee..8e955387b 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/m68k/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/m68k/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
case $machine in
m68k/coldfire)
;;
diff --git a/libc/ports/sysdeps/unix/sysv/linux/m68k/configure.in b/libc/ports/sysdeps/unix/sysv/linux/m68k/configure.ac
index c21ca9dd4..c21ca9dd4 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/m68k/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/m68k/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure b/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure
index fa7da7393..086638856 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/microblaze.
arch_minimum_kernel=2.6.30
diff --git a/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure.in b/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure.ac
index f283d3770..f283d3770 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/microblaze/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/mips/configure b/libc/ports/sysdeps/unix/sysv/linux/mips/configure
index 088210ff9..e8b0d7b15 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/mips/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/mips/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/mips.
diff --git a/libc/ports/sysdeps/unix/sysv/linux/mips/configure.in b/libc/ports/sysdeps/unix/sysv/linux/mips/configure.ac
index 7087a14a5..7087a14a5 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/mips/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/mips/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure b/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure
index f86f3276a..26bed649d 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/mips/mips64.
ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.in b/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.ac
index c137ec555..c137ec555 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/configure b/libc/ports/sysdeps/unix/sysv/linux/tile/configure
index 88b578848..02f6c8c25 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/tile.
arch_minimum_kernel=2.6.32
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/configure.in b/libc/ports/sysdeps/unix/sysv/linux/tile/configure.ac
index b983e28be..b983e28be 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/configure.ac
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure b/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure
index bfa30f6dc..0a6a63ff9 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/tile/tilegx
ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure.in b/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac
index 87d86bd4c..87d86bd4c 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure.in
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac
diff --git a/libc/posix/glob.c b/libc/posix/glob.c
index 02c8477c6..211c5b980 100644
--- a/libc/posix/glob.c
+++ b/libc/posix/glob.c
@@ -279,6 +279,11 @@ glob (pattern, flags, errfunc, pglob)
return -1;
}
+ /* POSIX requires all slashes to be matched. This means that with
+ a trailing slash we must match only directories. */
+ if (pattern[0] && pattern[strlen (pattern) - 1] == '/')
+ flags |= GLOB_ONLYDIR;
+
if (!(flags & GLOB_DOOFFS))
/* Have to do this so `globfree' knows where to start freeing. It
also makes all the code that uses gl_offs simpler. */
diff --git a/libc/posix/tst-gnuglob.c b/libc/posix/tst-gnuglob.c
index 0c967d0a7..6e42724d0 100644
--- a/libc/posix/tst-gnuglob.c
+++ b/libc/posix/tst-gnuglob.c
@@ -168,7 +168,7 @@ my_opendir (const char *s)
my_DIR *dir;
- if (idx == -1)
+ if (idx == -1 || filesystem[idx].type != DT_DIR)
{
PRINTF ("my_opendir(\"%s\") == NULL\n", s);
return NULL;
@@ -358,7 +358,7 @@ test_result (const char *fmt, int flags, glob_t *gl, const char *str[])
break;
if (str[inner] == NULL)
- errstr = ok ? "" : " *** WRONG";
+ errstr = ok ? "" : " *** WRONG";
else
errstr = ok ? "" : " * wrong position";
@@ -483,6 +483,12 @@ main (void)
"/file1lev1",
"/file2lev1");
+ test ("*/*/", 0 , 0,
+ "dir1lev1/dir1lev2/",
+ "dir1lev1/dir2lev2/",
+ "dir1lev1/dir3lev2/",
+ "dir2lev1/dir1lev2/");
+
test ("", 0, GLOB_NOMATCH, NULL);
test ("", GLOB_NOCHECK, 0, "");
diff --git a/libc/rt/tst-shm.c b/libc/rt/tst-shm.c
index f9d5ab009..cb4b1ee76 100644
--- a/libc/rt/tst-shm.c
+++ b/libc/rt/tst-shm.c
@@ -134,6 +134,14 @@ do_test (void)
int status2;
struct stat64 st;
+ fd = shm_open ("/../escaped", O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600);
+ if (fd != -1)
+ {
+ perror ("read file outside of SHMDIR directory");
+ return 1;
+ }
+
+
/* Create the shared memory object. */
fd = shm_open ("/shm-test", O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600);
if (fd == -1)
diff --git a/libc/stdio-common/Makefile b/libc/stdio-common/Makefile
index 83e8fb43f..128747e08 100644
--- a/libc/stdio-common/Makefile
+++ b/libc/stdio-common/Makefile
@@ -132,6 +132,7 @@ CFLAGS-tst-sprintf.c = -Wno-format
tst-sprintf-ENV = LOCPATH=$(common-objpfx)localedata
tst-sscanf-ENV = LOCPATH=$(common-objpfx)localedata
tst-swprintf-ENV = LOCPATH=$(common-objpfx)localedata
+tst-swscanf-ENV = LOCPATH=$(common-objpfx)localedata
test-vfprintf-ENV = LOCPATH=$(common-objpfx)localedata
scanf13-ENV = LOCPATH=$(common-objpfx)localedata
bug14-ENV = LOCPATH=$(common-objpfx)localedata
diff --git a/libc/stdio-common/tst-sscanf.c b/libc/stdio-common/tst-sscanf.c
index 1edb22719..3c34f58a6 100644
--- a/libc/stdio-common/tst-sscanf.c
+++ b/libc/stdio-common/tst-sscanf.c
@@ -109,6 +109,19 @@ struct test double_tests[] =
{ L("-inf"), L("%g"), 1 }
};
+struct test2
+{
+ const CHAR *str;
+ const CHAR *fmt;
+ int retval;
+ char residual;
+} double_tests2[] =
+{
+ { L("0e+0"), L("%g%c"), 1, 0 },
+ { L("0xe+0"), L("%g%c"), 2, '+' },
+ { L("0x.e+0"), L("%g%c"), 2, '+' },
+};
+
int
main (void)
{
@@ -196,5 +209,26 @@ main (void)
}
}
+ for (i = 0; i < sizeof (double_tests2) / sizeof (double_tests2[0]); ++i)
+ {
+ double dummy;
+ int ret;
+ char c = 0;
+
+ if ((ret = SSCANF (double_tests2[i].str, double_tests2[i].fmt,
+ &dummy, &c)) != double_tests2[i].retval)
+ {
+ printf ("double_tests2[%d] returned %d != %d\n",
+ i, ret, double_tests2[i].retval);
+ result = 1;
+ }
+ else if (ret == 2 && c != double_tests2[i].residual)
+ {
+ printf ("double_tests2[%d] stopped at '%c' != '%c'\n",
+ i, c, double_tests2[i].residual);
+ result = 1;
+ }
+ }
+
return result;
}
diff --git a/libc/stdio-common/vfscanf.c b/libc/stdio-common/vfscanf.c
index e0f976db7..abaae2dba 100644
--- a/libc/stdio-common/vfscanf.c
+++ b/libc/stdio-common/vfscanf.c
@@ -1997,6 +1997,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (width > 0)
--width;
}
+ else
+ got_digit = 1;
}
while (1)
diff --git a/libc/stdlib/div.c b/libc/stdlib/div.c
index 44a30a7ea..0f5569a5d 100644
--- a/libc/stdlib/div.c
+++ b/libc/stdlib/div.c
@@ -59,27 +59,5 @@ div (numer, denom)
result.quot = numer / denom;
result.rem = numer % denom;
- /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where
- NUMER / DENOM is to be computed in infinite precision. In
- other words, we should always truncate the quotient towards
- zero, never -infinity. Machine division and remainer may
- work either way when one or both of NUMER or DENOM is
- negative. If only one is negative and QUOT has been
- truncated towards -infinity, REM will have the same sign as
- DENOM and the opposite sign of NUMER; if both are negative
- and QUOT has been truncated towards -infinity, REM will be
- positive (will have the opposite sign of NUMER). These are
- considered `wrong'. If both are NUM and DENOM are positive,
- RESULT will always be positive. This all boils down to: if
- NUMER >= 0, but REM < 0, we got the wrong answer. In that
- case, to get the right answer, add 1 to QUOT and subtract
- DENOM from REM. */
-
- if (numer >= 0 && result.rem < 0)
- {
- ++result.quot;
- result.rem -= denom;
- }
-
return result;
}
diff --git a/libc/stdlib/ldiv.c b/libc/stdlib/ldiv.c
index 76d474fc6..a03057fc0 100644
--- a/libc/stdlib/ldiv.c
+++ b/libc/stdlib/ldiv.c
@@ -27,27 +27,5 @@ ldiv (long int numer, long int denom)
result.quot = numer / denom;
result.rem = numer % denom;
- /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where
- NUMER / DENOM is to be computed in infinite precision. In
- other words, we should always truncate the quotient towards
- zero, never -infinity. Machine division and remainer may
- work either way when one or both of NUMER or DENOM is
- negative. If only one is negative and QUOT has been
- truncated towards -infinity, REM will have the same sign as
- DENOM and the opposite sign of NUMER; if both are negative
- and QUOT has been truncated towards -infinity, REM will be
- positive (will have the opposite sign of NUMER). These are
- considered `wrong'. If both are NUM and DENOM are positive,
- RESULT will always be positive. This all boils down to: if
- NUMER >= 0, but REM < 0, we got the wrong answer. In that
- case, to get the right answer, add 1 to QUOT and subtract
- DENOM from REM. */
-
- if (numer >= 0 && result.rem < 0)
- {
- ++result.quot;
- result.rem -= denom;
- }
-
return result;
}
diff --git a/libc/stdlib/lldiv.c b/libc/stdlib/lldiv.c
index d1202bf9f..0da1a6afc 100644
--- a/libc/stdlib/lldiv.c
+++ b/libc/stdlib/lldiv.c
@@ -30,27 +30,5 @@ lldiv (numer, denom)
result.quot = numer / denom;
result.rem = numer % denom;
- /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where
- NUMER / DENOM is to be computed in infinite precision. In
- other words, we should always truncate the quotient towards
- zero, never -infinity. Machine division and remainer may
- work either way when one or both of NUMER or DENOM is
- negative. If only one is negative and QUOT has been
- truncated towards -infinity, REM will have the same sign as
- DENOM and the opposite sign of NUMER; if both are negative
- and QUOT has been truncated towards -infinity, REM will be
- positive (will have the opposite sign of NUMER). These are
- considered `wrong'. If both are NUM and DENOM are positive,
- RESULT will always be positive. This all boils down to: if
- NUMER >= 0, but REM < 0, we got the wrong answer. In that
- case, to get the right answer, add 1 to QUOT and subtract
- DENOM from REM. */
-
- if (numer >= 0 && result.rem < 0)
- {
- ++result.quot;
- result.rem -= denom;
- }
-
return result;
}
diff --git a/libc/sunrpc/rpc_main.c b/libc/sunrpc/rpc_main.c
index 0223c9a9f..0a51e2cfa 100644
--- a/libc/sunrpc/rpc_main.c
+++ b/libc/sunrpc/rpc_main.c
@@ -1442,6 +1442,9 @@ options_usage (FILE *stream, int status)
f_print (stream, _("-t\t\tgenerate RPC dispatch table\n"));
f_print (stream, _("-T\t\tgenerate code to support RPC dispatch tables\n"));
f_print (stream, _("-Y path\t\tdirectory name to find C preprocessor (cpp)\n"));
+ f_print (stream, _("-5\t\tSysVr4 compatibility mode\n"));
+ f_print (stream, _("--help\t\tgive this help list\n"));
+ f_print (stream, _("--version\tprint program version\n"));
f_print (stream, _("\n\
For bug reporting instructions, please see:\n\
diff --git a/libc/sysdeps/gnu/configure b/libc/sysdeps/gnu/configure
index 70aaa9019..e7f0e4395 100644
--- a/libc/sysdeps/gnu/configure
+++ b/libc/sysdeps/gnu/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/gnu.
diff --git a/libc/sysdeps/gnu/configure.in b/libc/sysdeps/gnu/configure.ac
index ce251df0c..ce251df0c 100644
--- a/libc/sysdeps/gnu/configure.in
+++ b/libc/sysdeps/gnu/configure.ac
diff --git a/libc/sysdeps/i386/configure b/libc/sysdeps/i386/configure
index 53b6a619d..5dcc15990 100755
--- a/libc/sysdeps/i386/configure
+++ b/libc/sysdeps/i386/configure
@@ -29,7 +29,7 @@ $as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/i386.
# We no longer support i386 since it lacks the atomic instructions
diff --git a/libc/sysdeps/i386/configure.in b/libc/sysdeps/i386/configure.ac
index 96ab7b0f5..96ab7b0f5 100644
--- a/libc/sysdeps/i386/configure.in
+++ b/libc/sysdeps/i386/configure.ac
diff --git a/libc/sysdeps/ieee754/dbl-64/sincos32.c b/libc/sysdeps/ieee754/dbl-64/sincos32.c
index f253b8ce8..49aa14895 100644
--- a/libc/sysdeps/ieee754/dbl-64/sincos32.c
+++ b/libc/sysdeps/ieee754/dbl-64/sincos32.c
@@ -147,10 +147,9 @@ __sin32 (double x, double res, double res1)
__dbl_mp (x, &c, p); /* c = x */
__sub (&b, &c, &a, p);
/* if a > 0 return min (res, res1), otherwise return max (res, res1). */
- if (a.d[0] > 0)
- return (res < res1) ? res : res1;
- else
- return (res > res1) ? res : res1;
+ if ((a.d[0] > 0 && res >= res1) || (a.d[0] <= 0 && res <= res1))
+ res = res1;
+ return res;
}
/* Receive double x and two double results of cos(x) and return result which is
@@ -181,10 +180,9 @@ __cos32 (double x, double res, double res1)
__dbl_mp (x, &c, p); /* c = x */
__sub (&b, &c, &a, p);
/* if a > 0 return max (res, res1), otherwise return min (res, res1). */
- if (a.d[0] > 0)
- return (res > res1) ? res : res1;
- else
- return (res < res1) ? res : res1;
+ if ((a.d[0] > 0 && res <= res1) || (a.d[0] <= 0 && res >= res1))
+ res = res1;
+ return res;
}
/* Compute sin() of double-length number (X + DX) as Multi Precision number and
diff --git a/libc/sysdeps/ieee754/ldbl-opt/configure b/libc/sysdeps/ieee754/ldbl-opt/configure
index 6e69038b9..ad9d77b88 100755
--- a/libc/sysdeps/ieee754/ldbl-opt/configure
+++ b/libc/sysdeps/ieee754/ldbl-opt/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/ieee754/ldbl-opt/.
diff --git a/libc/sysdeps/ieee754/ldbl-opt/configure.in b/libc/sysdeps/ieee754/ldbl-opt/configure.ac
index a77fadd1c..a77fadd1c 100644
--- a/libc/sysdeps/ieee754/ldbl-opt/configure.in
+++ b/libc/sysdeps/ieee754/ldbl-opt/configure.ac
diff --git a/libc/sysdeps/mach/configure b/libc/sysdeps/mach/configure
index 3af372560..61ac7d968 100644
--- a/libc/sysdeps/mach/configure
+++ b/libc/sysdeps/mach/configure
@@ -65,7 +65,7 @@ $as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_preproc
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args.
diff --git a/libc/sysdeps/mach/configure.in b/libc/sysdeps/mach/configure.ac
index db85f47ea..db85f47ea 100644
--- a/libc/sysdeps/mach/configure.in
+++ b/libc/sysdeps/mach/configure.ac
diff --git a/libc/sysdeps/mach/hurd/configure b/libc/sysdeps/mach/hurd/configure
index 84948a549..a0f97217e 100755
--- a/libc/sysdeps/mach/hurd/configure
+++ b/libc/sysdeps/mach/hurd/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
$as_echo "#define NO_HIDDEN 1" >>confdefs.h
diff --git a/libc/sysdeps/mach/hurd/configure.in b/libc/sysdeps/mach/hurd/configure.ac
index ad915a568..ad915a568 100644
--- a/libc/sysdeps/mach/hurd/configure.in
+++ b/libc/sysdeps/mach/hurd/configure.ac
diff --git a/libc/sysdeps/posix/getaddrinfo.c b/libc/sysdeps/posix/getaddrinfo.c
index 0f4b88514..8ff74b496 100644
--- a/libc/sysdeps/posix/getaddrinfo.c
+++ b/libc/sysdeps/posix/getaddrinfo.c
@@ -197,7 +197,22 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
&rc, &herrno, NULL, &localcanon)); \
if (rc != ERANGE || herrno != NETDB_INTERNAL) \
break; \
- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen); \
+ if (!malloc_tmpbuf && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) \
+ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, 2 * tmpbuflen, \
+ alloca_used); \
+ else \
+ { \
+ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, \
+ 2 * tmpbuflen); \
+ if (newp == NULL) \
+ { \
+ result = -EAI_MEMORY; \
+ goto free_and_return; \
+ } \
+ tmpbuf = newp; \
+ malloc_tmpbuf = true; \
+ tmpbuflen = 2 * tmpbuflen; \
+ } \
} \
if (status == NSS_STATUS_SUCCESS && rc == 0) \
h = &th; \
@@ -209,7 +224,8 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
{ \
__set_h_errno (herrno); \
_res.options |= old_res_options & RES_USE_INET6; \
- return -EAI_SYSTEM; \
+ result = -EAI_SYSTEM; \
+ goto free_and_return; \
} \
if (herrno == TRY_AGAIN) \
no_data = EAI_AGAIN; \
@@ -1666,13 +1682,13 @@ rfc3484_sort (const void *p1, const void *p2, void *arg)
/* Fill in the results in all the records. */
for (int i = 0; i < src->nresults; ++i)
- if (src->results[i].index == a1_index)
+ if (a1_index != -1 && src->results[i].index == a1_index)
{
assert (src->results[i].native == -1
|| src->results[i].native == a1_native);
src->results[i].native = a1_native;
}
- else if (src->results[i].index == a2_index)
+ else if (a2_index != -1 && src->results[i].index == a2_index)
{
assert (src->results[i].native == -1
|| src->results[i].native == a2_native);
@@ -2532,7 +2548,14 @@ getaddrinfo (const char *name, const char *service,
tmp.addr[0] = 0;
tmp.addr[1] = 0;
tmp.addr[2] = htonl (0xffff);
- tmp.addr[3] = sinp->sin_addr.s_addr;
+ /* Special case for lo interface, the source address
+ being possibly different than the interface
+ address. */
+ if ((ntohl(sinp->sin_addr.s_addr) & 0xff000000)
+ == 0x7f000000)
+ tmp.addr[3] = htonl(0x7f000001);
+ else
+ tmp.addr[3] = sinp->sin_addr.s_addr;
}
else
{
diff --git a/libc/sysdeps/powerpc/configure b/libc/sysdeps/powerpc/configure
index 4afbc29ab..fccee659a 100755
--- a/libc/sysdeps/powerpc/configure
+++ b/libc/sysdeps/powerpc/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc.
# Accept binutils which knows about ".machine".
diff --git a/libc/sysdeps/powerpc/configure.in b/libc/sysdeps/powerpc/configure.ac
index 28cc85934..28cc85934 100644
--- a/libc/sysdeps/powerpc/configure.in
+++ b/libc/sysdeps/powerpc/configure.ac
diff --git a/libc/sysdeps/powerpc/powerpc32/configure b/libc/sysdeps/powerpc/powerpc32/configure
index 31c571d9a..fe5a79234 100644
--- a/libc/sysdeps/powerpc/powerpc32/configure
+++ b/libc/sysdeps/powerpc/powerpc32/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc/powerpc32.
# See whether gas has R_PPC_REL16 relocs.
diff --git a/libc/sysdeps/powerpc/powerpc32/configure.in b/libc/sysdeps/powerpc/powerpc32/configure.ac
index 21d3f5ee5..21d3f5ee5 100644
--- a/libc/sysdeps/powerpc/powerpc32/configure.in
+++ b/libc/sysdeps/powerpc/powerpc32/configure.ac
diff --git a/libc/sysdeps/powerpc/powerpc64/configure b/libc/sysdeps/powerpc/powerpc64/configure
index 5ddac5592..92ec607e0 100644
--- a/libc/sysdeps/powerpc/powerpc64/configure
+++ b/libc/sysdeps/powerpc/powerpc64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc/powerpc64.
# The Aix ld uses global .symbol_names instead of symbol_names
diff --git a/libc/sysdeps/powerpc/powerpc64/configure.in b/libc/sysdeps/powerpc/powerpc64/configure.ac
index 67aac663d..67aac663d 100644
--- a/libc/sysdeps/powerpc/powerpc64/configure.in
+++ b/libc/sysdeps/powerpc/powerpc64/configure.ac
diff --git a/libc/bits/predefs.h b/libc/sysdeps/powerpc/powerpc64/power7/stpcpy.S
index 4dc4900a9..727dd06e7 100644
--- a/libc/bits/predefs.h
+++ b/libc/sysdeps/powerpc/powerpc64/power7/stpcpy.S
@@ -1,4 +1,5 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
+/* Optimized stpcpy implementation for PowerPC64/POWER7.
+ Copyright (C) 2013 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
@@ -12,19 +13,12 @@
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. */
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
-#ifndef _PREDEFS_H
-#define _PREDEFS_H
+#define USE_AS_STPCPY
+#include <sysdeps/powerpc/powerpc64/power7/strcpy.S>
-#ifndef _STDC_PREDEF_H
-# error "Never use <bits/predefs.h> directly; include <stdc-predef.h> instead."
-#endif
-
-/* We do support the IEC 559 math functionality, real and complex. */
-#define __STDC_IEC_559__ 1
-#define __STDC_IEC_559_COMPLEX__ 1
-
-#endif /* predefs.h */
+weak_alias (__stpcpy, stpcpy)
+libc_hidden_def (__stpcpy)
+libc_hidden_builtin_def (stpcpy)
diff --git a/libc/sysdeps/powerpc/powerpc64/power7/strcpy.S b/libc/sysdeps/powerpc/powerpc64/power7/strcpy.S
new file mode 100644
index 000000000..5c341a148
--- /dev/null
+++ b/libc/sysdeps/powerpc/powerpc64/power7/strcpy.S
@@ -0,0 +1,274 @@
+/* Optimized strcpy/stpcpy implementation for PowerPC64/POWER7.
+ Copyright (C) 2013 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 <sysdep.h>
+
+/* Implements the function
+
+ char * [r3] strcpy (char *dest [r3], const char *src [r4])
+
+ or
+
+ char * [r3] strcpy (char *dest [r3], const char *src [r4])
+
+ if USE_AS_STPCPY is defined. It tries to use aligned memory accesses
+ when possible using the following algorithm:
+
+ if (((((uintptr_t)dst & 0x7UL) == 0) && ((uintptr_t)src & 0x7UL) == 0))
+ goto aligned_doubleword_copy;
+ if (((((uintptr_t)dst & 0x3UL) == 0) && ((uintptr_t)src & 0x3UL) == 0))
+ goto aligned_word_copy;
+ if (((uintptr_t)dst & 0x7UL) == ((uintptr_t)src & 0x7UL))
+ goto same_alignment;
+ goto unaligned;
+
+ The aligned comparison are made using cmpb instructions. */
+
+#ifdef USE_AS_STPCPY
+# define FUNC_NAME __stpcpy
+#else
+# define FUNC_NAME strcpy
+#endif
+
+ .machine power7
+EALIGN (FUNC_NAME, 4, 0)
+ CALL_MCOUNT 2
+
+#define rTMP r0
+#ifdef USE_AS_STPCPY
+#define rRTN r3 /* pointer to previous word/doubleword in dest */
+#else
+#define rRTN r12 /* pointer to previous word/doubleword in dest */
+#endif
+#define rSRC r4 /* pointer to previous word/doubleword in src */
+#define rMASK r5 /* mask 0xffffffff | 0xffffffffffffffff */
+#define rWORD r6 /* current word from src */
+#define rALT r7 /* alternate word from src */
+#define rRTNAL r8 /* alignment of return pointer */
+#define rSRCAL r9 /* alignment of source pointer */
+#define rALCNT r10 /* bytes to read to reach 8 bytes alignment */
+#define rSUBAL r11 /* doubleword minus unaligned displacement */
+
+#ifndef USE_AS_STPCPY
+/* Save the dst pointer to use as return value. */
+ mr rRTN, r3
+#endif
+ or rTMP, rSRC, rRTN
+ clrldi. rTMP, rTMP, 61
+ bne L(check_word_alignment)
+ b L(aligned_doubleword_copy)
+
+L(same_alignment):
+/* Src and dst with same alignment: align both to doubleword. */
+ mr rALCNT, rRTN
+ lbz rWORD, 0(rSRC)
+ subfic rSUBAL, rRTNAL, 8
+ addi rRTN, rRTN, 1
+ addi rSRC, rSRC, 1
+ cmpdi cr7, rWORD, 0
+ stb rWORD, 0(rALCNT)
+ beq cr7, L(s2)
+
+ add rALCNT, rALCNT, rSUBAL
+ subf rALCNT, rRTN, rALCNT
+ addi rALCNT, rALCNT, 1
+ mtctr rALCNT
+ b L(s1)
+
+ .align 4
+L(s0):
+ addi rSRC, rSRC, 1
+ lbz rWORD, -1(rSRC)
+ cmpdi cr7, rWORD, 0
+ stb rWORD, -1(rALCNT)
+ beqlr cr7
+ mr rRTN, rALCNT
+L(s1):
+ addi rALCNT, rRTN,1
+ bdnz L(s0)
+ b L(aligned_doubleword_copy)
+ .align 4
+L(s2):
+ mr rRTN, rALCNT
+ blr
+
+/* For doubleword aligned memory, operate using doubleword load and stores. */
+ .align 4
+L(aligned_doubleword_copy):
+ li rMASK, 0
+ addi rRTN, rRTN, -8
+ ld rWORD, 0(rSRC)
+ b L(g2)
+
+ .align 4
+L(g0): ldu rALT, 8(rSRC)
+ stdu rWORD, 8(rRTN)
+ cmpb rTMP, rALT, rMASK
+ cmpdi rTMP, 0
+ bne L(g1)
+ ldu rWORD, 8(rSRC)
+ stdu rALT, 8(rRTN)
+L(g2): cmpb rTMP, rWORD, rMASK
+ cmpdi rTMP, 0 /* If rTMP is 0, no null's have been found. */
+ beq L(g0)
+
+ mr rALT, rWORD
+/* We've hit the end of the string. Do the rest byte-by-byte. */
+L(g1):
+#ifdef __LITTLE_ENDIAN__
+ extrdi. rTMP, rALT, 8, 56
+ stbu rALT, 8(rRTN)
+ beqlr-
+ extrdi. rTMP, rALT, 8, 48
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ extrdi. rTMP, rALT, 8, 40
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ extrdi. rTMP, rALT, 8, 32
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ extrdi. rTMP, rALT, 8, 24
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ extrdi. rTMP, rALT, 8, 16
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ extrdi. rTMP, rALT, 8, 8
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ extrdi rTMP, rALT, 8, 0
+ stbu rTMP, 1(rRTN)
+#else
+ extrdi. rTMP, rALT, 8, 0
+ stbu rTMP, 8(rRTN)
+ beqlr
+ extrdi. rTMP, rALT, 8, 8
+ stbu rTMP, 1(rRTN)
+ beqlr
+ extrdi. rTMP, rALT, 8, 16
+ stbu rTMP, 1(rRTN)
+ beqlr
+ extrdi. rTMP, rALT, 8, 24
+ stbu rTMP, 1(rRTN)
+ beqlr
+ extrdi. rTMP, rALT, 8, 32
+ stbu rTMP, 1(rRTN)
+ beqlr
+ extrdi. rTMP, rALT, 8, 40
+ stbu rTMP, 1(rRTN)
+ beqlr
+ extrdi. rTMP, rALT, 8, 48
+ stbu rTMP, 1(rRTN)
+ beqlr
+ stbu rALT, 1(rRTN)
+#endif
+ blr
+
+L(check_word_alignment):
+ clrldi. rTMP, rTMP, 62
+ beq L(aligned_word_copy)
+ rldicl rRTNAL, rRTN, 0, 61
+ rldicl rSRCAL, rSRC, 0, 61
+ cmpld cr7, rSRCAL, rRTNAL
+ beq cr7, L(same_alignment)
+ b L(unaligned)
+
+/* For word aligned memory, operate using word load and stores. */
+ .align 4
+L(aligned_word_copy):
+ li rMASK, 0
+ addi rRTN, rRTN, -4
+ lwz rWORD, 0(rSRC)
+ b L(g5)
+
+ .align 4
+L(g3): lwzu rALT, 4(rSRC)
+ stwu rWORD, 4(rRTN)
+ cmpb rTMP, rALT, rMASK
+ cmpwi rTMP, 0
+ bne L(g4)
+ lwzu rWORD, 4(rSRC)
+ stwu rALT, 4(rRTN)
+L(g5): cmpb rTMP, rWORD, rMASK
+ cmpwi rTMP, 0 /* If rTMP is 0, no null in word. */
+ beq L(g3)
+
+ mr rALT, rWORD
+/* We've hit the end of the string. Do the rest byte-by-byte. */
+L(g4):
+#ifdef __LITTLE_ENDIAN__
+ rlwinm. rTMP, rALT, 0, 24, 31
+ stbu rALT, 4(rRTN)
+ beqlr-
+ rlwinm. rTMP, rALT, 24, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ rlwinm. rTMP, rALT, 16, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ rlwinm rTMP, rALT, 8, 24, 31
+ stbu rTMP, 1(rRTN)
+#else
+ rlwinm. rTMP, rALT, 8, 24, 31
+ stbu rTMP, 4(rRTN)
+ beqlr
+ rlwinm. rTMP, rALT, 16, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr
+ rlwinm. rTMP, rALT, 24, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr
+ stbu rALT, 1(rRTN)
+#endif
+ blr
+
+/* Oh well. In this case, we just do a byte-by-byte copy. */
+ .align 4
+L(unaligned):
+ lbz rWORD, 0(rSRC)
+ addi rRTN, rRTN, -1
+ cmpdi rWORD, 0
+ beq L(u2)
+
+ .align 5
+L(u0): lbzu rALT, 1(rSRC)
+ stbu rWORD, 1(rRTN)
+ cmpdi rALT, 0
+ beq L(u1)
+ lbzu rWORD, 1(rSRC)
+ stbu rALT, 1(rRTN)
+ cmpdi rWORD, 0
+ beq L(u2)
+ lbzu rALT, 1(rSRC)
+ stbu rWORD, 1(rRTN)
+ cmpdi rALT, 0
+ beq L(u1)
+ lbzu rWORD, 1(rSRC)
+ stbu rALT, 1(rRTN)
+ cmpdi rWORD, 0
+ bne L(u0)
+L(u2): stbu rWORD, 1(rRTN)
+ blr
+L(u1): stbu rALT, 1(rRTN)
+ blr
+END (FUNC_NAME)
+
+#ifndef USE_AS_STPCPY
+libc_hidden_builtin_def (strcpy)
+#endif
diff --git a/libc/sysdeps/powerpc/powerpc64/stpcpy.S b/libc/sysdeps/powerpc/powerpc64/stpcpy.S
index c0b39729e..09aa3be6b 100644
--- a/libc/sysdeps/powerpc/powerpc64/stpcpy.S
+++ b/libc/sysdeps/powerpc/powerpc64/stpcpy.S
@@ -16,103 +16,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#include <sysdep.h>
-
-/* See strlen.s for comments on how the end-of-string testing works. */
-
-/* char * [r3] stpcpy (char *dest [r3], const char *src [r4]) */
-
-EALIGN (__stpcpy, 4, 0)
- CALL_MCOUNT 2
-
-#define rTMP r0
-#define rRTN r3
-#define rDEST r3 /* pointer to previous word in dest */
-#define rSRC r4 /* pointer to previous word in src */
-#define rWORD r6 /* current word from src */
-#define rFEFE r7 /* 0xfefefeff */
-#define r7F7F r8 /* 0x7f7f7f7f */
-#define rNEG r9 /* ~(word in src | 0x7f7f7f7f) */
-#define rALT r10 /* alternate word from src */
-
- or rTMP, rSRC, rDEST
- clrldi. rTMP, rTMP, 62
- addi rDEST, rDEST, -4
- bne L(unaligned)
-
- lis rFEFE, -0x101
- lis r7F7F, 0x7f7f
- lwz rWORD, 0(rSRC)
- addi rFEFE, rFEFE, -0x101
- addi r7F7F, r7F7F, 0x7f7f
- b L(g2)
-
-L(g0): lwzu rALT, 4(rSRC)
- stwu rWORD, 4(rDEST)
- add rTMP, rFEFE, rALT
- nor rNEG, r7F7F, rALT
- and. rTMP, rTMP, rNEG
- bne- L(g1)
- lwzu rWORD, 4(rSRC)
- stwu rALT, 4(rDEST)
-L(g2): add rTMP, rFEFE, rWORD
- nor rNEG, r7F7F, rWORD
- and. rTMP, rTMP, rNEG
- beq+ L(g0)
-
- mr rALT, rWORD
-/* We've hit the end of the string. Do the rest byte-by-byte. */
-L(g1):
-#ifdef __LITTLE_ENDIAN__
- rlwinm. rTMP, rALT, 0, 24, 31
- stbu rALT, 4(rDEST)
- beqlr-
- rlwinm. rTMP, rALT, 24, 24, 31
- stbu rTMP, 1(rDEST)
- beqlr-
- rlwinm. rTMP, rALT, 16, 24, 31
- stbu rTMP, 1(rDEST)
- beqlr-
- rlwinm rTMP, rALT, 8, 24, 31
- stbu rTMP, 1(rDEST)
- blr
-#else
- rlwinm. rTMP, rALT, 8, 24, 31
- stbu rTMP, 4(rDEST)
- beqlr-
- rlwinm. rTMP, rALT, 16, 24, 31
- stbu rTMP, 1(rDEST)
- beqlr-
- rlwinm. rTMP, rALT, 24, 24, 31
- stbu rTMP, 1(rDEST)
- beqlr-
- stbu rALT, 1(rDEST)
- blr
-#endif
-
-/* Oh well. In this case, we just do a byte-by-byte copy. */
- .align 4
- nop
-L(unaligned):
- lbz rWORD, 0(rSRC)
- addi rDEST, rDEST, 3
- cmpwi rWORD, 0
- beq- L(u2)
-
-L(u0): lbzu rALT, 1(rSRC)
- stbu rWORD, 1(rDEST)
- cmpwi rALT, 0
- beq- L(u1)
- nop /* Let 601 load start of loop. */
- lbzu rWORD, 1(rSRC)
- stbu rALT, 1(rDEST)
- cmpwi rWORD, 0
- bne+ L(u0)
-L(u2): stbu rWORD, 1(rDEST)
- blr
-L(u1): stbu rALT, 1(rDEST)
- blr
-END (__stpcpy)
+#define USE_AS_STPCPY
+#include <sysdeps/powerpc/powerpc64/strcpy.S>
weak_alias (__stpcpy, stpcpy)
libc_hidden_def (__stpcpy)
diff --git a/libc/sysdeps/powerpc/powerpc64/strcpy.S b/libc/sysdeps/powerpc/powerpc64/strcpy.S
index a7fd85bad..793325d7b 100644
--- a/libc/sysdeps/powerpc/powerpc64/strcpy.S
+++ b/libc/sysdeps/powerpc/powerpc64/strcpy.S
@@ -22,25 +22,38 @@
/* char * [r3] strcpy (char *dest [r3], const char *src [r4]) */
-EALIGN (strcpy, 4, 0)
+#ifdef USE_AS_STPCPY
+# define FUNC_NAME __stpcpy
+#else
+# define FUNC_NAME strcpy
+#endif
+
+EALIGN (FUNC_NAME, 4, 0)
CALL_MCOUNT 2
#define rTMP r0
-#define rRTN r3 /* incoming DEST arg preserved as result */
-#define rSRC r4 /* pointer to previous word in src */
-#define rDEST r5 /* pointer to previous word in dest */
+#ifdef USE_AS_STPCPY
+#define rRTN r3 /* pointer to previous word/doubleword in dest */
+#else
+#define rRTN r12 /* pointer to previous word/doubleword in dest */
+#endif
+#define rSRC r4 /* pointer to previous word/doubleword in src */
#define rWORD r6 /* current word from src */
-#define rFEFE r7 /* constant 0xfefefefefefefeff (-0x0101010101010101) */
-#define r7F7F r8 /* constant 0x7f7f7f7f7f7f7f7f */
-#define rNEG r9 /* ~(word in s1 | 0x7f7f7f7f7f7f7f7f) */
+#define rFEFE r7 /* constant 0xfefefeff | 0xfefefefefefefeff */
+#define r7F7F r8 /* constant 0x7f7f7f7f | 0x7f7f7f7f7f7f7f7f */
+#define rNEG r9 /* ~(word in s1 | r7F7F) */
#define rALT r10 /* alternate word from src */
- dcbt 0,rSRC
+#ifndef USE_AS_STPCPY
+/* Save the dst pointer to use as return value. */
+ mr rRTN, r3
+#endif
or rTMP, rSRC, rRTN
clrldi. rTMP, rTMP, 61
- addi rDEST, rRTN, -8
- dcbtst 0,rRTN
- bne L(unaligned)
+ bne L(check_word_alignment)
+
+/* For doubleword aligned memory, operate using doubleword load and stores. */
+ addi rRTN, rRTN, -8
lis rFEFE, -0x101
lis r7F7F, 0x7f7f
@@ -53,13 +66,13 @@ EALIGN (strcpy, 4, 0)
b L(g2)
L(g0): ldu rALT, 8(rSRC)
- stdu rWORD, 8(rDEST)
+ stdu rWORD, 8(rRTN)
add rTMP, rFEFE, rALT
nor rNEG, r7F7F, rALT
and. rTMP, rTMP, rNEG
bne- L(g1)
ldu rWORD, 8(rSRC)
- stdu rALT, 8(rDEST)
+ stdu rALT, 8(rRTN)
L(g2): add rTMP, rFEFE, rWORD
nor rNEG, r7F7F, rWORD
and. rTMP, rTMP, rNEG
@@ -70,77 +83,134 @@ L(g2): add rTMP, rFEFE, rWORD
L(g1):
#ifdef __LITTLE_ENDIAN__
extrdi. rTMP, rALT, 8, 56
- stb rALT, 8(rDEST)
+ stbu rALT, 8(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 48
- stb rTMP, 9(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 40
- stb rTMP, 10(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 32
- stb rTMP, 11(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 24
- stb rTMP, 12(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 16
- stb rTMP, 13(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 8
- stb rTMP, 14(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi rTMP, rALT, 8, 0
- stb rTMP, 15(rDEST)
- blr
+ stbu rTMP, 1(rRTN)
#else
extrdi. rTMP, rALT, 8, 0
- stb rTMP, 8(rDEST)
+ stbu rTMP, 8(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 8
- stb rTMP, 9(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 16
- stb rTMP, 10(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 24
- stb rTMP, 11(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 32
- stb rTMP, 12(rDEST)
- beqlr-
+ stbu rTMP, 1(rRTN)
+ beqlr
extrdi. rTMP, rALT, 8, 40
- stb rTMP, 13(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
extrdi. rTMP, rALT, 8, 48
- stb rTMP, 14(rDEST)
+ stbu rTMP, 1(rRTN)
beqlr-
- stb rALT, 15(rDEST)
+ stbu rALT, 1(rRTN)
+#endif
blr
+
+L(check_word_alignment):
+ clrldi. rTMP, rTMP, 62
+ bne L(unaligned)
+
+/* For word aligned memory, operate using word load and stores. */
+ addi rRTN, rRTN, -4
+
+ lis rFEFE, -0x101
+ lis r7F7F, 0x7f7f
+ lwz rWORD, 0(rSRC)
+ addi rFEFE, rFEFE, -0x101
+ addi r7F7F, r7F7F, 0x7f7f
+ b L(g5)
+
+L(g3): lwzu rALT, 4(rSRC)
+ stwu rWORD, 4(rRTN)
+ add rTMP, rFEFE, rALT
+ nor rNEG, r7F7F, rALT
+ and. rTMP, rTMP, rNEG
+ bne- L(g4)
+ lwzu rWORD, 4(rSRC)
+ stwu rALT, 4(rRTN)
+L(g5): add rTMP, rFEFE, rWORD
+ nor rNEG, r7F7F, rWORD
+ and. rTMP, rTMP, rNEG
+ beq+ L(g3)
+
+ mr rALT, rWORD
+/* We've hit the end of the string. Do the rest byte-by-byte. */
+L(g4):
+#ifdef __LITTLE_ENDIAN__
+ rlwinm. rTMP, rALT, 0, 24, 31
+ stbu rALT, 4(rRTN)
+ beqlr-
+ rlwinm. rTMP, rALT, 24, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ rlwinm. rTMP, rALT, 16, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ rlwinm rTMP, rALT, 8, 24, 31
+ stbu rTMP, 1(rRTN)
+#else
+ rlwinm. rTMP, rALT, 8, 24, 31
+ stbu rTMP, 4(rRTN)
+ beqlr-
+ rlwinm. rTMP, rALT, 16, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ rlwinm. rTMP, rALT, 24, 24, 31
+ stbu rTMP, 1(rRTN)
+ beqlr-
+ stbu rALT, 1(rRTN)
#endif
+ blr
/* Oh well. In this case, we just do a byte-by-byte copy. */
.align 4
nop
L(unaligned):
lbz rWORD, 0(rSRC)
- addi rDEST, rRTN, -1
+ addi rRTN, rRTN, -1
cmpwi rWORD, 0
beq- L(u2)
L(u0): lbzu rALT, 1(rSRC)
- stbu rWORD, 1(rDEST)
+ stbu rWORD, 1(rRTN)
cmpwi rALT, 0
beq- L(u1)
nop /* Let 601 load start of loop. */
lbzu rWORD, 1(rSRC)
- stbu rALT, 1(rDEST)
+ stbu rALT, 1(rRTN)
cmpwi rWORD, 0
bne+ L(u0)
-L(u2): stb rWORD, 1(rDEST)
+L(u2): stbu rWORD, 1(rRTN)
blr
-L(u1): stb rALT, 1(rDEST)
+L(u1): stbu rALT, 1(rRTN)
blr
+END (FUNC_NAME)
-END (strcpy)
+#ifndef USE_AS_STPCPY
libc_hidden_builtin_def (strcpy)
+#endif
diff --git a/libc/sysdeps/s390/s390-32/configure b/libc/sysdeps/s390/s390-32/configure
index 669bb9be5..024565f85 100644
--- a/libc/sysdeps/s390/s390-32/configure
+++ b/libc/sysdeps/s390/s390-32/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/s390.
$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/libc/sysdeps/s390/s390-32/configure.in b/libc/sysdeps/s390/s390-32/configure.ac
index b5af4e12f..b5af4e12f 100644
--- a/libc/sysdeps/s390/s390-32/configure.in
+++ b/libc/sysdeps/s390/s390-32/configure.ac
diff --git a/libc/sysdeps/s390/s390-64/configure b/libc/sysdeps/s390/s390-64/configure
index 669bb9be5..024565f85 100644
--- a/libc/sysdeps/s390/s390-64/configure
+++ b/libc/sysdeps/s390/s390-64/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/s390.
$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/libc/sysdeps/s390/s390-64/configure.in b/libc/sysdeps/s390/s390-64/configure.ac
index b5af4e12f..b5af4e12f 100644
--- a/libc/sysdeps/s390/s390-64/configure.in
+++ b/libc/sysdeps/s390/s390-64/configure.ac
diff --git a/libc/sysdeps/sh/configure b/libc/sysdeps/sh/configure
index b0f3b2fa2..110eb65b0 100644
--- a/libc/sysdeps/sh/configure
+++ b/libc/sysdeps/sh/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/sh.
$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/libc/sysdeps/sh/configure.in b/libc/sysdeps/sh/configure.ac
index 21400c447..21400c447 100644
--- a/libc/sysdeps/sh/configure.in
+++ b/libc/sysdeps/sh/configure.ac
diff --git a/libc/sysdeps/sparc/configure b/libc/sysdeps/sparc/configure
index 63e02de4a..90a86f6da 100644
--- a/libc/sysdeps/sparc/configure
+++ b/libc/sysdeps/sparc/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/sparc.
# Check for support of VIS3 et al. instructions in the assembler.
diff --git a/libc/sysdeps/sparc/configure.in b/libc/sysdeps/sparc/configure.ac
index 982077c9b..982077c9b 100644
--- a/libc/sysdeps/sparc/configure.in
+++ b/libc/sysdeps/sparc/configure.ac
diff --git a/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S b/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S
index 2f0c5ce58..22f69ce51 100644
--- a/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S
+++ b/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S
@@ -30,7 +30,8 @@ ENTRY(__fdim)
fbug 1f
st %g0, [%sp + 76]
ldd [%sp + 72], %f0
- fnegd %f0, %f2
+ fnegs %f0, %f2
+ fmovs %f1, %f3
1: retl
fsubd %f0, %f2, %f0
END(__fdim)
diff --git a/libc/sysdeps/unix/sysv/linux/configure b/libc/sysdeps/unix/sysv/linux/configure
index 88fab5662..84dfbb87d 100644
--- a/libc/sysdeps/unix/sysv/linux/configure
+++ b/libc/sysdeps/unix/sysv/linux/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux.
# Don't bother trying to generate any glue code to be compatible with the
diff --git a/libc/sysdeps/unix/sysv/linux/configure.in b/libc/sysdeps/unix/sysv/linux/configure.ac
index 5e5902d8e..5e5902d8e 100644
--- a/libc/sysdeps/unix/sysv/linux/configure.in
+++ b/libc/sysdeps/unix/sysv/linux/configure.ac
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/configure b/libc/sysdeps/unix/sysv/linux/powerpc/configure
index 7df7e481f..50e3639be 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/configure
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/configure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/configure.in b/libc/sysdeps/unix/sysv/linux/powerpc/configure.ac
index 1768ab1f9..1768ab1f9 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/configure.in
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/configure.ac
diff --git a/libc/sysdeps/unix/sysv/linux/shm_open.c b/libc/sysdeps/unix/sysv/linux/shm_open.c
index 41d93155a..482b49cfe 100644
--- a/libc/sysdeps/unix/sysv/linux/shm_open.c
+++ b/libc/sysdeps/unix/sysv/linux/shm_open.c
@@ -148,14 +148,15 @@ shm_open (const char *name, int oflag, mode_t mode)
while (name[0] == '/')
++name;
- if (name[0] == '\0')
+ namelen = strlen (name);
+
+ /* Validate the filename. */
+ if (name[0] == '\0' || namelen > NAME_MAX || strchr (name, '/') == NULL)
{
- /* The name "/" is not supported. */
__set_errno (EINVAL);
return -1;
}
- namelen = strlen (name);
fname = (char *) alloca (mountpoint.dirlen + namelen + 1);
__mempcpy (__mempcpy (fname, mountpoint.dir, mountpoint.dirlen),
name, namelen + 1);
@@ -237,14 +238,15 @@ shm_unlink (const char *name)
while (name[0] == '/')
++name;
- if (name[0] == '\0')
+ namelen = strlen (name);
+
+ /* Validate the filename. */
+ if (name[0] == '\0' || namelen > NAME_MAX || strchr (name, '/') == NULL)
{
- /* The name "/" is not supported. */
__set_errno (ENOENT);
return -1;
}
- namelen = strlen (name);
fname = (char *) alloca (mountpoint.dirlen + namelen + 1);
__mempcpy (__mempcpy (fname, mountpoint.dir, mountpoint.dirlen),
name, namelen + 1);
diff --git a/libc/sysdeps/x86_64/configure b/libc/sysdeps/x86_64/configure
index 923241195..5a83a53aa 100644
--- a/libc/sysdeps/x86_64/configure
+++ b/libc/sysdeps/x86_64/configure
@@ -29,7 +29,7 @@ $as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/x86_64.
diff --git a/libc/sysdeps/x86_64/configure.in b/libc/sysdeps/x86_64/configure.ac
index c682f93c3..c682f93c3 100644
--- a/libc/sysdeps/x86_64/configure.in
+++ b/libc/sysdeps/x86_64/configure.ac
diff --git a/libc/sysdeps/x86_64/preconfigure b/libc/sysdeps/x86_64/preconfigure
index d5abba882..c8f1e0e13 100644
--- a/libc/sysdeps/x86_64/preconfigure
+++ b/libc/sysdeps/x86_64/preconfigure
@@ -1,4 +1,4 @@
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local preconfigure fragment for sysdeps/x86_64
test -n "$base_machine" || case "$machine" in
diff --git a/libc/sysdeps/x86_64/preconfigure.in b/libc/sysdeps/x86_64/preconfigure.ac
index 600700ea1..600700ea1 100644
--- a/libc/sysdeps/x86_64/preconfigure.in
+++ b/libc/sysdeps/x86_64/preconfigure.ac
diff --git a/libc/time/strptime_l.c b/libc/time/strptime_l.c
index e61a0b342..9ea11ebfa 100644
--- a/libc/time/strptime_l.c
+++ b/libc/time/strptime_l.c
@@ -745,7 +745,11 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
s.want_xday = 1;
break;
case 'Z':
- /* XXX How to handle this? */
+ /* Read timezone but perform no conversion. */
+ while (ISSPACE (*rp))
+ rp++;
+ while (!ISSPACE (*rp) && *rp != '\0')
+ rp++;
break;
case 'z':
/* We recognize two formats: if two digits are given, these
diff --git a/libc/time/tst-strptime.c b/libc/time/tst-strptime.c
index 21fbb6364..193f7dbe0 100644
--- a/libc/time/tst-strptime.c
+++ b/libc/time/tst-strptime.c
@@ -41,6 +41,7 @@ static const struct
{ "C", "19990502123412", "%Y%m%d%H%M%S", 0, 121, 4, 2 },
{ "C", "2001 20 Mon", "%Y %U %a", 1, 140, 4, 21 },
{ "C", "2001 21 Mon", "%Y %W %a", 1, 140, 4, 21 },
+ { "C", "2001 EST 21 Mon", "%Y %Z %W %a", 1, 140, 4, 21 },
{ "C", "2012 00 Sun", "%Y %W %a", 0, 0, 0, 1 },
{ "ja_JP.EUC-JP", "2000-01-01 08:12:21 AM", "%Y-%m-%d %I:%M:%S %p",
6, 0, 0, 1 },
diff --git a/libc/time/tzfile.c b/libc/time/tzfile.c
index 9dd513075..3ea3051f4 100644
--- a/libc/time/tzfile.c
+++ b/libc/time/tzfile.c
@@ -114,6 +114,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
int was_using_tzfile = __use_tzfile;
int trans_width = 4;
size_t tzspec_len;
+ char *new = NULL;
if (sizeof (time_t) != 4 && sizeof (time_t) != 8)
abort ();
@@ -145,22 +146,12 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
if (*file != '/')
{
const char *tzdir;
- unsigned int len, tzdir_len;
- char *new, *tmp;
tzdir = getenv ("TZDIR");
if (tzdir == NULL || *tzdir == '\0')
- {
- tzdir = default_tzdir;
- tzdir_len = sizeof (default_tzdir) - 1;
- }
- else
- tzdir_len = strlen (tzdir);
- len = strlen (file) + 1;
- new = (char *) __alloca (tzdir_len + 1 + len);
- tmp = __mempcpy (new, tzdir, tzdir_len);
- *tmp++ = '/';
- memcpy (tmp, file, len);
+ tzdir = default_tzdir;
+ if (__asprintf (&new, "%s/%s", tzdir, file) == -1)
+ goto ret_free_transitions;
file = new;
}
@@ -170,11 +161,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
&& stat64 (file, &st) == 0
&& tzfile_ino == st.st_ino && tzfile_dev == st.st_dev
&& tzfile_mtime == st.st_mtime)
- {
- /* Nothing to do. */
- __use_tzfile = 1;
- return;
- }
+ goto done; /* Nothing to do. */
/* Note the file is opened with cancellation in the I/O functions
disabled and if available FD_CLOEXEC set. */
@@ -527,12 +514,15 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
__daylight = rule_stdoff != rule_dstoff;
__timezone = -rule_stdoff;
+ done:
__use_tzfile = 1;
+ free (new);
return;
lose:
fclose (f);
ret_free_transitions:
+ free (new);
free ((void *) transitions);
transitions = NULL;
}