summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-10-26 23:41:17 +0000
committerUlrich Drepper <drepper@redhat.com>2000-10-26 23:41:17 +0000
commitd8337213c83c3bd4aa32e16669745dd7ee32b329 (patch)
treec9f1296e2e3f355d296e4d8258c8380393006fc0
parent5be068fc154b697b56cce171a73eccf572f86937 (diff)
downloadglibc-d8337213c83c3bd4aa32e16669745dd7ee32b329.tar.gz
glibc-d8337213c83c3bd4aa32e16669745dd7ee32b329.tar.xz
glibc-d8337213c83c3bd4aa32e16669745dd7ee32b329.zip
Update.
	* locale/C-monetary.c: Set mon_decimal to empty string.
	Add missing entry _NL_MONETARY_CRNCYSTR.
	* stdio-common/printf_fp.c: If MON_DECIAL_POINT is not provided use
	DECIMAL_POINT information.
	* locale/C-numeric.c: Set mon_grouping entry to empty string.
	* locale/C-time.c: Add date_fmt entries.  Remove two wrong entries.
	Correct value for number of entries.
	* locale/localeconv.c: Normalize result passed back in .grouping.
	Fix assignment to .int_* entries.

	* locale/Makefile (tests): Add tst-C-locale.
	* locale/tst-C-locale.c: New file.

	* locale/setlocale.c: Use LOCALEDIR and not LOCALE_PATH to locate
	locale files.
	* locale/newlocale.c: Likewise.

2000-10-26  GOTO Masanori  <gotom@debian.or.jp>

	* locale/langinfo.h: Define _DATE_FMT and _NL_W_DATE_FMT.
	* locale/categories.def: New support for date_fmt.
	* locale/programs/ld-time.c: Likewise.
	* locale/programs/locfile-kw.gperf: Likewise.
	* locale/programs/locfile-kw.h: Likewise.
	* locale/programs/locfile-token.h: Likewise.

2000-10-26  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ieee754/ldbl-128/e_hypotl.c: New.

	* math/libm-test.inc (cabs_test, cexp_test, csqrt_test, hypot_test):
	Increase precision of constants.
	* sysdeps/alpha/fpu/libm-test-ulps: Update.
	* sysdeps/arm/libm-test-ulps: Update.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/ia64/fpu/libm-test-ulps: Update.
	* sysdeps/m68k/fpu/libm-test-ulps: Update.
	* sysdeps/mips/fpu/libm-test-ulps: Update.
	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
	* sysdeps/sh/sh4/fpu/libm-test-ulps: Update.
	* sysdeps/s390/fpu/libm-test-ulps: Update.

2000-10-26  Ulrich Drepper  <drepper@redhat.com>
-rw-r--r--ChangeLog46
-rw-r--r--locale/C-monetary.c6
-rw-r--r--locale/C-numeric.c8
-rw-r--r--locale/C-time.c8
-rw-r--r--locale/Makefile1
-rw-r--r--locale/categories.def2
-rw-r--r--locale/langinfo.h6
-rw-r--r--locale/localeconv.c22
-rw-r--r--locale/newlocale.c2
-rw-r--r--locale/programs/ld-time.c21
-rw-r--r--locale/programs/locfile-kw.gperf1
-rw-r--r--locale/programs/locfile-kw.h467
-rw-r--r--locale/programs/locfile-token.h1
-rw-r--r--locale/setlocale.c2
-rw-r--r--locale/tst-C-locale.c231
-rw-r--r--localedata/locales/POSIX2
-rw-r--r--localedata/locales/af_ZA3
-rw-r--r--localedata/locales/ar_AE4
-rw-r--r--localedata/locales/ar_BH4
-rw-r--r--localedata/locales/ar_DZ4
-rw-r--r--localedata/locales/ar_EG4
-rw-r--r--localedata/locales/ar_IQ4
-rw-r--r--localedata/locales/ar_JO4
-rw-r--r--localedata/locales/ar_KW4
-rw-r--r--localedata/locales/ar_LB4
-rw-r--r--localedata/locales/ar_LY4
-rw-r--r--localedata/locales/ar_MA4
-rw-r--r--localedata/locales/ar_OM4
-rw-r--r--localedata/locales/ar_QA4
-rw-r--r--localedata/locales/ar_SA3
-rw-r--r--localedata/locales/ar_SD4
-rw-r--r--localedata/locales/ar_SY4
-rw-r--r--localedata/locales/ar_TN4
-rw-r--r--localedata/locales/ar_YE4
-rw-r--r--localedata/locales/be_BY3
-rw-r--r--localedata/locales/bg_BG3
-rw-r--r--localedata/locales/ca_ES3
-rw-r--r--localedata/locales/cs_CZ4
-rw-r--r--localedata/locales/da_DK3
-rw-r--r--localedata/locales/de_AT3
-rw-r--r--localedata/locales/de_BE3
-rw-r--r--localedata/locales/de_CH3
-rw-r--r--localedata/locales/de_DE3
-rw-r--r--localedata/locales/de_LU3
-rw-r--r--localedata/locales/el_GR3
-rw-r--r--localedata/locales/en_AU3
-rw-r--r--localedata/locales/en_CA3
-rw-r--r--localedata/locales/en_DK3
-rw-r--r--localedata/locales/en_GB3
-rw-r--r--localedata/locales/en_IE3
-rw-r--r--localedata/locales/en_NZ3
-rw-r--r--localedata/locales/en_US5
-rw-r--r--localedata/locales/en_ZA3
-rw-r--r--localedata/locales/es_AR3
-rw-r--r--localedata/locales/es_BO3
-rw-r--r--localedata/locales/es_CL3
-rw-r--r--localedata/locales/es_CO3
-rw-r--r--localedata/locales/es_CR3
-rw-r--r--localedata/locales/es_DO3
-rw-r--r--localedata/locales/es_EC3
-rw-r--r--localedata/locales/es_ES3
-rw-r--r--localedata/locales/es_GT3
-rw-r--r--localedata/locales/es_HN3
-rw-r--r--localedata/locales/es_MX3
-rw-r--r--localedata/locales/es_NI3
-rw-r--r--localedata/locales/es_PA3
-rw-r--r--localedata/locales/es_PE3
-rw-r--r--localedata/locales/es_PR3
-rw-r--r--localedata/locales/es_PY3
-rw-r--r--localedata/locales/es_SV3
-rw-r--r--localedata/locales/es_US3
-rw-r--r--localedata/locales/es_UY3
-rw-r--r--localedata/locales/es_VE3
-rw-r--r--localedata/locales/et_EE3
-rw-r--r--localedata/locales/eu_ES3
-rw-r--r--localedata/locales/fa_IR15
-rw-r--r--localedata/locales/fi_FI3
-rw-r--r--localedata/locales/fo_FO3
-rw-r--r--localedata/locales/fr_BE3
-rw-r--r--localedata/locales/fr_CA3
-rw-r--r--localedata/locales/fr_CH3
-rw-r--r--localedata/locales/fr_FR3
-rw-r--r--localedata/locales/fr_LU3
-rw-r--r--localedata/locales/ga_IE3
-rw-r--r--localedata/locales/gl_ES3
-rw-r--r--localedata/locales/gv_GB3
-rw-r--r--localedata/locales/he_IL3
-rw-r--r--localedata/locales/hi_IN3
-rw-r--r--localedata/locales/hr_HR3
-rw-r--r--localedata/locales/hu_HU3
-rw-r--r--localedata/locales/i18n2
-rw-r--r--localedata/locales/id_ID3
-rw-r--r--localedata/locales/is_IS3
-rw-r--r--localedata/locales/it_CH3
-rw-r--r--localedata/locales/it_IT3
-rw-r--r--localedata/locales/iw_IL3
-rw-r--r--localedata/locales/ja_JP5
-rw-r--r--localedata/locales/kl_GL3
-rw-r--r--localedata/locales/ko_KR4
-rw-r--r--localedata/locales/kw_GB3
-rw-r--r--localedata/locales/lt_LT3
-rw-r--r--localedata/locales/lv_LV3
-rw-r--r--localedata/locales/mk_MK3
-rw-r--r--localedata/locales/mr_IN4
-rw-r--r--localedata/locales/mt_MT4
-rw-r--r--localedata/locales/nl_BE3
-rw-r--r--localedata/locales/nl_NL3
-rw-r--r--localedata/locales/nn_NO4
-rw-r--r--localedata/locales/no_NO3
-rw-r--r--localedata/locales/pl_PL3
-rw-r--r--localedata/locales/pt_BR3
-rw-r--r--localedata/locales/pt_PT3
-rw-r--r--localedata/locales/ro_RO3
-rw-r--r--localedata/locales/ru_RU3
-rw-r--r--localedata/locales/ru_UA3
-rw-r--r--localedata/locales/sk_SK4
-rw-r--r--localedata/locales/sl_SI3
-rw-r--r--localedata/locales/sq_AL4
-rw-r--r--localedata/locales/sr_YU3
-rw-r--r--localedata/locales/sv_FI3
-rw-r--r--localedata/locales/sv_SE3
-rw-r--r--localedata/locales/th_TH5
-rw-r--r--localedata/locales/tr_TR9
-rw-r--r--localedata/locales/uk_UA3
-rw-r--r--localedata/locales/vi_VN4
-rw-r--r--localedata/locales/zh_CN3
-rw-r--r--localedata/locales/zh_HK4
-rw-r--r--localedata/locales/zh_TW5
-rw-r--r--math/libm-test.inc38
-rw-r--r--stdio-common/printf_fp.c8
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps40
-rw-r--r--sysdeps/arm/libm-test-ulps40
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps46
-rw-r--r--sysdeps/ia64/fpu/libm-test-ulps46
-rw-r--r--sysdeps/ieee754/ldbl-128/e_hypotl.c132
-rw-r--r--sysdeps/m68k/fpu/libm-test-ulps42
-rw-r--r--sysdeps/mips/fpu/libm-test-ulps40
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps40
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps40
-rw-r--r--sysdeps/sh/sh4/fpu/libm-test-ulps40
-rw-r--r--sysdeps/sparc/sparc32/fpu/libm-test-ulps40
-rw-r--r--sysdeps/sparc/sparc64/fpu/libm-test-ulps59
142 files changed, 1358 insertions, 505 deletions
diff --git a/ChangeLog b/ChangeLog
index 7e388d6147..db45350ebd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,51 @@
 2000-10-26  Ulrich Drepper  <drepper@redhat.com>
 
+	* locale/C-monetary.c: Set mon_decimal to empty string.
+	Add missing entry _NL_MONETARY_CRNCYSTR.
+	* stdio-common/printf_fp.c: If MON_DECIAL_POINT is not provided use
+	DECIMAL_POINT information.
+	* locale/C-numeric.c: Set mon_grouping entry to empty string.
+	* locale/C-time.c: Add date_fmt entries.  Remove two wrong entries.
+	Correct value for number of entries.
+	* locale/localeconv.c: Normalize result passed back in .grouping.
+	Fix assignment to .int_* entries.
+
+	* locale/Makefile (tests): Add tst-C-locale.
+	* locale/tst-C-locale.c: New file.
+
+	* locale/setlocale.c: Use LOCALEDIR and not LOCALE_PATH to locate
+	locale files.
+	* locale/newlocale.c: Likewise.
+
+2000-10-26  GOTO Masanori  <gotom@debian.or.jp>
+
+	* locale/langinfo.h: Define _DATE_FMT and _NL_W_DATE_FMT.
+	* locale/categories.def: New support for date_fmt.
+	* locale/programs/ld-time.c: Likewise.
+	* locale/programs/locfile-kw.gperf: Likewise.
+	* locale/programs/locfile-kw.h: Likewise.
+	* locale/programs/locfile-token.h: Likewise.
+
+2000-10-26  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/ieee754/ldbl-128/e_hypotl.c: New.
+
+	* math/libm-test.inc (cabs_test, cexp_test, csqrt_test, hypot_test):
+	Increase precision of constants.
+	* sysdeps/alpha/fpu/libm-test-ulps: Update.
+	* sysdeps/arm/libm-test-ulps: Update.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+	* sysdeps/ia64/fpu/libm-test-ulps: Update.
+	* sysdeps/m68k/fpu/libm-test-ulps: Update.
+	* sysdeps/mips/fpu/libm-test-ulps: Update.
+	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
+	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
+	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
+	* sysdeps/sh/sh4/fpu/libm-test-ulps: Update.
+	* sysdeps/s390/fpu/libm-test-ulps: Update.
+
+2000-10-26  Ulrich Drepper  <drepper@redhat.com>
+
 	* io/Makefile (tests): Add tst-fcntl.
 	* io/tst-fcntl.c: New file.
 
diff --git a/locale/C-monetary.c b/locale/C-monetary.c
index 39d061da55..e04b2de4f0 100644
--- a/locale/C-monetary.c
+++ b/locale/C-monetary.c
@@ -39,7 +39,7 @@ const struct locale_data _nl_C_LC_MONETARY =
   {
     { string: "" },
     { string: "" },
-    { string: "." },
+    { string: "" },
     { string: "" },
     { string: "" },
     { string: "" },
@@ -52,6 +52,7 @@ const struct locale_data _nl_C_LC_MONETARY =
     { string: not_available },
     { string: not_available },
     { string: not_available },
+    { string: "" },
     { string: not_available },
     { string: not_available },
     { string: not_available },
@@ -79,8 +80,7 @@ const struct locale_data _nl_C_LC_MONETARY =
     { word: 10101 },
     { word: 99991231 },
     { word: 1 },
-    { word: 1 },
-    { word: (unsigned int) L'.' },
+    { word: (unsigned int) L'\0' },
     { word: (unsigned int) L'\0' }
   }
 };
diff --git a/locale/C-numeric.c b/locale/C-numeric.c
index 65fc2734ba..822780dcdd 100644
--- a/locale/C-numeric.c
+++ b/locale/C-numeric.c
@@ -21,12 +21,6 @@
 
 /* This table's entries are taken from POSIX.2 Table 2-10
    ``LC_NUMERIC Category Definition in the POSIX Locale''.  */
-#ifdef __CHAR_UNSIGNED__
-static const char not_available[] = "\377";
-#else
-static const char not_available[] = "\177";
-#endif
-
 const struct locale_data _nl_C_LC_NUMERIC =
 {
   _nl_C_name,
@@ -38,7 +32,7 @@ const struct locale_data _nl_C_LC_NUMERIC =
   {
     { string: "." },
     { string: "" },
-    { string: not_available },
+    { string: "" },
     { word: (unsigned int) L'.' },
     { word: (unsigned int) L'\0' }
   }
diff --git a/locale/C-time.c b/locale/C-time.c
index 18bd645ed0..d205f4918c 100644
--- a/locale/C-time.c
+++ b/locale/C-time.c
@@ -30,7 +30,7 @@ const struct locale_data _nl_C_LC_TIME =
   UNDELETABLE,
   0,
   NULL,
-  62,
+  110,
   {
     { string: "Sun" },
     { string: "Mon" },
@@ -128,7 +128,6 @@ const struct locale_data _nl_C_LC_TIME =
     { wstr: (const uint32_t *) L"%m/%d/%y" },
     { wstr: (const uint32_t *) L"%H:%M:%S" },
     { wstr: (const uint32_t *) L"%I:%M:%S %p" },
-    { wstr: NULL },
     { wstr: (const uint32_t *) L"" },
     { wstr: (const uint32_t *) L"" },
     { wstr: (const uint32_t *) L"" },
@@ -139,8 +138,9 @@ const struct locale_data _nl_C_LC_TIME =
     { word: 19971130 },
     { string: "\7" },
     { string: "\1" },
-    { string: "\7" },
     { string: "\1" },
-    { string: "" }
+    { string: "" },
+    { string: "%a %b %e %H:%M:%S %Z %Y" },
+    { wstr: (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y" }
   }
 };
diff --git a/locale/Makefile b/locale/Makefile
index a5abf5414a..0710863cb1 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -37,6 +37,7 @@ distribute	= localeinfo.h categories.def iso-639.def iso-3166.def \
 routines	= setlocale findlocale loadlocale localeconv nl_langinfo \
 		  nl_langinfo_l mb_cur_max codeset_name \
 		  newlocale duplocale freelocale
+tests		= tst-C-locale
 categories	= ctype messages monetary numeric time paper name \
 		  address telephone measurement identification collate
 aux		= $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name
diff --git a/locale/categories.def b/locale/categories.def
index 2ec45e477a..561cae98f0 100644
--- a/locale/categories.def
+++ b/locale/categories.def
@@ -240,6 +240,8 @@ DEFINE_CATEGORY
   DEFINE_ELEMENT (_NL_TIME_FIRST_WORKDAY,   "first_workday",       std, byte)
   DEFINE_ELEMENT (_NL_TIME_CAL_DIRECTION,   "cal_direction",       std, byte)
   DEFINE_ELEMENT (_NL_TIME_TIMEZONE,        "timezone",            std, string)
+  DEFINE_ELEMENT (_DATE_FMT,                "date_fmt",            opt, string)
+  DEFINE_ELEMENT (_NL_W_DATE_FMT,           "wide-date_fmt",       opt, string)
   ), _nl_postload_time)
 
 
diff --git a/locale/langinfo.h b/locale/langinfo.h
index c8ffa1db5e..d55afa4e63 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -227,7 +227,11 @@ enum
   _NL_TIME_CAL_DIRECTION,
   _NL_TIME_TIMEZONE,
 
-  _NL_NUM_LC_TIME,		/* Number of indices in LC_TIME category.  */
+  _DATE_FMT,		/* strftime format for date.  */
+#define _DATE_FMT	_DATE_FMT
+  _NL_W_DATE_FMT,
+
+  _NL_NUM_LC_TIME,	/* Number of indices in LC_TIME category.  */
 
   /* LC_COLLATE category: text sorting.
      This information is accessed by the strcoll and strxfrm functions.
diff --git a/locale/localeconv.c b/locale/localeconv.c
index 0f545370f7..c5754fed93 100644
--- a/locale/localeconv.c
+++ b/locale/localeconv.c
@@ -29,6 +29,8 @@ __localeconv (void)
   result.decimal_point = (char *) _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
   result.thousands_sep = (char *) _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
   result.grouping = (char *) _NL_CURRENT (LC_NUMERIC, GROUPING);
+  if (*result.grouping == CHAR_MAX || *result.grouping == -1)
+    result.grouping = (char *) "";
 
   result.int_curr_symbol = (char *) _NL_CURRENT (LC_MONETARY, INT_CURR_SYMBOL);
   result.currency_symbol = (char *) _NL_CURRENT (LC_MONETARY, CURRENCY_SYMBOL);
@@ -37,6 +39,8 @@ __localeconv (void)
   result.mon_thousands_sep = (char *) _NL_CURRENT (LC_MONETARY,
 						   MON_THOUSANDS_SEP);
   result.mon_grouping = (char *) _NL_CURRENT (LC_MONETARY, MON_GROUPING);
+  if (*result.mon_grouping == CHAR_MAX || *result.mon_grouping == -1)
+    result.mon_grouping = (char *) "";
   result.positive_sign = (char *) _NL_CURRENT (LC_MONETARY, POSITIVE_SIGN);
   result.negative_sign = (char *) _NL_CURRENT (LC_MONETARY, NEGATIVE_SIGN);
   result.int_frac_digits = *(char *) _NL_CURRENT (LC_MONETARY,
@@ -48,12 +52,18 @@ __localeconv (void)
   result.n_sep_by_space = *(char *) _NL_CURRENT (LC_MONETARY, N_SEP_BY_SPACE);
   result.p_sign_posn = *(char *) _NL_CURRENT (LC_MONETARY, P_SIGN_POSN);
   result.n_sign_posn = *(char *) _NL_CURRENT (LC_MONETARY, N_SIGN_POSN);
-  result.p_cs_precedes = *(char *) _NL_CURRENT (LC_MONETARY, INT_P_CS_PRECEDES);
-  result.p_sep_by_space = *(char *) _NL_CURRENT (LC_MONETARY, INT_P_SEP_BY_SPACE);
-  result.n_cs_precedes = *(char *) _NL_CURRENT (LC_MONETARY, INT_N_CS_PRECEDES);
-  result.n_sep_by_space = *(char *) _NL_CURRENT (LC_MONETARY, INT_N_SEP_BY_SPACE);
-  result.p_sign_posn = *(char *) _NL_CURRENT (LC_MONETARY, INT_P_SIGN_POSN);
-  result.n_sign_posn = *(char *) _NL_CURRENT (LC_MONETARY, INT_N_SIGN_POSN);
+  result.int_p_cs_precedes = *(char *) _NL_CURRENT (LC_MONETARY,
+						    INT_P_CS_PRECEDES);
+  result.int_p_sep_by_space = *(char *) _NL_CURRENT (LC_MONETARY,
+						     INT_P_SEP_BY_SPACE);
+  result.int_n_cs_precedes = *(char *) _NL_CURRENT (LC_MONETARY,
+						    INT_N_CS_PRECEDES);
+  result.int_n_sep_by_space = *(char *) _NL_CURRENT (LC_MONETARY,
+						     INT_N_SEP_BY_SPACE);
+  result.int_p_sign_posn = *(char *) _NL_CURRENT (LC_MONETARY,
+						  INT_P_SIGN_POSN);
+  result.int_n_sign_posn = *(char *) _NL_CURRENT (LC_MONETARY,
+						  INT_N_SIGN_POSN);
 
   return &result;
 }
diff --git a/locale/newlocale.c b/locale/newlocale.c
index cd40943ccc..43419a9451 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -98,7 +98,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
       return NULL;
 
   if (__argz_append (&locale_path, &locale_path_len,
-		     LOCALE_PATH, sizeof (LOCALE_PATH)) != 0)
+		     LOCALEDIR, sizeof (LOCALEDIR)) != 0)
     return NULL;
 
   /* Get the names for the locales we are interested in.  We either
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index b42dba0100..ad4914a154 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -89,6 +89,8 @@ struct locale_time_t
   const uint32_t *wera_d_fmt;
   const char *alt_digits[100];
   const uint32_t *walt_digits[100];
+  const char *date_fmt;
+  const uint32_t *wdate_fmt;
   int alt_digits_defined;
   unsigned char week_ndays;
   uint32_t week_1stday;
@@ -491,6 +493,11 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
      simply useless, stupid $&$!@...  */
   if (time->timezone == NULL)
     time->timezone = "";
+
+  if (time->date_fmt == NULL)
+    time->date_fmt = "%a %b %e %H:%M:%S %Z %Y";
+  if (time->wdate_fmt == NULL)
+    time->wdate_fmt = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y";
 }
 
 
@@ -849,6 +856,19 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
 
   iov[2 + cnt].iov_base = (void *) time->timezone;
   iov[2 + cnt].iov_len = strlen (time->timezone) + 1;
+  idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
+  ++cnt;
+  ++last_idx;
+
+  iov[2 + cnt].iov_base = (void *) time->date_fmt;
+  iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1;
+  idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
+  ++cnt;
+  ++last_idx;
+
+  iov[2 + cnt].iov_base = (void *) time->wdate_fmt;
+  iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
+                          * sizeof (uint32_t));
   ++cnt;
   ++last_idx;
 
@@ -1080,6 +1100,7 @@ time_read (struct linereader *ldfile, struct localedef_t *result,
 	  STR_ELEM (era_d_fmt);
 	  STR_ELEM (era_t_fmt);
 	  STR_ELEM (timezone);
+	  STR_ELEM (date_fmt);
 
 #define INT_ELEM(cat) \
 	case tok_##cat:							      \
diff --git a/locale/programs/locfile-kw.gperf b/locale/programs/locfile-kw.gperf
index 72421c742a..5aaaa6dcba 100644
--- a/locale/programs/locfile-kw.gperf
+++ b/locale/programs/locfile-kw.gperf
@@ -147,6 +147,7 @@ first_weekday,          tok_first_weekday,          0
 first_workday,          tok_first_workday,          0
 cal_direction,          tok_cal_direction,          0
 timezone,               tok_timezone,               0
+date_fmt,               tok_date_fmt,               0
 LC_MESSAGES,            tok_lc_messages,            0
 yesexpr,                tok_yesexpr,                0
 noexpr,                 tok_noexpr,                 0
diff --git a/locale/programs/locfile-kw.h b/locale/programs/locfile-kw.h
index ce219a6565..f456920603 100644
--- a/locale/programs/locfile-kw.h
+++ b/locale/programs/locfile-kw.h
@@ -24,12 +24,12 @@
 #include "locfile-token.h"
 struct keyword_t ;
 
-#define TOTAL_KEYWORDS 174
+#define TOTAL_KEYWORDS 175
 #define MIN_WORD_LENGTH 3
 #define MAX_WORD_LENGTH 22
 #define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 539
-/* maximum key range = 537, duplicates = 0 */
+#define MAX_HASH_VALUE 687
+/* maximum key range = 685, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -39,32 +39,32 @@ hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-        5,   0, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540,  25, 540,   0,   0,   0,
-       15,   0,   0,   0, 540, 540,   0, 540,   0,   0,
-      540, 540,  15,   0,  10,   5, 540, 540, 540,   0,
-      540, 540, 540, 540, 540,  50, 540,   0,  20, 120,
-        5,   0, 110,  15, 105,  90, 540,  15,  75, 150,
-       70,  65,  15,   0,   5,  50,   0, 230,  10,   5,
-        5,   5,   0, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-      540, 540, 540, 540, 540, 540
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+        5,   0, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688,  15, 688,   0,   0,   0,
+        5,   0,   0,   0, 688, 688,   0, 688,   0,   5,
+      688, 688,  15,   0,   5,  15, 688, 688, 688,   0,
+      688, 688, 688, 688, 688,  75, 688,   0,   0,  65,
+        5,   0,  85,  40,   5, 155, 688,  10, 105, 120,
+      125,  35,   5,  20,   5, 190,   0, 125,  35,  10,
+       30,  35,   0, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688
     };
   register int hval = len;
 
@@ -106,291 +106,306 @@ locfile_hash (register const char *str, register unsigned int len)
       {"LC_ADDRESS",             tok_lc_address,             0},
       {"LC_MESSAGES",            tok_lc_messages,            0},
       {"LC_TELEPHONE",           tok_lc_telephone,           0},
-      {"day",                    tok_day,                    0},
+      {"LC_CTYPE",               tok_lc_ctype,               0},
       {"era_t_fmt",              tok_era_t_fmt,              0},
-      {"LC_NUMERIC",             tok_lc_numeric,             0},
-      {"yesstr",                 tok_yesstr,                 0},
+      {"print",                  tok_print,                  0},
+      {"height",                 tok_height,                 0},
       {"LC_IDENTIFICATION",      tok_lc_identification,      0},
-      {"LC_CTYPE",               tok_lc_ctype,               0},
+      {""},
       {"era_d_fmt",              tok_era_d_fmt,              0},
       {"LC_COLLATE",             tok_lc_collate,             0},
       {"IGNORE",                 tok_ignore,                 0},
-      {"yesexpr",                tok_yesexpr,                0},
-      {"era_year",               tok_era_year,               0},
+      {"LC_NAME",                tok_lc_name,                0},
+      {"backward",               tok_backward,               0},
       {"week",                   tok_week,                   0},
-      {"print",                  tok_print,                  0},
+      {"LC_NUMERIC",             tok_lc_numeric,             0},
       {"reorder-end",            tok_reorder_end,            0},
       {""},
       {"reorder-after",          tok_reorder_after,          0},
       {"UNDEFINED",              tok_undefined,              0},
-      {""}, {""},
-      {"LC_NAME",                tok_lc_name,                0},
-      {""}, {""},
-      {"abday",                  tok_abday,                  0},
+      {""},
       {"LC_MONETARY",            tok_lc_monetary,            0},
       {""},
-      {"backward",               tok_backward,               0},
+      {"repertoiremap",          tok_repertoiremap,          0},
       {"LC_MEASUREMENT",         tok_lc_measurement,         0},
       {""}, {""}, {""},
-      {"repertoiremap",          tok_repertoiremap,          0},
-      {""}, {""}, {""}, {""},
       {"LC_PAPER",               tok_lc_paper,               0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"t_fmt",                  tok_t_fmt,                  0},
+      {""}, {""}, {""}, {""},
+      {"day",                    tok_day,                    0},
       {""}, {""},
-      {"grouping",               tok_grouping,               0},
+      {"yesstr",                 tok_yesstr,                 0},
+      {""}, {""}, {""}, {""}, {""},
+      {"toupper",                tok_toupper,                0},
+      {"era_year",               tok_era_year,               0},
+      {""}, {""},
+      {"order_start",            tok_order_start,            0},
+      {"tolower",                tok_tolower,                0},
+      {""}, {""},
+      {"graph",                  tok_graph,                  0},
+      {""}, {""}, {""},
+      {"order_end",              tok_order_end,              0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"d_fmt",                  tok_d_fmt,                  0},
+      {"abday",                  tok_abday,                  0},
       {""},
-      {"address",                tok_address,                0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"space",                  tok_space,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"yesexpr",                tok_yesexpr,                0},
+      {""}, {""},
+      {"t_fmt",                  tok_t_fmt,                  0},
+      {""}, {""}, {""}, {""},
+      {"d_fmt",                  tok_d_fmt,                  0},
+      {""}, {""},
+      {"date_fmt",               tok_date_fmt,               0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"grouping",               tok_grouping,               0},
+      {""}, {""},
+      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
+      {""}, {""}, {""}, {""},
+      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
+      {"contact",                tok_contact,                0},
       {"tel",                    tok_tel,                    0},
       {"else",                   tok_else,                   0},
       {"alpha",                  tok_alpha,                  0},
-      {"define",                 tok_define,                 0},
-      {"tolower",                tok_tolower,                0},
-      {""}, {""},
-      {"reorder-sections-end",   tok_reorder_sections_end,   0},
-      {"order_start",            tok_order_start,            0},
-      {"reorder-sections-after", tok_reorder_sections_after, 0},
+      {"country_ab3",            tok_country_ab3,            0},
       {""}, {""}, {""}, {""},
-      {"toupper",                tok_toupper,                0},
+      {"country_ab2",            tok_country_ab2,            0},
+      {"country_post",           tok_country_post,           0},
+      {"fax",                    tok_fax,                    0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"map",                    tok_map,                    0},
       {""},
-      {"order_end",              tok_order_end,              0},
-      {"title",                  tok_title,                  0},
-      {""}, {""},
-      {"timezone",               tok_timezone,               0},
+      {"blank",                  tok_blank,                  0},
       {""},
-      {"digit",                  tok_digit,                  0},
+      {"forward",                tok_forward,                0},
+      {"audience",               tok_audience,               0},
       {""},
+      {"punct",                  tok_punct,                  0},
+      {"define",                 tok_define,                 0},
       {"abbreviation",           tok_abbreviation,           0},
-      {""}, {""}, {""},
-      {"xdigit",                 tok_xdigit,                 0},
-      {""}, {""},
-      {"territory",              tok_territory,              0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"fax",                    tok_fax,                    0},
-      {"translit_start",         tok_translit_start,         0},
-      {"translit_ignore",        tok_translit_ignore,        0},
-      {""},
-      {"translit_end",           tok_translit_end,           0},
-      {""}, {""}, {""},
-      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
-      {""},
-      {"name_fmt",               tok_name_fmt,               0},
       {""},
-      {"blank",                  tok_blank,                  0},
-      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
-      {"name_mr",                tok_name_mr,                0},
-      {"revision",               tok_revision,               0},
-      {"lang_name",              tok_lang_name,              0},
+      {"copy",                   tok_copy,                   0},
       {""}, {""}, {""},
-      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+      {"decimal_point",          tok_decimal_point,          0},
       {""},
-      {"alt_digits",             tok_alt_digits,             0},
-      {""}, {""}, {""},
-      {"p_sep_by_space",         tok_p_sep_by_space,         0},
-      {""}, {""}, {""},
+      {"upper",                  tok_upper,                  0},
+      {""}, {""},
       {"category",               tok_category,               0},
       {""},
-      {"nostr",                  tok_nostr,                  0},
+      {"conversion_rate",        tok_conversion_rate,        0},
+      {""}, {""}, {""}, {""},
+      {"lower",                  tok_lower,                  0},
       {""},
-      {"lang_ab",                tok_lang_ab,                0},
-      {"lang_lib",               tok_lang_lib,               0},
+      {"collating-element",      tok_collating_element,      0},
+      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
       {""},
-      {"lower",                  tok_lower,                  0},
+      {"title",                  tok_title,                  0},
       {""}, {""},
+      {"timezone",               tok_timezone,               0},
+      {""},
+      {"digit",                  tok_digit,                  0},
+      {""}, {""}, {""}, {""},
+      {"postal_fmt",             tok_postal_fmt,             0},
+      {""},
+      {"d_t_fmt",                tok_d_t_fmt,                0},
       {"position",               tok_position,               0},
-      {""}, {""},
+      {"p_sep_by_space",         tok_p_sep_by_space,         0},
+      {"nostr",                  tok_nostr,                  0},
       {"noexpr",                 tok_noexpr,                 0},
-      {""}, {""}, {""},
-      {"abmon",                  tok_abmon,                  0},
-      {""}, {""},
-      {"map",                    tok_map,                    0},
-      {""}, {""}, {""},
-      {"d_t_fmt",                tok_d_t_fmt,                0},
+      {""},
+      {"charconv",               tok_charconv,               0},
+      {""},
+      {"width",                  tok_width,                  0},
+      {"country_car",            tok_country_car,            0},
+      {"comment_char",           tok_comment_char,           0},
       {""}, {""}, {""}, {""},
-      {"name_ms",                tok_name_ms,                0},
-      {"name_mrs",               tok_name_mrs,               0},
+      {"lang_ab",                tok_lang_ab,                0},
+      {"lang_lib",               tok_lang_lib,               0},
+      {"lang_name",              tok_lang_name,              0},
       {""}, {""}, {""}, {""},
-      {"decimal_point",          tok_decimal_point,          0},
-      {""}, {""},
-      {"escape_char",            tok_escape_char,            0},
-      {"forward",                tok_forward,                0},
-      {""},
       {"elif",                   tok_elif,                   0},
       {""},
-      {"script",                 tok_script,                 0},
-      {"contact",                tok_contact,                0},
+      {"xdigit",                 tok_xdigit,                 0},
+      {""}, {""}, {""},
+      {"space",                  tok_space,                  0},
       {""},
-      {"copy",                   tok_copy,                   0},
+      {"address",                tok_address,                0},
+      {""}, {""}, {""}, {""}, {""},
+      {"name_fmt",               tok_name_fmt,               0},
       {""},
-      {"country_ab3",            tok_country_ab3,            0},
+      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
       {""},
-      {"name_gen",               tok_name_gen,               0},
-      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+      {"name_mr",                tok_name_mr,                0},
       {""},
-      {"country_ab2",            tok_country_ab2,            0},
+      {"from",                   tok_from,                   0},
       {""},
-      {"negative_sign",          tok_negative_sign,          0},
-      {""}, {""}, {""}, {""},
-      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
+      {"escape_char",            tok_escape_char,            0},
+      {"duo_valid_to",           tok_duo_valid_to,           0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+      {""},
+      {"reorder-sections-after", tok_reorder_sections_after, 0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"territory",              tok_territory,              0},
       {""}, {""},
+      {"country_name",           tok_country_name,           0},
+      {"language",               tok_language,               0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
       {"tel_int_fmt",            tok_tel_int_fmt,            0},
-      {"country_post",           tok_country_post,           0},
+      {"mon_grouping",           tok_mon_grouping,           0},
       {"positive_sign",          tok_positive_sign,          0},
-      {""}, {""},
-      {"height",                 tok_height,                 0},
-      {"collating-element",      tok_collating_element,      0},
-      {"first_weekday",          tok_first_weekday,          0},
-      {""}, {""}, {""}, {""},
-      {"first_workday",          tok_first_workday,          0},
       {""},
-      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
-      {"p_sign_posn",            tok_p_sign_posn,            0},
-      {""}, {""},
-      {"name_miss",              tok_name_miss,              0},
+      {"abmon",                  tok_abmon,                  0},
+      {"measurement",            tok_measurement,            0},
       {""}, {""}, {""},
-      {"thousands_sep",          tok_thousands_sep,          0},
-      {""},
-      {"graph",                  tok_graph,                  0},
-      {""}, {""},
-      {"audience",               tok_audience,               0},
+      {"coll_weight_max",        tok_coll_weight_max,        0},
+      {"collating-symbol",       tok_collating_symbol,       0},
+      {""}, {""}, {""}, {""},
+      {"script",                 tok_script,                 0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"cal_direction",          tok_cal_direction,          0},
+      {""}, {""}, {""}, {""},
+      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
+      {""}, {""}, {""}, {""},
+      {"mon",                    tok_mon,                    0},
+      {"translit_start",         tok_translit_start,         0},
+      {"translit_ignore",        tok_translit_ignore,        0},
       {""},
-      {"postal_fmt",             tok_postal_fmt,             0},
-      {"source",                 tok_source,                 0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"punct",                  tok_punct,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"upper",                  tok_upper,                  0},
+      {"translit_end",           tok_translit_end,           0},
+      {"first_weekday",          tok_first_weekday,          0},
       {""}, {""},
-      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
-      {""},
-      {"conversion_rate",        tok_conversion_rate,        0},
-      {""},
-      {"country_name",           tok_country_name,           0},
+      {"p_sign_posn",            tok_p_sign_posn,            0},
       {""},
-      {"from",                   tok_from,                   0},
-      {"coll_weight_max",        tok_coll_weight_max,        0},
+      {"first_workday",          tok_first_workday,          0},
+      {"n_sep_by_space",         tok_n_sep_by_space,         0},
       {""},
-      {"mon_grouping",           tok_mon_grouping,           0},
-      {""}, {""},
-      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
-      {"application",            tok_application,            0},
-      {""}, {""},
-      {"section-symbol",         tok_section_symbol,         0},
-      {"int_prefix",             tok_int_prefix,             0},
-      {"n_sign_posn",            tok_n_sign_posn,            0},
+      {"source",                 tok_source,                 0},
+      {"mon_decimal_point",      tok_mon_decimal_point,      0},
+      {"symbol-equivalence",     tok_symbol_equivalence,     0},
       {""},
-      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
-      {""}, {""}, {""}, {""},
-      {"mon",                    tok_mon,                    0},
-      {""}, {""},
-      {"collating-symbol",       tok_collating_symbol,       0},
-      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
-      {""}, {""},
       {"endif",                  tok_endif,                  0},
+      {""}, {""}, {""},
+      {"duo_valid_from",         tok_duo_valid_from,         0},
+      {"default_missing",        tok_default_missing,        0},
+      {""}, {""},
+      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
       {""},
-      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
-      {"p_cs_precedes",          tok_p_cs_precedes,          0},
+      {"alt_digits",             tok_alt_digits,             0},
       {""},
-      {"class",                  tok_class,                  0},
-      {""}, {""}, {""}, {""},
-      {"email",                  tok_email,                  0},
-      {""}, {""}, {""}, {""},
-      {"width",                  tok_width,                  0},
-      {""}, {""},
-      {"language",               tok_language,               0},
+      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
       {""}, {""},
-      {"frac_digits",            tok_frac_digits,            0},
+      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
+      {""}, {""}, {""},
+      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+      {""}, {""}, {""},
+      {"outdigit",               tok_outdigit,               0},
       {""}, {""}, {""}, {""},
-      {"country_car",            tok_country_car,            0},
-      {"comment_char",           tok_comment_char,           0},
+      {"revision",               tok_revision,               0},
       {""}, {""}, {""}, {""},
-      {"duo_valid_to",           tok_duo_valid_to,           0},
-      {"cal_direction",          tok_cal_direction,          0},
-      {""},
-      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
+      {"name_gen",               tok_name_gen,               0},
       {""},
-      {"int_select",             tok_int_select,             0},
-      {""}, {""}, {""}, {""},
-      {"cntrl",                  tok_cntrl,                  0},
+      {"email",                  tok_email,                  0},
       {""},
-      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
-      {""}, {""},
-      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
+      {"uno_valid_to",           tok_uno_valid_to,           0},
+      {"negative_sign",          tok_negative_sign,          0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"n_cs_precedes",          tok_n_cs_precedes,          0},
-      {""}, {""}, {""},
+      {"alnum",                  tok_alnum,                  0},
+      {""}, {""}, {""}, {""}, {""},
+      {"country_num",            tok_country_num,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"am_pm",                  tok_am_pm,                  0},
+      {""},
+      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"currency_symbol",        tok_currency_symbol,        0},
+      {""}, {""}, {""}, {""}, {""}, {""},
       {"country_isbn",           tok_country_isbn,           0},
       {""}, {""}, {""}, {""},
-      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
-      {"charconv",               tok_charconv,               0},
-      {""}, {""}, {""},
-      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"alnum",                  tok_alnum,                  0},
+      {"name_ms",                tok_name_ms,                0},
+      {"name_mrs",               tok_name_mrs,               0},
       {""}, {""}, {""}, {""},
-      {"int_frac_digits",        tok_int_frac_digits,        0},
+      {"thousands_sep",          tok_thousands_sep,          0},
       {""},
-      {"mon_decimal_point",      tok_mon_decimal_point,      0},
-      {""}, {""}, {""},
-      {"measurement",            tok_measurement,            0},
-      {"uno_valid_to",           tok_uno_valid_to,           0},
-      {"outdigit",               tok_outdigit,               0},
-      {""}, {""}, {""},
+      {"cntrl",                  tok_cntrl,                  0},
+      {""}, {""}, {""}, {""}, {""},
+      {"n_sign_posn",            tok_n_sign_posn,            0},
       {"include",                tok_include,                0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
+      {""}, {""},
+      {"ifdef",                  tok_ifdef,                  0},
+      {""},
+      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
       {""}, {""}, {""}, {""}, {""},
-      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
+      {"p_cs_precedes",          tok_p_cs_precedes,          0},
+      {"uno_valid_from",         tok_uno_valid_from,         0},
+      {"undef",                  tok_undef,                  0},
       {""}, {""},
-      {"duo_valid_from",         tok_duo_valid_from,         0},
-      {"default_missing",        tok_default_missing,        0},
-      {"country_num",            tok_country_num,            0},
-      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
+      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
+      {"lang_term",              tok_lang_term,              0},
       {""}, {""},
-      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
       {""},
-      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
-      {""}, {""},
-      {"ifdef",                  tok_ifdef,                  0},
-      {""}, {""}, {""},
       {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
+      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"application",            tok_application,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"lang_term",              tok_lang_term,              0},
+      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_prefix",             tok_int_prefix,             0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""},
-      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
-      {""}, {""}, {""}, {""},
-      {"charclass",              tok_charclass,              0},
-      {"am_pm",                  tok_am_pm,                  0},
-      {""}, {""}, {""}, {""},
       {"duo_frac_digits",        tok_duo_frac_digits,        0},
       {""}, {""}, {""}, {""}, {""},
-      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
+      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"frac_digits",            tok_frac_digits,            0},
+      {""}, {""},
+      {"charclass",              tok_charclass,              0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""},
-      {"uno_valid_from",         tok_uno_valid_from,         0},
-      {""}, {""}, {""}, {""},
+      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
+      {""}, {""},
+      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+      {""}, {""},
+      {"n_cs_precedes",          tok_n_cs_precedes,          0},
+      {""},
+      {"int_select",             tok_int_select,             0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
-      {""}, {""}, {""}, {""}, {""},
-      {"currency_symbol",        tok_currency_symbol,        0},
+      {"class",                  tok_class,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
       {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
+      {""}, {""}, {""},
+      {"name_miss",              tok_name_miss,              0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"undef",                  tok_undef,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0}
+      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_frac_digits",        tok_int_frac_digits,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"section-symbol",         tok_section_symbol,         0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/locale/programs/locfile-token.h b/locale/programs/locfile-token.h
index 59648f1eb3..04d04b6f26 100644
--- a/locale/programs/locfile-token.h
+++ b/locale/programs/locfile-token.h
@@ -186,6 +186,7 @@ enum token_t
   tok_first_workday,
   tok_cal_direction,
   tok_timezone,
+  tok_date_fmt,
   tok_lc_messages,
   tok_yesexpr,
   tok_noexpr,
diff --git a/locale/setlocale.c b/locale/setlocale.c
index c3e5066c35..08f2a034d1 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -245,7 +245,7 @@ setlocale (int category, const char *locale)
 			   &locale_path, &locale_path_len) != 0)
       return NULL;
 
-  if (__argz_add_sep (&locale_path, &locale_path_len, LOCALE_PATH, ':') != 0)
+  if (__argz_add_sep (&locale_path, &locale_path_len, LOCALEDIR, ':') != 0)
     return NULL;
 
   if (category == LC_ALL)
diff --git a/locale/tst-C-locale.c b/locale/tst-C-locale.c
new file mode 100644
index 0000000000..dc6a162e8b
--- /dev/null
+++ b/locale/tst-C-locale.c
@@ -0,0 +1,231 @@
+/* Tests of X and POSIX locale contents.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <langinfo.h>
+#include <limits.h>
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+
+
+static int
+run_test (const char *locname)
+{
+  struct lconv *lc;
+  const char *str;
+  const wchar_t *wstr;
+  int result = 0;
+
+  /* ISO C stuff.  */
+  lc = localeconv ();
+  if (lc == NULL)
+    {
+      printf ("localeconv failed for locale %s\n", locname);
+      result = 1;
+    }
+  else
+    {
+#define STRTEST(name, exp) \
+      do								      \
+	if (strcmp (lc->name, exp) != 0)				      \
+	  {								      \
+	    printf (#name " in locale %s wrong (is \"%s\", should be \"%s\")\n",\
+		    locname, lc->name, exp);				      \
+	    result = 1;							      \
+	  }								      \
+      while (0)
+      STRTEST (decimal_point, ".");
+      STRTEST (thousands_sep, "");
+      STRTEST (grouping, "");
+      STRTEST (mon_decimal_point, "");
+      STRTEST (mon_thousands_sep, "");
+      STRTEST (mon_grouping, "");
+      STRTEST (positive_sign, "");
+      STRTEST (negative_sign, "");
+      STRTEST (currency_symbol, "");
+      STRTEST (int_curr_symbol, "");
+
+#define CHARTEST(name, exp) \
+      do								      \
+	if (lc->name != exp)						      \
+	  {								      \
+	    printf (#name " in locale %s wrong (is %d, should be %d)\n",      \
+		    locname, lc->name, CHAR_MAX);			      \
+	    result = 1;							      \
+	  }								      \
+      while (0)
+      CHARTEST (frac_digits, CHAR_MAX);
+      CHARTEST (p_cs_precedes, CHAR_MAX);
+      CHARTEST (n_cs_precedes, CHAR_MAX);
+      CHARTEST (p_sep_by_space, CHAR_MAX);
+      CHARTEST (n_sep_by_space, CHAR_MAX);
+      CHARTEST (p_sign_posn, CHAR_MAX);
+      CHARTEST (n_sign_posn, CHAR_MAX);
+      CHARTEST (int_frac_digits, CHAR_MAX);
+      CHARTEST (int_p_cs_precedes, CHAR_MAX);
+      CHARTEST (int_n_cs_precedes, CHAR_MAX);
+      CHARTEST (int_p_sep_by_space, CHAR_MAX);
+      CHARTEST (int_n_sep_by_space, CHAR_MAX);
+      CHARTEST (int_p_sign_posn, CHAR_MAX);
+      CHARTEST (int_n_sign_posn, CHAR_MAX);
+    }
+
+#undef STRTEST
+#define STRTEST(name, exp) \
+  str = nl_langinfo (name);						      \
+  if (strcmp (str, exp) != 0)						      \
+    {									      \
+      printf ("nl_langinfo(" #name ") int locale %s wrong "		      \
+	      "(is \"%s\", should be \"%s\")\n", locname, str, exp);	      \
+      result = 1;							      \
+    }
+#define WSTRTEST(name, exp) \
+  wstr = (wchar_t *) nl_langinfo (name);				      \
+  if (wcscmp (wstr, exp) != 0)						      \
+    {									      \
+      printf ("nl_langinfo(" #name ") int locale %s wrong "		      \
+	      "(is \"%S\", should be \"%S\")\n", locname, wstr, exp);	      \
+      result = 1;							      \
+    }
+
+  /* Unix stuff.  */
+  STRTEST (ABDAY_1, "Sun");
+  STRTEST (ABDAY_2, "Mon");
+  STRTEST (ABDAY_3, "Tue");
+  STRTEST (ABDAY_4, "Wed");
+  STRTEST (ABDAY_5, "Thu");
+  STRTEST (ABDAY_6, "Fri");
+  STRTEST (ABDAY_7, "Sat");
+  STRTEST (DAY_1, "Sunday");
+  STRTEST (DAY_2, "Monday");
+  STRTEST (DAY_3, "Tuesday");
+  STRTEST (DAY_4, "Wednesday");
+  STRTEST (DAY_5, "Thursday");
+  STRTEST (DAY_6, "Friday");
+  STRTEST (DAY_7, "Saturday");
+  STRTEST (ABMON_1, "Jan");
+  STRTEST (ABMON_2, "Feb");
+  STRTEST (ABMON_3, "Mar");
+  STRTEST (ABMON_4, "Apr");
+  STRTEST (ABMON_5, "May");
+  STRTEST (ABMON_6, "Jun");
+  STRTEST (ABMON_7, "Jul");
+  STRTEST (ABMON_8, "Aug");
+  STRTEST (ABMON_9, "Sep");
+  STRTEST (ABMON_10, "Oct");
+  STRTEST (ABMON_11, "Nov");
+  STRTEST (ABMON_12, "Dec");
+  STRTEST (MON_1, "January");
+  STRTEST (MON_2, "February");
+  STRTEST (MON_3, "March");
+  STRTEST (MON_4, "April");
+  STRTEST (MON_5, "May");
+  STRTEST (MON_6, "June");
+  STRTEST (MON_7, "July");
+  STRTEST (MON_8, "August");
+  STRTEST (MON_9, "September");
+  STRTEST (MON_10, "October");
+  STRTEST (MON_11, "November");
+  STRTEST (MON_12, "December");
+  STRTEST (AM_STR, "AM");
+  STRTEST (PM_STR, "PM");
+  STRTEST (D_T_FMT, "%a %b %e %H:%M:%S %Y");
+  STRTEST (D_FMT, "%m/%d/%y");
+  STRTEST (T_FMT, "%H:%M:%S");
+  STRTEST (T_FMT_AMPM, "%I:%M:%S %p");
+
+  /* Extensions.  */
+  WSTRTEST (_NL_WABDAY_1, L"Sun");
+  WSTRTEST (_NL_WABDAY_2, L"Mon");
+  WSTRTEST (_NL_WABDAY_3, L"Tue");
+  WSTRTEST (_NL_WABDAY_4, L"Wed");
+  WSTRTEST (_NL_WABDAY_5, L"Thu");
+  WSTRTEST (_NL_WABDAY_6, L"Fri");
+  WSTRTEST (_NL_WABDAY_7, L"Sat");
+  WSTRTEST (_NL_WDAY_1, L"Sunday");
+  WSTRTEST (_NL_WDAY_2, L"Monday");
+  WSTRTEST (_NL_WDAY_3, L"Tuesday");
+  WSTRTEST (_NL_WDAY_4, L"Wednesday");
+  WSTRTEST (_NL_WDAY_5, L"Thursday");
+  WSTRTEST (_NL_WDAY_6, L"Friday");
+  WSTRTEST (_NL_WDAY_7, L"Saturday");
+  WSTRTEST (_NL_WABMON_1, L"Jan");
+  WSTRTEST (_NL_WABMON_2, L"Feb");
+  WSTRTEST (_NL_WABMON_3, L"Mar");
+  WSTRTEST (_NL_WABMON_4, L"Apr");
+  WSTRTEST (_NL_WABMON_5, L"May");
+  WSTRTEST (_NL_WABMON_6, L"Jun");
+  WSTRTEST (_NL_WABMON_7, L"Jul");
+  WSTRTEST (_NL_WABMON_8, L"Aug");
+  WSTRTEST (_NL_WABMON_9, L"Sep");
+  WSTRTEST (_NL_WABMON_10, L"Oct");
+  WSTRTEST (_NL_WABMON_11, L"Nov");
+  WSTRTEST (_NL_WABMON_12, L"Dec");
+  WSTRTEST (_NL_WMON_1, L"January");
+  WSTRTEST (_NL_WMON_2, L"February");
+  WSTRTEST (_NL_WMON_3, L"March");
+  WSTRTEST (_NL_WMON_4, L"April");
+  WSTRTEST (_NL_WMON_5, L"May");
+  WSTRTEST (_NL_WMON_6, L"June");
+  WSTRTEST (_NL_WMON_7, L"July");
+  WSTRTEST (_NL_WMON_8, L"August");
+  WSTRTEST (_NL_WMON_9, L"September");
+  WSTRTEST (_NL_WMON_10, L"October");
+  WSTRTEST (_NL_WMON_11, L"November");
+  WSTRTEST (_NL_WMON_12, L"December");
+  WSTRTEST (_NL_WAM_STR, L"AM");
+  WSTRTEST (_NL_WPM_STR, L"PM");
+  WSTRTEST (_NL_WD_T_FMT, L"%a %b %e %H:%M:%S %Y");
+  WSTRTEST (_NL_WD_FMT, L"%m/%d/%y");
+  WSTRTEST (_NL_WT_FMT, L"%H:%M:%S");
+  WSTRTEST (_NL_WT_FMT_AMPM, L"%I:%M:%S %p");
+
+  STRTEST (_DATE_FMT, "%a %b %e %H:%M:%S %Z %Y");
+  WSTRTEST (_NL_W_DATE_FMT, L"%a %b %e %H:%M:%S %Z %Y");
+
+  return result;
+}
+
+
+int
+main (void)
+{
+  int result;
+
+  /* First use the name "C".  */
+  if (setlocale (LC_ALL, "C") == NULL)
+    {
+      puts ("cannot set C locale");
+      result = 1;
+    }
+  else
+    result = run_test ("C");
+
+  /* Then the name "POSIX".  */
+  if (setlocale (LC_ALL, "POSIX") == NULL)
+    {
+      puts ("cannot set POSIX locale");
+      result = 1;
+    }
+  else
+    result |= run_test ("POSIX");
+
+  return result;
+}
diff --git a/localedata/locales/POSIX b/localedata/locales/POSIX
index 9f8f0b221f..00c5b4a0d6 100644
--- a/localedata/locales/POSIX
+++ b/localedata/locales/POSIX
@@ -317,6 +317,8 @@ t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
 t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>\
 <U0020><U0025><U0070>"
 #
+# Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
diff --git a/localedata/locales/af_ZA b/localedata/locales/af_ZA
index fd101f58d9..7c1b184e07 100644
--- a/localedata/locales/af_ZA
+++ b/localedata/locales/af_ZA
@@ -2221,6 +2221,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "<U0056><U004D>";"<U004E><U004D>"
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/ar_AE b/localedata/locales/ar_AE
index 4852f14866..6530740b54 100644
--- a/localedata/locales/ar_AE
+++ b/localedata/locales/ar_AE
@@ -137,6 +137,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_BH b/localedata/locales/ar_BH
index 7f69f4a84a..66db36d69d 100644
--- a/localedata/locales/ar_BH
+++ b/localedata/locales/ar_BH
@@ -141,6 +141,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_DZ b/localedata/locales/ar_DZ
index 81a8345f13..4096112e41 100644
--- a/localedata/locales/ar_DZ
+++ b/localedata/locales/ar_DZ
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_EG b/localedata/locales/ar_EG
index 993044cc41..852af9d3bf 100644
--- a/localedata/locales/ar_EG
+++ b/localedata/locales/ar_EG
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_IQ b/localedata/locales/ar_IQ
index b88fb5be16..6b1cf15c53 100644
--- a/localedata/locales/ar_IQ
+++ b/localedata/locales/ar_IQ
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_JO b/localedata/locales/ar_JO
index edb10fb82b..e8fcf2441d 100644
--- a/localedata/locales/ar_JO
+++ b/localedata/locales/ar_JO
@@ -158,6 +158,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_KW b/localedata/locales/ar_KW
index c83d81a194..cc28a081b1 100644
--- a/localedata/locales/ar_KW
+++ b/localedata/locales/ar_KW
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_LB b/localedata/locales/ar_LB
index c250c4d126..69f2f9d0ed 100644
--- a/localedata/locales/ar_LB
+++ b/localedata/locales/ar_LB
@@ -157,6 +157,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_LY b/localedata/locales/ar_LY
index 0da5fd21d9..3c7dc0f94a 100644
--- a/localedata/locales/ar_LY
+++ b/localedata/locales/ar_LY
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_MA b/localedata/locales/ar_MA
index 112cfd9843..93da0fdedf 100644
--- a/localedata/locales/ar_MA
+++ b/localedata/locales/ar_MA
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_OM b/localedata/locales/ar_OM
index ee774fa032..ee42dde0e0 100644
--- a/localedata/locales/ar_OM
+++ b/localedata/locales/ar_OM
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_QA b/localedata/locales/ar_QA
index 3320cbe5c6..9795dda6b3 100644
--- a/localedata/locales/ar_QA
+++ b/localedata/locales/ar_QA
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_SA b/localedata/locales/ar_SA
index b5f7eb47c4..340c652cdb 100644
--- a/localedata/locales/ar_SA
+++ b/localedata/locales/ar_SA
@@ -535,6 +535,9 @@ abmon	"<U004A><U0061><U006E>"; /
 	"<U0044><U0065><U0063>"
 am_pm	"";""
 era_d_fmt	""
+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
 
 
diff --git a/localedata/locales/ar_SD b/localedata/locales/ar_SD
index fef8d97d84..beab55ab85 100644
--- a/localedata/locales/ar_SD
+++ b/localedata/locales/ar_SD
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_SY b/localedata/locales/ar_SY
index 38d9abc94e..6e39f0b6a8 100644
--- a/localedata/locales/ar_SY
+++ b/localedata/locales/ar_SY
@@ -157,6 +157,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_TN b/localedata/locales/ar_TN
index 860596bfe3..d6bad1ca9f 100644
--- a/localedata/locales/ar_TN
+++ b/localedata/locales/ar_TN
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/ar_YE b/localedata/locales/ar_YE
index e267ff1351..c9c845f86a 100644
--- a/localedata/locales/ar_YE
+++ b/localedata/locales/ar_YE
@@ -140,6 +140,10 @@ t_fmt       "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 t_fmt_ampm  "<U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053><U0020><U0025><U0070>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/be_BY b/localedata/locales/be_BY
index 954d7e25bc..1ae3257625 100644
--- a/localedata/locales/be_BY
+++ b/localedata/locales/be_BY
@@ -3108,6 +3108,9 @@ d_fmt     "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt     "<U0025><U0054>"
 am_pm     "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/bg_BG b/localedata/locales/bg_BG
index 1c53a1a3cd..a2690c13bd 100644
--- a/localedata/locales/bg_BG
+++ b/localedata/locales/bg_BG
@@ -3131,6 +3131,9 @@ d_fmt     "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt     "<U0025><U0048><U003A><U0025><U004D>"
 am_pm     "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES
index 4535a24c18..3a25830d37 100644
--- a/localedata/locales/ca_ES
+++ b/localedata/locales/ca_ES
@@ -2178,6 +2178,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
index 18f3a0facf..19f2687f0c 100644
--- a/localedata/locales/cs_CZ
+++ b/localedata/locales/cs_CZ
@@ -2446,6 +2446,10 @@ t_fmt_ampm	"<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>"
 
 am_pm   	"";""
 
+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_PAPER
diff --git a/localedata/locales/da_DK b/localedata/locales/da_DK
index be609c0a06..43a418f604 100644
--- a/localedata/locales/da_DK
+++ b/localedata/locales/da_DK
@@ -2196,6 +2196,9 @@ d_fmt       "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/de_AT b/localedata/locales/de_AT
index c6a0d69adc..5527aeb470 100644
--- a/localedata/locales/de_AT
+++ b/localedata/locales/de_AT
@@ -120,6 +120,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/de_BE b/localedata/locales/de_BE
index c125df0dcb..5603a80254 100644
--- a/localedata/locales/de_BE
+++ b/localedata/locales/de_BE
@@ -116,6 +116,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/de_CH b/localedata/locales/de_CH
index b463431f34..67f2c96de3 100644
--- a/localedata/locales/de_CH
+++ b/localedata/locales/de_CH
@@ -116,6 +116,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/de_DE b/localedata/locales/de_DE
index f0788a0db5..fb6487eeb9 100644
--- a/localedata/locales/de_DE
+++ b/localedata/locales/de_DE
@@ -110,6 +110,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 %	"%T"
 t_fmt   "<U0025><U0054>"
 t_fmt_ampm ""
+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
diff --git a/localedata/locales/de_LU b/localedata/locales/de_LU
index 745770a970..800fef3acb 100644
--- a/localedata/locales/de_LU
+++ b/localedata/locales/de_LU
@@ -116,6 +116,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/el_GR b/localedata/locales/el_GR
index 402ca6a2ad..e6f6c42f35 100644
--- a/localedata/locales/el_GR
+++ b/localedata/locales/el_GR
@@ -3144,6 +3144,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/en_AU b/localedata/locales/en_AU
index 565bfc4d2f..3385fb00a4 100644
--- a/localedata/locales/en_AU
+++ b/localedata/locales/en_AU
@@ -113,6 +113,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/en_CA b/localedata/locales/en_CA
index 1f9c3da404..bd845c28ba 100644
--- a/localedata/locales/en_CA
+++ b/localedata/locales/en_CA
@@ -2176,6 +2176,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0072>"
 am_pm       "<U0041><U004D>";"<U0050><U004D>"
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+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
diff --git a/localedata/locales/en_DK b/localedata/locales/en_DK
index 8ffbc8ceea..0efe331503 100644
--- a/localedata/locales/en_DK
+++ b/localedata/locales/en_DK
@@ -119,6 +119,9 @@ d_fmt    "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt    "<U0025><U0054>"
 am_pm    "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB
index be9635ffd9..1ade8ce1f8 100644
--- a/localedata/locales/en_GB
+++ b/localedata/locales/en_GB
@@ -114,6 +114,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/en_IE b/localedata/locales/en_IE
index 1edff35041..94ac73f066 100644
--- a/localedata/locales/en_IE
+++ b/localedata/locales/en_IE
@@ -115,6 +115,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/en_NZ b/localedata/locales/en_NZ
index 26771220ea..f836bc3954 100644
--- a/localedata/locales/en_NZ
+++ b/localedata/locales/en_NZ
@@ -113,6 +113,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/en_US b/localedata/locales/en_US
index 7548631162..13a19dba21 100644
--- a/localedata/locales/en_US
+++ b/localedata/locales/en_US
@@ -119,6 +119,11 @@ t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 % Strings for AM/PM
 %
 am_pm	"<U0041><U004D>";"<U0050><U004D>"
+%
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
diff --git a/localedata/locales/en_ZA b/localedata/locales/en_ZA
index 51c8ad2613..abcd738725 100644
--- a/localedata/locales/en_ZA
+++ b/localedata/locales/en_ZA
@@ -110,6 +110,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/es_AR b/localedata/locales/es_AR
index f418633713..92f9d2de27 100644
--- a/localedata/locales/es_AR
+++ b/localedata/locales/es_AR
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_BO b/localedata/locales/es_BO
index 573c57c6de..92dc84c99f 100644
--- a/localedata/locales/es_BO
+++ b/localedata/locales/es_BO
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_CL b/localedata/locales/es_CL
index 6dd8194546..10873c424e 100644
--- a/localedata/locales/es_CL
+++ b/localedata/locales/es_CL
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_CO b/localedata/locales/es_CO
index b0e743455e..b6c524881c 100644
--- a/localedata/locales/es_CO
+++ b/localedata/locales/es_CO
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_CR b/localedata/locales/es_CR
index 08f0020a4d..9809b38473 100644
--- a/localedata/locales/es_CR
+++ b/localedata/locales/es_CR
@@ -110,6 +110,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_DO b/localedata/locales/es_DO
index 0b16d4e2fb..d73184a362 100644
--- a/localedata/locales/es_DO
+++ b/localedata/locales/es_DO
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_EC b/localedata/locales/es_EC
index 8e95797812..8c9cb53511 100644
--- a/localedata/locales/es_EC
+++ b/localedata/locales/es_EC
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_ES b/localedata/locales/es_ES
index 8e48828025..366c0a4581 100644
--- a/localedata/locales/es_ES
+++ b/localedata/locales/es_ES
@@ -2180,6 +2180,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_GT b/localedata/locales/es_GT
index 2abec49a7d..1d4c7991da 100644
--- a/localedata/locales/es_GT
+++ b/localedata/locales/es_GT
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_HN b/localedata/locales/es_HN
index a1eacaa893..6e8cf8e7c4 100644
--- a/localedata/locales/es_HN
+++ b/localedata/locales/es_HN
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_MX b/localedata/locales/es_MX
index 8f2df373b9..d1064ced69 100644
--- a/localedata/locales/es_MX
+++ b/localedata/locales/es_MX
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_NI b/localedata/locales/es_NI
index ba9cf7aec8..11ca382814 100644
--- a/localedata/locales/es_NI
+++ b/localedata/locales/es_NI
@@ -110,6 +110,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_PA b/localedata/locales/es_PA
index 69130ed74c..40de3d341f 100644
--- a/localedata/locales/es_PA
+++ b/localedata/locales/es_PA
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_PE b/localedata/locales/es_PE
index 70f5fa72bd..fabf9f395a 100644
--- a/localedata/locales/es_PE
+++ b/localedata/locales/es_PE
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_PR b/localedata/locales/es_PR
index a3e2d8e00d..5b53f65926 100644
--- a/localedata/locales/es_PR
+++ b/localedata/locales/es_PR
@@ -110,6 +110,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_PY b/localedata/locales/es_PY
index 0ce28d5b21..f8929b9db6 100644
--- a/localedata/locales/es_PY
+++ b/localedata/locales/es_PY
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_SV b/localedata/locales/es_SV
index 9b7214106c..47edbdc7bf 100644
--- a/localedata/locales/es_SV
+++ b/localedata/locales/es_SV
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_US b/localedata/locales/es_US
index 6e99da93a3..d6341c93f4 100644
--- a/localedata/locales/es_US
+++ b/localedata/locales/es_US
@@ -2194,6 +2194,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_UY b/localedata/locales/es_UY
index b93ada332e..fe2bc683f8 100644
--- a/localedata/locales/es_UY
+++ b/localedata/locales/es_UY
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/es_VE b/localedata/locales/es_VE
index 8cdc4d264b..f9156a3d7d 100644
--- a/localedata/locales/es_VE
+++ b/localedata/locales/es_VE
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE
index 7752e2e3d2..39c1288146 100644
--- a/localedata/locales/et_EE
+++ b/localedata/locales/et_EE
@@ -2189,6 +2189,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm    ""
+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
diff --git a/localedata/locales/eu_ES b/localedata/locales/eu_ES
index 0ee4d508fb..64b0b89ba3 100644
--- a/localedata/locales/eu_ES
+++ b/localedata/locales/eu_ES
@@ -125,6 +125,9 @@ d_fmt   "<U0025><U0061><U002C><U0020><U0025><U0059><U0065><U006B><U006F><U0020><
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/fa_IR b/localedata/locales/fa_IR
index 7a658f4e54..dde8a9688d 100644
--- a/localedata/locales/fa_IR
+++ b/localedata/locales/fa_IR
@@ -18,7 +18,7 @@ escape_char  /
 % Charset: UTF-8
 % Distribution and use is free, also
 % for commercial purposes.
- 
+
 LC_IDENTIFICATION
 title      "Persian locale for Iran"
 source     "The Persian Internet Project"
@@ -52,8 +52,8 @@ END LC_CTYPE
 
 LC_COLLATE
 copy "iso14651_t1"
-END LC_COLLATE 
- 
+END LC_COLLATE
+
 LC_MONETARY
 int_curr_symbol   "<U0049><U0052><U0052><U0020>"
 currency_symbol   "<U0631><U06CC><U0627><U0644>"
@@ -81,13 +81,13 @@ int_n_sep_by_space    1
 int_p_sign_posn       1
 int_n_sign_posn       1
 END LC_MONETARY
- 
+
 LC_NUMERIC
 decimal_point     "<U066B>"
 thousands_sep     "<U066C>"
 grouping          3
 END LC_NUMERIC
- 
+
 LC_TIME
 abday   "<U06CC><U002E>";"<U062F><U002E>";"<U0633><U002E>";/
         "<U0686><U002E>";"<U067E><U002E>";"<U062C><U002E>";/
@@ -125,13 +125,16 @@ d_fmt   "<U0025><U0059><U002F><U0025><U006D><U002F><U0025><U0064>"
 t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
 t_fmt_ampm    "<U202B><U0025><U0049><U003A><U0025><U004D><U003A><U0025>/
 <U0053><U0020><U0025><U0070><U202C>"
+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>"
 first_weekday 7
 first_workday 7
 cal_direction 3
 %week    7;19971206;4
 %time_zone "???"
 END LC_TIME
- 
+
 LC_MESSAGES
 yesexpr "<U005B><U0079><U0059><U0628><U0066><U005D><U002E><U002A>"
 noexpr  "<U005B><U006E><U004E><U062E><U0646><U006F><U005D><U002E><U002A>"
diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI
index 81884e5bfe..335eef8a1e 100644
--- a/localedata/locales/fi_FI
+++ b/localedata/locales/fi_FI
@@ -2184,6 +2184,9 @@ d_fmt    "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt    "<U0025><U0054>"
 am_pm    "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/fo_FO b/localedata/locales/fo_FO
index 23d457910c..c3208146c5 100644
--- a/localedata/locales/fo_FO
+++ b/localedata/locales/fo_FO
@@ -100,6 +100,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002D><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/fr_BE b/localedata/locales/fr_BE
index 9ac31a491b..a438c69981 100644
--- a/localedata/locales/fr_BE
+++ b/localedata/locales/fr_BE
@@ -118,6 +118,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/fr_CA b/localedata/locales/fr_CA
index 0fc2190eb7..71a5798acf 100644
--- a/localedata/locales/fr_CA
+++ b/localedata/locales/fr_CA
@@ -118,6 +118,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/fr_CH b/localedata/locales/fr_CH
index 95a29fff05..bd5384bfb1 100644
--- a/localedata/locales/fr_CH
+++ b/localedata/locales/fr_CH
@@ -104,6 +104,9 @@ d_fmt   "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/fr_FR b/localedata/locales/fr_FR
index be127073dc..579d348484 100644
--- a/localedata/locales/fr_FR
+++ b/localedata/locales/fr_FR
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/fr_LU b/localedata/locales/fr_LU
index 8b86ea5894..62f70a70a3 100644
--- a/localedata/locales/fr_LU
+++ b/localedata/locales/fr_LU
@@ -118,6 +118,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/ga_IE b/localedata/locales/ga_IE
index 7ba996c84a..bfb5be20f7 100644
--- a/localedata/locales/ga_IE
+++ b/localedata/locales/ga_IE
@@ -111,6 +111,9 @@ d_fmt       "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/gl_ES b/localedata/locales/gl_ES
index 09682b8a30..505ba786cb 100644
--- a/localedata/locales/gl_ES
+++ b/localedata/locales/gl_ES
@@ -119,6 +119,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/gv_GB b/localedata/locales/gv_GB
index 212944a0b7..1c108b1373 100644
--- a/localedata/locales/gv_GB
+++ b/localedata/locales/gv_GB
@@ -124,6 +124,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/he_IL b/localedata/locales/he_IL
index e46c006ef0..4ead30b3d9 100644
--- a/localedata/locales/he_IL
+++ b/localedata/locales/he_IL
@@ -112,6 +112,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
 am_pm   "<U0041><U004D>";"<U0050><U004D>"
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050>"
+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
diff --git a/localedata/locales/hi_IN b/localedata/locales/hi_IN
index bfd00ac5f5..ad4b7df4be 100644
--- a/localedata/locales/hi_IN
+++ b/localedata/locales/hi_IN
@@ -149,6 +149,9 @@ t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
 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
 
 
diff --git a/localedata/locales/hr_HR b/localedata/locales/hr_HR
index 9d8e5335d4..3ce8fefa04 100644
--- a/localedata/locales/hr_HR
+++ b/localedata/locales/hr_HR
@@ -2205,6 +2205,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/hu_HU b/localedata/locales/hu_HU
index 4adff1de63..944035330a 100644
--- a/localedata/locales/hu_HU
+++ b/localedata/locales/hu_HU
@@ -2282,6 +2282,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/i18n b/localedata/locales/i18n
index 977c58536e..20c8197e1d 100644
--- a/localedata/locales/i18n
+++ b/localedata/locales/i18n
@@ -1558,6 +1558,8 @@ d_fmt   "<U0025><U0046>"
 t_fmt   "<U0025><U0054>"
 t_fmt_ampm ""
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
diff --git a/localedata/locales/id_ID b/localedata/locales/id_ID
index a1b630c68b..87ce90e6f0 100644
--- a/localedata/locales/id_ID
+++ b/localedata/locales/id_ID
@@ -113,6 +113,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/is_IS b/localedata/locales/is_IS
index 61f50c6f2c..a62aa35f11 100644
--- a/localedata/locales/is_IS
+++ b/localedata/locales/is_IS
@@ -2219,6 +2219,9 @@ d_fmt   "<U0025><U0061><U0020><U0025><U0065><U002E><U0025><U0062><U0020><U0025><
 t_fmt   "<U0025><U0054>"
 am_pm   "<U0066><U0068>";"<U0065><U0068>"
 t_fmt_ampm ""
+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
diff --git a/localedata/locales/it_CH b/localedata/locales/it_CH
index fd68e23073..b063892308 100644
--- a/localedata/locales/it_CH
+++ b/localedata/locales/it_CH
@@ -97,6 +97,9 @@ d_fmt   "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/it_IT b/localedata/locales/it_IT
index 103e4b175c..7f035be536 100644
--- a/localedata/locales/it_IT
+++ b/localedata/locales/it_IT
@@ -118,6 +118,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/iw_IL b/localedata/locales/iw_IL
index 42c781ffed..683c696346 100644
--- a/localedata/locales/iw_IL
+++ b/localedata/locales/iw_IL
@@ -112,6 +112,9 @@ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
 am_pm   "<U0041><U004D>";"<U0050><U004D>"
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050>"
+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
diff --git a/localedata/locales/ja_JP b/localedata/locales/ja_JP
index 73ae29075b..94ed53473b 100644
--- a/localedata/locales/ja_JP
+++ b/localedata/locales/ja_JP
@@ -18640,6 +18640,11 @@ era_d_fmt	"<U0025><U0045><U0059><U0025><U006d><U6708><U0025><U0064><U65E5>"
 
 era_d_t_fmt	"<U0025><U0045><U0059><U0025><U006D><U6708><U0025><U0064><U65E5><U0020><U0025><U0048><U6642><U0025><U004D><U5206><U0025><U0053><U79D2>"
 
+% "%Y<NEN> %b %e<NICHI> %A %H:%M:%S %Z"
+date_fmt	"<U0025><U0059><U5E74><U0020><U0025><U0062><U0020><U0025>/
+<U0065><U65E5><U0020><U0025><U0041><U0020><U0025><U0048><U003A><U0025>/
+<U004D><U003A><U0025><U0053><U0020><U0025><U005A>"
+
 alt_digits	"<U3007>";"<U4E00>";"<U4E8C>";"<U4E09>";"<U56DB>";"<U4E94>";/
 		"<U516D>";"<U4E03>";"<U516B>";"<U4E5D>";"<U5341>";/
 		"<U5341><U4E00>";"<U5341><U4E8C>";"<U5341><U4E09>";/
diff --git a/localedata/locales/kl_GL b/localedata/locales/kl_GL
index ac28aba281..0b4711f517 100644
--- a/localedata/locales/kl_GL
+++ b/localedata/locales/kl_GL
@@ -101,6 +101,9 @@ d_fmt       "<U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/ko_KR b/localedata/locales/ko_KR
index 1b9ec128ce..2ad9d76b2c 100644
--- a/localedata/locales/ko_KR
+++ b/localedata/locales/ko_KR
@@ -11187,6 +11187,10 @@ t_fmt    "<U0025><U0048><UC2DC><U0020><U0025><U004D><UBD84><U0020><U0025><U0053>
 am_pm	"<UC624><UC804>";"<UC624><UD6C4>"
 t_fmt_ampm "<U0025><U0070><U0025><U0049><UC2DC><U0020><U0025><U004D><UBD84><U0025><U0053><UCD08>"
 
+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
 
 % NOTES on LC_MESSAGES
diff --git a/localedata/locales/kw_GB b/localedata/locales/kw_GB
index 4a271da2b0..e51379a2ad 100644
--- a/localedata/locales/kw_GB
+++ b/localedata/locales/kw_GB
@@ -116,6 +116,9 @@ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/lt_LT b/localedata/locales/lt_LT
index 9f88e78d55..fc2d6fb917 100644
--- a/localedata/locales/lt_LT
+++ b/localedata/locales/lt_LT
@@ -2184,6 +2184,9 @@ d_fmt     "<U0025><U0059><U002E><U0025><U006D><U002E><U0025><U0064>"
 t_fmt     "<U0025><U0054>"
 am_pm     "";""
 t_fmt_ampm ""
+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
diff --git a/localedata/locales/lv_LV b/localedata/locales/lv_LV
index db21f1df54..3c6cef07d7 100644
--- a/localedata/locales/lv_LV
+++ b/localedata/locales/lv_LV
@@ -2177,6 +2177,9 @@ d_fmt    "<U0025><U0059><U002E><U0025><U006D><U002E><U0025><U0064><U002E>"
 t_fmt    "<U0025><U0054>"
 am_pm    "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/mk_MK b/localedata/locales/mk_MK
index d32afa7625..0f420daba5 100644
--- a/localedata/locales/mk_MK
+++ b/localedata/locales/mk_MK
@@ -3052,6 +3052,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_MONETARY
diff --git a/localedata/locales/mr_IN b/localedata/locales/mr_IN
index 7e28ba6f89..f663f1ddf6 100644
--- a/localedata/locales/mr_IN
+++ b/localedata/locales/mr_IN
@@ -153,6 +153,10 @@ t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
 <U0020><U0025><U0070><U0020><U0025><U005A>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/mt_MT b/localedata/locales/mt_MT
index 2f94f1e2b7..6279471da7 100644
--- a/localedata/locales/mt_MT
+++ b/localedata/locales/mt_MT
@@ -147,6 +147,10 @@ t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
 <U0020><U0025><U0070><U0020><U0025><U005A>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/nl_BE b/localedata/locales/nl_BE
index b01d21744c..e826a5cfaf 100644
--- a/localedata/locales/nl_BE
+++ b/localedata/locales/nl_BE
@@ -101,6 +101,9 @@ d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/nl_NL b/localedata/locales/nl_NL
index 4975a551ac..1c5236b496 100644
--- a/localedata/locales/nl_NL
+++ b/localedata/locales/nl_NL
@@ -117,6 +117,9 @@ d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0079>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/nn_NO b/localedata/locales/nn_NO
index 216f17768e..ab4be1c926 100644
--- a/localedata/locales/nn_NO
+++ b/localedata/locales/nn_NO
@@ -140,6 +140,10 @@ t_fmt       "<U006B><U006C><U0020><U0025><U0048><U002E><U0025><U004D>/
 % Appropriate 12 h time representation (%r)
 t_fmt_ampm  ""
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/no_NO b/localedata/locales/no_NO
index a38c83898a..cbf04e82b3 100644
--- a/localedata/locales/no_NO
+++ b/localedata/locales/no_NO
@@ -2185,6 +2185,9 @@ d_fmt       "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
 t_fmt       "<U0025><U0054>"
 am_pm       "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/pl_PL b/localedata/locales/pl_PL
index 8445992b6c..9dac1592bf 100644
--- a/localedata/locales/pl_PL
+++ b/localedata/locales/pl_PL
@@ -2180,6 +2180,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/pt_BR b/localedata/locales/pt_BR
index 248fea592b..9230387532 100644
--- a/localedata/locales/pt_BR
+++ b/localedata/locales/pt_BR
@@ -118,6 +118,9 @@ d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/pt_PT b/localedata/locales/pt_PT
index fbb85e60b9..be2eb00b84 100644
--- a/localedata/locales/pt_PT
+++ b/localedata/locales/pt_PT
@@ -118,6 +118,9 @@ d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/ro_RO b/localedata/locales/ro_RO
index 973cf0f8ff..54d2c1b00c 100644
--- a/localedata/locales/ro_RO
+++ b/localedata/locales/ro_RO
@@ -2178,6 +2178,9 @@ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/ru_RU b/localedata/locales/ru_RU
index 7579c70d10..64611a9ff0 100644
--- a/localedata/locales/ru_RU
+++ b/localedata/locales/ru_RU
@@ -3113,6 +3113,9 @@ d_fmt     "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt     "<U0025><U0054>"
 am_pm     "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/ru_UA b/localedata/locales/ru_UA
index e71ff8859f..b7690a0889 100644
--- a/localedata/locales/ru_UA
+++ b/localedata/locales/ru_UA
@@ -3108,6 +3108,9 @@ d_fmt     "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt     "<U0025><U0054>"
 am_pm     "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/sk_SK b/localedata/locales/sk_SK
index c53a12d6c4..a69821d140 100644
--- a/localedata/locales/sk_SK
+++ b/localedata/locales/sk_SK
@@ -175,6 +175,10 @@ t_fmt_ampm	"<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>"
 
 am_pm   	"";""
 
+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
 
 %% END OF LOCALIZATION FILE for sk_SK.ISO-8859-2
diff --git a/localedata/locales/sl_SI b/localedata/locales/sl_SI
index 77773af501..52314d6112 100644
--- a/localedata/locales/sl_SI
+++ b/localedata/locales/sl_SI
@@ -2180,6 +2180,9 @@ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/sq_AL b/localedata/locales/sq_AL
index b859e41183..6e2aabc513 100644
--- a/localedata/locales/sq_AL
+++ b/localedata/locales/sq_AL
@@ -141,6 +141,10 @@ t_fmt       "<U0025><U0049><U002E><U0025><U004D><U002E><U0025><U0053>/
 t_fmt_ampm  "<U0025><U0049><U002E><U0025><U004D><U002E><U0025><U0053>/
 <U002E><U0025><U0070><U0020><U0025><U005A>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/sr_YU b/localedata/locales/sr_YU
index f00d81b722..8d0edfdbab 100644
--- a/localedata/locales/sr_YU
+++ b/localedata/locales/sr_YU
@@ -2205,6 +2205,9 @@ d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059><U002E>"
 t_fmt   "<U0025><U0054>"
 am_pm   "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/sv_FI b/localedata/locales/sv_FI
index 33d6d95512..afd4f0f100 100644
--- a/localedata/locales/sv_FI
+++ b/localedata/locales/sv_FI
@@ -102,6 +102,9 @@ d_fmt     "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt     "<U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053>"
 am_pm     "";""
 t_fmt_ampm  ""
+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_PAPER
diff --git a/localedata/locales/sv_SE b/localedata/locales/sv_SE
index 3d5b6a5310..5909b4887c 100644
--- a/localedata/locales/sv_SE
+++ b/localedata/locales/sv_SE
@@ -170,6 +170,9 @@ d_fmt     "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 t_fmt     "<U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053>"
 am_pm     "";""
 t_fmt_ampm  ""
+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
diff --git a/localedata/locales/th_TH b/localedata/locales/th_TH
index 8624cfa1bf..2e9fad24ca 100644
--- a/localedata/locales/th_TH
+++ b/localedata/locales/th_TH
@@ -1020,7 +1020,10 @@ t_fmt_ampm  "%I<U003A>%M<U003A>%S<U0020>%p"
 %era_d_fmt       "%d<U0020>%b<U0020>%o"
 %era_t_fmt       "%H<U003A>%M<U003A>%S<U0020><U0E19><U002E>"
 %era_d_t_fmt     "<U0E27><U0E31><U0E19>%A<U0E17><U0E35><U0E48><U0020>%d<U0020>%B<U0020>%N<U0020>%o<U002C><U0020>%H<U003A>%M<U003A>%S<U0020><U0E19><U002E>"
-
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
diff --git a/localedata/locales/tr_TR b/localedata/locales/tr_TR
index 739f95c1df..5b3bb2c0fb 100644
--- a/localedata/locales/tr_TR
+++ b/localedata/locales/tr_TR
@@ -3093,11 +3093,16 @@ mon     "<U004F><U0063><U0061><U006B>";/
         "<U0045><U006B><U0069><U006D>";/
 	"<U004B><U0061><U0073><U0131><U006D>";/
 	"<U0041><U0072><U0061><U006C><U0131><U006B>"
-d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020>/
+<U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
 d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
 t_fmt   "<U0025><U0054>"
 am_pm   "<U00D6><U00D6>";"<U00D6><U0053>"
-t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070>"
+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_PAPER
diff --git a/localedata/locales/uk_UA b/localedata/locales/uk_UA
index 3a3acf9c62..6633e6423b 100644
--- a/localedata/locales/uk_UA
+++ b/localedata/locales/uk_UA
@@ -3108,6 +3108,9 @@ d_fmt     "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt     "<U0025><U0054>"
 am_pm     "";""
 t_fmt_ampm ""
+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_PAPER
diff --git a/localedata/locales/vi_VN b/localedata/locales/vi_VN
index 1394686dc1..c6567dd820 100644
--- a/localedata/locales/vi_VN
+++ b/localedata/locales/vi_VN
@@ -157,6 +157,10 @@ t_fmt       "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>/
 % Appropriate 12 h time representation (%r)
 t_fmt_ampm  ""
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/zh_CN b/localedata/locales/zh_CN
index 278dd231ed..7cac84fde4 100644
--- a/localedata/locales/zh_CN
+++ b/localedata/locales/zh_CN
@@ -437,6 +437,9 @@ am_pm   "<U4E0A><U5348>";"<U4E0B><U5348>"
 
 t_fmt_ampm "<U0025><U0070><U0020><U0025><U0049><U65F6><U0025><U004D><U5206><U0025><U0053><U79D2>"
 
+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
diff --git a/localedata/locales/zh_HK b/localedata/locales/zh_HK
index 89455e9132..17c2fd329a 100644
--- a/localedata/locales/zh_HK
+++ b/localedata/locales/zh_HK
@@ -133,6 +133,10 @@ t_fmt       "<U0025><U0049><U6642><U0025><U004D><U5206><U0025><U0053>/
 t_fmt_ampm  "<U0025><U0070><U0020><U0025><U0049><U003A><U0025><U004D>/
 <U003A><U0025><U0053>"
 %
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+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
 
 
diff --git a/localedata/locales/zh_TW b/localedata/locales/zh_TW
index b719ebc10b..a9bc12c16a 100644
--- a/localedata/locales/zh_TW
+++ b/localedata/locales/zh_TW
@@ -123,6 +123,11 @@ am_pm	"<U4E0A><U5348>";"<U4E0B><U5348>"
 % t_fmt_ampm: "%p %I<h>%M<m>%S<s>"
 t_fmt_ampm  "<U0025><U0070><U0020><U0025><U0049><U6642>/
 <U0025><U004D><U5206><U0025><U0053><U79D2>"
+
+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
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 9b5fe84078..5ec089ccc0 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -949,15 +949,15 @@ cabs_test (void)
   TEST_c_f (cabs, nan_value, nan_value, nan_value);
 
   /* cabs (x,y) == cabs (y,x).  */
-  TEST_c_f (cabs, 0.7L, 12.4L, 12.41974234837422060118L);
+  TEST_c_f (cabs, 0.7L, 12.4L, 12.419742348374220601176836866763271L);
   /* cabs (x,y) == cabs (-x,y).  */
-  TEST_c_f (cabs, -12.4L, 0.7L, 12.41974234837422060118L);
+  TEST_c_f (cabs, -12.4L, 0.7L, 12.419742348374220601176836866763271L);
   /* cabs (x,y) == cabs (-y,x).  */
-  TEST_c_f (cabs, -0.7L, 12.4L, 12.41974234837422060118L);
+  TEST_c_f (cabs, -0.7L, 12.4L, 12.419742348374220601176836866763271L);
   /* cabs (x,y) == cabs (-x,-y).  */
-  TEST_c_f (cabs, -12.4L, -0.7L, 12.41974234837422060118L);
+  TEST_c_f (cabs, -12.4L, -0.7L, 12.419742348374220601176836866763271L);
   /* cabs (x,y) == cabs (-y,-x).  */
-  TEST_c_f (cabs, -0.7L, -12.4L, 12.41974234837422060118L);
+  TEST_c_f (cabs, -0.7L, -12.4L, 12.419742348374220601176836866763271L);
   /* cabs (x,0) == fabs (x).  */
   TEST_c_f (cabs, -0.7L, 0, 0.7L);
   TEST_c_f (cabs, 0.7L, 0, 0.7L);
@@ -966,7 +966,7 @@ cabs_test (void)
   TEST_c_f (cabs, -5.7e7L, 0, 5.7e7L);
   TEST_c_f (cabs, 5.7e7L, 0, 5.7e7L);
 
-  TEST_c_f (cabs, 0.7L, 1.2L, 1.3892443989449804508L);
+  TEST_c_f (cabs, 0.7L, 1.2L, 1.3892443989449804508432547041028554L);
 
   END (cabs);
 }
@@ -1667,7 +1667,7 @@ cexp_test (void)
   TEST_c_c (cexp, nan_value, nan_value, nan_value, nan_value);
 
   TEST_c_c (cexp, 0.7L, 1.2L, 0.72969890915032360123451688642930727L, 1.8768962328348102821139467908203072L);
-  TEST_c_c (cexp, -2.0, -3.0, -0.1339809149295426134L, -0.0190985162611351964L);
+  TEST_c_c (cexp, -2.0, -3.0, -0.13398091492954261346140525546115575L, -0.019098516261135196432576240858800925L);
 
   END (cexp, complex);
 }
@@ -2166,9 +2166,9 @@ csqrt_test (void)
   TEST_c_c (csqrt, -1, 0, 0.0, 1.0);
   TEST_c_c (csqrt, 0, 2, 1.0, 1.0);
   TEST_c_c (csqrt, 119, 120, 12.0, 5.0);
-  TEST_c_c (csqrt, 0.7L, 1.2L, 1.0220676100300264507L, 0.5870453129635652115L);
-  TEST_c_c (csqrt, -2, -3, 0.8959774761298381247L, -1.6741492280355400404L);
-  TEST_c_c (csqrt, -2, 3, 0.8959774761298381247L, 1.6741492280355400404L);
+  TEST_c_c (csqrt, 0.7L, 1.2L, 1.022067610030026450706487883081139L, 0.58704531296356521154977678719838035L);
+  TEST_c_c (csqrt, -2, -3, 0.89597747612983812471573375529004348L, -1.6741492280355400404480393008490519L);
+  TEST_c_c (csqrt, -2, 3, 0.89597747612983812471573375529004348L, 1.6741492280355400404480393008490519L);
 
   END (csqrt, complex);
 }
@@ -2752,21 +2752,21 @@ hypot_test (void)
   TEST_ff_f (hypot, nan_value, nan_value, nan_value);
 
   /* hypot (x,y) == hypot (+-x, +-y)  */
-  TEST_ff_f (hypot, 0.7L, 12.4L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, -0.7L, 12.4L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, 0.7L, -12.4L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, -0.7L, -12.4L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, 12.4L, 0.7L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, -12.4L, 0.7L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, 12.4L, -0.7L, 12.41974234837422060118L);
-  TEST_ff_f (hypot, -12.4L, -0.7L, 12.41974234837422060118L);
+  TEST_ff_f (hypot, 0.7L, 12.4L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, -0.7L, 12.4L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, 0.7L, -12.4L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, -0.7L, -12.4L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, 12.4L, 0.7L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, -12.4L, 0.7L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, 12.4L, -0.7L, 12.419742348374220601176836866763271L);
+  TEST_ff_f (hypot, -12.4L, -0.7L, 12.419742348374220601176836866763271L);
 
   /*  hypot (x,0) == fabs (x)  */
   TEST_ff_f (hypot, 0.7L, 0, 0.7L);
   TEST_ff_f (hypot, -0.7L, 0, 0.7L);
   TEST_ff_f (hypot, -5.7e7, 0, 5.7e7L);
 
-  TEST_ff_f (hypot, 0.7L, 1.2L, 1.3892443989449804508L);
+  TEST_ff_f (hypot, 0.7L, 1.2L, 1.3892443989449804508432547041028554L);
 
   END (hypot);
 }
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index 557a02224b..4d4370a2d3 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -252,11 +252,17 @@ __printf_fp (FILE *fp,
   else
     {
       decimal = _NL_CURRENT (LC_MONETARY, MON_DECIMAL_POINT);
+      if (*decimal == '\0')
+	decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
       decimalwc = _NL_CURRENT_WORD (LC_MONETARY,
 				    _NL_MONETARY_DECIMAL_POINT_WC);
+      if (decimalwc == L'\0')
+	decimalwc = _NL_CURRENT_WORD (LC_NUMERIC,
+				      _NL_NUMERIC_DECIMAL_POINT_WC);
     }
   /* The decimal point character must not be zero.  */
-  assert (*decimal != L'\0');
+  assert (*decimal != '\0');
+  assert (decimalwc != L'\0');
 
   if (info->group)
     {
diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps
index 515d07169c..a36dacf17f 100644
--- a/sysdeps/alpha/fpu/libm-test-ulps
+++ b/sysdeps/alpha/fpu/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -161,7 +161,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
@@ -291,18 +291,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -400,31 +400,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps
index 439c487e83..23a0f35702 100644
--- a/sysdeps/arm/libm-test-ulps
+++ b/sysdeps/arm/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -161,7 +161,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
@@ -291,18 +291,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -400,31 +400,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index bd6dc44000..9284188fad 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -42,24 +42,24 @@ ildouble: 1605
 ldouble: 1605
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
 ildouble: 560
 ldouble: 560
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -240,10 +240,10 @@ ildouble: 1183
 ldouble: 1183
 
 # cexp
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 ildouble: 4
 ldouble: 4
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 ildouble: 18
 ldouble: 18
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
@@ -451,20 +451,20 @@ ildouble: 477
 ldouble: 477
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 ildouble: 1
 ldouble: 1
-Test "Imaginary part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Imaginary part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 ildouble: 1
 ldouble: 1
-Test "Imaginary part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 idouble: 1
 ildouble: 237
 ldouble: 237
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 ildouble: 128
 ldouble: 128
 
@@ -598,39 +598,39 @@ double: 1
 idouble: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 ildouble: 560
 ldouble: 560
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ildouble: 406
 ldouble: 406
diff --git a/sysdeps/ia64/fpu/libm-test-ulps b/sysdeps/ia64/fpu/libm-test-ulps
index 25096308ad..b03d7c6b62 100644
--- a/sysdeps/ia64/fpu/libm-test-ulps
+++ b/sysdeps/ia64/fpu/libm-test-ulps
@@ -53,24 +53,24 @@ ildouble: 1605
 ldouble: 1605
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
 ildouble: 560
 ldouble: 560
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -282,10 +282,10 @@ ildouble: 1183
 ldouble: 1183
 
 # cexp
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 ildouble: 4
 ldouble: 4
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 ildouble: 18
@@ -513,26 +513,26 @@ ildouble: 477
 ldouble: 477
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "Imaginary part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Imaginary part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "Imaginary part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 double: 1
 idouble: 1
 ildouble: 237
 ldouble: 237
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 ildouble: 128
@@ -692,47 +692,47 @@ double: 1
 idouble: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
 ildouble: 560
 ldouble: 560
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
 ldouble: 406
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 ildouble: 406
diff --git a/sysdeps/ieee754/ldbl-128/e_hypotl.c b/sysdeps/ieee754/ldbl-128/e_hypotl.c
new file mode 100644
index 0000000000..6834eac59c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/e_hypotl.c
@@ -0,0 +1,132 @@
+/* e_hypotl.c -- long double version of e_hypot.c.
+ * Conversion to long double by Jakub Jelinek, jakub@redhat.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_hypotl.c,v 1.9 1995/05/12 04:57:27 jtc Exp $";
+#endif
+
+/* __ieee754_hypotl(x,y)
+ *
+ * Method :
+ *	If (assume round-to-nearest) z=x*x+y*y
+ *	has error less than sqrtl(2)/2 ulp, than
+ *	sqrtl(z) has error less than 1 ulp (exercise).
+ *
+ *	So, compute sqrtl(x*x+y*y) with some care as
+ *	follows to get the error below 1 ulp:
+ *
+ *	Assume x>y>0;
+ *	(if possible, set rounding to round-to-nearest)
+ *	1. if x > 2y  use
+ *		x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ *	where x1 = x with lower 64 bits cleared, x2 = x-x1; else
+ *	2. if x <= 2y use
+ *		t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ *	where t1 = 2x with lower 64 bits cleared, t2 = 2x-t1,
+ *	y1= y with lower 64 bits chopped, y2 = y-y1.
+ *
+ *	NOTE: scaling may be necessary if some argument is too
+ *	      large or too tiny
+ *
+ * Special cases:
+ *	hypotl(x,y) is INF if x or y is +INF or -INF; else
+ *	hypotl(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ * 	hypotl(x,y) returns sqrtl(x^2+y^2) with error less
+ * 	than 1 ulps (units in the last place)
+ */
+
+#include "math.h"
+#include "math_private.h"
+
+#ifdef __STDC__
+	long double __ieee754_hypotl(long double x, long double y)
+#else
+	long double __ieee754_hypotl(x,y)
+	long double x, y;
+#endif
+{
+	long double a,b,t1,t2,y1,y2,w;
+	int64_t j,k,ha,hb;
+
+	GET_LDOUBLE_MSW64(ha,x);
+	ha &= 0x7fffffffffffffffLL;
+	GET_LDOUBLE_MSW64(hb,y);
+	hb &= 0x7fffffffffffffffLL;
+	if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
+	SET_LDOUBLE_MSW64(a,ha);	/* a <- |a| */
+	SET_LDOUBLE_MSW64(b,hb);	/* b <- |b| */
+	if((ha-hb)>0x78000000000000LL) {return a+b;} /* x/y > 2**120 */
+	k=0;
+	if(ha > 0x5f3f000000000000LL) {	/* a>2**8000 */
+	   if(ha >= 0x7fff000000000000LL) {	/* Inf or NaN */
+	       u_int64_t low;
+	       w = a+b;			/* for sNaN */
+	       GET_LDOUBLE_LSW64(low,a);
+	       if(((ha&0xffffffffffffLL)|low)==0) w = a;
+	       GET_LDOUBLE_LSW64(low,b);
+	       if(((hb^0x7fff000000000000LL)|low)==0) w = b;
+	       return w;
+	   }
+	   /* scale a and b by 2**-9600 */
+	   ha -= 0x2580000000000000LL;
+	   hb -= 0x2580000000000000LL;	k += 9600;
+	   SET_LDOUBLE_MSW64(a,ha);
+	   SET_LDOUBLE_MSW64(b,hb);
+	}
+	if(hb < 0x20bf000000000000LL) {	/* b < 2**-8000 */
+	    if(hb <= 0x0000ffffffffffffLL) {	/* subnormal b or 0 */
+	        u_int64_t low;
+		GET_LDOUBLE_LSW64(low,b);
+		if((hb|low)==0) return a;
+		t1=0;
+		SET_LDOUBLE_MSW64(t1,0x7ffd000000000000LL); /* t1=2^16382 */
+		b *= t1;
+		a *= t1;
+		k -= 16382;
+	    } else {		/* scale a and b by 2^9600 */
+	        ha += 0x2580000000000000LL; 	/* a *= 2^9600 */
+		hb += 0x2580000000000000LL;	/* b *= 2^9600 */
+		k -= 9600;
+		SET_LDOUBLE_MSW64(a,ha);
+		SET_LDOUBLE_MSW64(b,hb);
+	    }
+	}
+    /* medium size a and b */
+	w = a-b;
+	if (w>b) {
+	    t1 = 0;
+	    SET_LDOUBLE_MSW64(t1,ha);
+	    t2 = a-t1;
+	    w  = __ieee754_sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
+	} else {
+	    a  = a+a;
+	    y1 = 0;
+	    SET_LDOUBLE_MSW64(y1,hb);
+	    y2 = b - y1;
+	    t1 = 0;
+	    SET_LDOUBLE_MSW64(t1,ha+0x0001000000000000LL);
+	    t2 = a - t1;
+	    w  = __ieee754_sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	}
+	if(k!=0) {
+	    u_int64_t high;
+	    t1 = 1.0L;
+	    GET_LDOUBLE_MSW64(high,t1);
+	    SET_LDOUBLE_MSW64(t1,high+(k<<48));
+	    return t1*w;
+	} else return w;
+}
diff --git a/sysdeps/m68k/fpu/libm-test-ulps b/sysdeps/m68k/fpu/libm-test-ulps
index ddbf3077e3..8351aaf3e9 100644
--- a/sysdeps/m68k/fpu/libm-test-ulps
+++ b/sysdeps/m68k/fpu/libm-test-ulps
@@ -28,22 +28,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 ildouble: 1
 ldouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -209,12 +209,12 @@ ildouble: 2
 ldouble: 2
 
 # cexp
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 ildouble: 5
 ldouble: 5
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 ildouble: 19
@@ -344,16 +344,16 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 ildouble: 1
 ldouble: 1
 
@@ -453,31 +453,31 @@ ildouble: 1
 ldouble: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 ildouble: 1
 ldouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/mips/fpu/libm-test-ulps b/sysdeps/mips/fpu/libm-test-ulps
index 515d07169c..a36dacf17f 100644
--- a/sysdeps/mips/fpu/libm-test-ulps
+++ b/sysdeps/mips/fpu/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -161,7 +161,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
@@ -291,18 +291,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -400,31 +400,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
index ec48a24bfd..499388d925 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -160,7 +160,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
@@ -290,18 +290,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -399,31 +399,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
index 78f4f26639..cdb4d27bf6 100644
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ b/sysdeps/s390/fpu/libm-test-ulps
@@ -24,22 +24,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -166,7 +166,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
@@ -309,18 +309,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -421,31 +421,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/sh/sh4/fpu/libm-test-ulps b/sysdeps/sh/sh4/fpu/libm-test-ulps
index 4737025991..aad54b3034 100644
--- a/sysdeps/sh/sh4/fpu/libm-test-ulps
+++ b/sysdeps/sh/sh4/fpu/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -161,7 +161,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
@@ -291,18 +291,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -400,31 +400,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/sparc/sparc32/fpu/libm-test-ulps b/sysdeps/sparc/sparc32/fpu/libm-test-ulps
index d8c25ccd1d..d2e75ece6f 100644
--- a/sysdeps/sparc/sparc32/fpu/libm-test-ulps
+++ b/sysdeps/sparc/sparc32/fpu/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -161,7 +161,7 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
@@ -291,18 +291,18 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
 
@@ -400,31 +400,31 @@ idouble: 2
 ifloat: 1
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
diff --git a/sysdeps/sparc/sparc64/fpu/libm-test-ulps b/sysdeps/sparc/sparc64/fpu/libm-test-ulps
index 2af728f305..4cbed26743 100644
--- a/sysdeps/sparc/sparc64/fpu/libm-test-ulps
+++ b/sysdeps/sparc/sparc64/fpu/libm-test-ulps
@@ -19,22 +19,22 @@ double: 1
 idouble: 1
 
 # cabs
-Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118":
+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118":
+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508":
+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118":
+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -161,9 +161,14 @@ double: 1
 idouble: 1
 
 # cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i":
+Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
 double: 1
 float: 1
@@ -330,20 +335,26 @@ float: 1
 ifloat: 1
 
 # csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i":
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 
 # ctan
 Test "Real part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i":
@@ -453,31 +464,31 @@ ildouble: 2
 ldouble: 2
 
 # hypot
-Test "hypot (-0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, -12.4) == 12.41974234837422060118":
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508":
+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
 double: 1
 idouble: 1
-Test "hypot (0.7, 12.4) == 12.41974234837422060118":
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, -0.7) == 12.41974234837422060118":
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (12.4, 0.7) == 12.41974234837422060118":
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
 
@@ -937,10 +948,14 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 
 Function: Imaginary part of "cexp":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 
 Function: Imaginary part of "clog":
 double: 1
@@ -999,10 +1014,14 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 
 Function: Imaginary part of "csqrt":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 
 Function: Real part of "ctan":
 double: 1