about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog84
-rw-r--r--ctype/ctype-c99_l.c2
-rw-r--r--ctype/ctype.h10
-rw-r--r--ctype/ctype_l.c6
-rw-r--r--include/monetary.h2
-rw-r--r--include/stdlib.h16
-rw-r--r--include/time.h2
-rw-r--r--include/wchar.h4
-rw-r--r--locale/duplocale.c6
-rw-r--r--locale/freelocale.c2
-rw-r--r--locale/global-locale.c2
-rw-r--r--locale/langinfo.h2
-rw-r--r--locale/locale.h12
-rw-r--r--locale/localeinfo.h4
-rw-r--r--locale/newlocale.c8
-rw-r--r--locale/nl_langinfo_l.c2
-rw-r--r--locale/uselocale.c2
-rw-r--r--localedata/bug-usesetlocale.c2
-rw-r--r--localedata/tst-xlocale2.c2
-rw-r--r--stdio-common/vfscanf.c2
-rw-r--r--stdlib/monetary.h2
-rw-r--r--stdlib/stdlib.h16
-rw-r--r--stdlib/strfmon_l.c4
-rw-r--r--stdlib/strtod_l.c6
-rw-r--r--stdlib/strtof_l.c2
-rw-r--r--stdlib/strtol.c2
-rw-r--r--stdlib/strtol_l.c4
-rw-r--r--stdlib/strtold_l.c6
-rw-r--r--stdlib/strtoll_l.c2
-rw-r--r--stdlib/strtoul_l.c2
-rw-r--r--stdlib/strtoull_l.c2
-rw-r--r--string/strcasecmp.c4
-rw-r--r--string/strcoll_l.c2
-rw-r--r--string/string.h6
-rw-r--r--string/strings.h4
-rw-r--r--string/strncase.c4
-rw-r--r--string/strxfrm_l.c2
-rw-r--r--sysdeps/ieee754/float128/strtof128_l.c2
-rw-r--r--sysdeps/ieee754/float128/wcstof128.c2
-rw-r--r--sysdeps/ieee754/float128/wcstof128_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-64-128/strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strcasecmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strcasecmp.S2
-rw-r--r--sysdeps/x86_64/strcasecmp_l-nonascii.c2
-rw-r--r--sysdeps/x86_64/strncase_l-nonascii.c2
-rw-r--r--time/strftime_l.c2
-rw-r--r--time/strptime_l.c2
-rw-r--r--time/time.h4
-rw-r--r--wcsmbs/mbsrtowcs_l.c2
-rw-r--r--wcsmbs/wchar.h26
-rw-r--r--wcsmbs/wcscasecmp.c2
-rw-r--r--wcsmbs/wcsncase.c2
-rw-r--r--wcsmbs/wcstod.c2
-rw-r--r--wcsmbs/wcstod_l.c2
-rw-r--r--wcsmbs/wcstof.c2
-rw-r--r--wcsmbs/wcstof_l.c2
-rw-r--r--wcsmbs/wcstol_l.c2
-rw-r--r--wcsmbs/wcstold.c2
-rw-r--r--wcsmbs/wcstold_l.c2
-rw-r--r--wcsmbs/wcstoll_l.c2
-rw-r--r--wcsmbs/wcstoul_l.c2
-rw-r--r--wcsmbs/wcstoull_l.c2
-rw-r--r--wctype/iswctype_l.c2
-rw-r--r--wctype/towctrans_l.c2
-rw-r--r--wctype/wcfuncs_l.c6
-rw-r--r--wctype/wctrans_l.c2
-rw-r--r--wctype/wctype.h36
-rw-r--r--wctype/wctype_l.c2
73 files changed, 211 insertions, 175 deletions
diff --git a/ChangeLog b/ChangeLog
index c7877ef1bf..efc7c7add2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,31 +1,67 @@
 2017-06-20  Zack Weinberg  <zackw@panix.com>
 
-        * locale/xlocale.h: Rename to...
+	* locale/xlocale.h: Rename to...
 	* locale/bits/types/__locale_t.h: ...here.  Adjust commentary.
 	Only define struct __locale_struct and __locale_t, not locale_t.
-        * locale/bits/types/locale_t.h: New file; define locale_t here.
-        * locale/Makefile (headers): Update to match.
-
-        * include/xlocale.h: Delete wrapper.
-        * include/bits/types/__locale_t.h: New wrapper.
-        * include/bits/types/locale_t.h: New wrapper.
-
-        * ctype/ctype.h, include/printf.h, include/time.h
-        * locale/langinfo.h, locale/locale.h, stdlib/monetary.h
-        * stdlib/stdlib.h, string/string.h, string/strings.h, time/time.h
-        * wcsmbs/wchar.h, wctype/wctype.h: Use bits/types/locale_t.h.
-        Correct outdated comments regarding the standardization status of
-        the functions that take locale_t arguments.
-
-        * stdlib/strtod_l.c, stdlib/strtof_l.c, stdlib/strtol_l.c
-        * stdlib/strtold_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
-        * sysdeps/ieee754/ldbl-128ibm/strtold_l.c
-        * sysdeps/ieee754/ldbl-64-128/strtold_l.c
-        * wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
-        * wcsmbs/wcstof_l.c, wcsmbs/wcstold.c, wcsmbs/wcstold_l.c:
-        Don't include xlocale.h. If necessary, include locale.h instead.
-
-        * stdlib/strtold_l.c: Unconditionally include wchar.h.
+	* locale/bits/types/locale_t.h: New file; define locale_t here.
+	* locale/Makefile (headers): Update to match.
+
+	* include/xlocale.h: Delete wrapper.
+	* include/bits/types/__locale_t.h: New wrapper.
+	* include/bits/types/locale_t.h: New wrapper.
+
+	* ctype/ctype.h, include/printf.h, include/time.h
+	* locale/langinfo.h, locale/locale.h, stdlib/monetary.h
+	* stdlib/stdlib.h, string/string.h, string/strings.h, time/time.h
+	* wcsmbs/wchar.h, wctype/wctype.h: Use bits/types/locale_t.h.
+	Correct outdated comments regarding the standardization status of
+	the functions that take locale_t arguments.
+
+	* stdlib/strtod_l.c, stdlib/strtof_l.c, stdlib/strtol_l.c
+	* stdlib/strtold_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
+	* sysdeps/ieee754/ldbl-128ibm/strtold_l.c
+	* sysdeps/ieee754/ldbl-64-128/strtold_l.c
+	* wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
+	* wcsmbs/wcstof_l.c, wcsmbs/wcstold.c, wcsmbs/wcstold_l.c:
+	Don't include xlocale.h. If necessary, include locale.h instead.
+
+	* stdlib/strtold_l.c: Unconditionally include wchar.h.
+
+	* ctype/ctype-c99_l.c, ctype/ctype.h, ctype/ctype_l.c
+	* include/monetary.h, include/stdlib.h, include/time.h
+	* include/wchar.h, locale/duplocale.c, locale/freelocale.c
+	* locale/global-locale.c, locale/langinfo.h, locale/locale.h
+	* locale/localeinfo.h, locale/newlocale.c
+	* locale/nl_langinfo_l.c, locale/uselocale.c
+	* localedata/bug-usesetlocale.c, localedata/tst-xlocale2.c
+	* stdio-common/vfscanf.c, stdlib/monetary.h, stdlib/stdlib.h
+	* stdlib/strfmon_l.c, stdlib/strtod_l.c, stdlib/strtof_l.c
+	* stdlib/strtol.c, stdlib/strtol_l.c, stdlib/strtold_l.c
+	* stdlib/strtoll_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
+	* string/strcasecmp.c, string/strcoll_l.c, string/string.h
+	* string/strings.h, string/strncase.c, string/strxfrm_l.c
+	* sysdeps/ieee754/float128/strtof128_l.c
+	* sysdeps/ieee754/float128/wcstof128.c
+	* sysdeps/ieee754/float128/wcstof128_l.c
+	* sysdeps/ieee754/ldbl-128ibm/strtold_l.c
+	* sysdeps/ieee754/ldbl-64-128/strtold_l.c
+	* sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+	* sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
+	* sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
+	* sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
+	* sysdeps/powerpc/powerpc32/power7/strcasecmp.S
+	* sysdeps/powerpc/powerpc64/power7/strcasecmp.S
+	* sysdeps/x86_64/strcasecmp_l-nonascii.c
+	* sysdeps/x86_64/strncase_l-nonascii.c, time/strftime_l.c
+	* time/strptime_l.c, time/time.h, wcsmbs/mbsrtowcs_l.c
+	* wcsmbs/wchar.h, wcsmbs/wcscasecmp.c, wcsmbs/wcsncase.c
+	* wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
+	* wcsmbs/wcstof_l.c, wcsmbs/wcstol_l.c, wcsmbs/wcstold.c
+	* wcsmbs/wcstold_l.c, wcsmbs/wcstoll_l.c, wcsmbs/wcstoul_l.c
+	* wcsmbs/wcstoull_l.c, wctype/iswctype_l.c
+	* wctype/towctrans_l.c, wctype/wcfuncs_l.c
+	* wctype/wctrans_l.c, wctype/wctype.h, wctype/wctype_l.c:
+	Change all uses of __locale_t to locale_t.
 
 2017-06-20  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
diff --git a/ctype/ctype-c99_l.c b/ctype/ctype-c99_l.c
index efb5a67bb5..da543593f9 100644
--- a/ctype/ctype-c99_l.c
+++ b/ctype/ctype-c99_l.c
@@ -20,7 +20,7 @@
 #include <ctype.h>
 
 int
-__isblank_l (int c, __locale_t l)
+__isblank_l (int c, locale_t l)
 {
   return __isctype_l (c, _ISblank, l);
 }
diff --git a/ctype/ctype.h b/ctype/ctype.h
index ce598d53e5..1fcbb660d6 100644
--- a/ctype/ctype.h
+++ b/ctype/ctype.h
@@ -242,7 +242,7 @@ __NTH (toupper (int __c))
   ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type)
 
 # define __exctype_l(name) 						      \
-  extern int name (int, __locale_t) __THROW
+  extern int name (int, locale_t) __THROW
 
 /* The following names are all functions:
      int isCHARACTERISTIC(int c, locale_t *locale);
@@ -264,12 +264,12 @@ __exctype_l (isblank_l);
 
 
 /* Return the lowercase version of C in locale L.  */
-extern int __tolower_l (int __c, __locale_t __l) __THROW;
-extern int tolower_l (int __c, __locale_t __l) __THROW;
+extern int __tolower_l (int __c, locale_t __l) __THROW;
+extern int tolower_l (int __c, locale_t __l) __THROW;
 
 /* Return the uppercase version of C.  */
-extern int __toupper_l (int __c, __locale_t __l) __THROW;
-extern int toupper_l (int __c, __locale_t __l) __THROW;
+extern int __toupper_l (int __c, locale_t __l) __THROW;
+extern int toupper_l (int __c, locale_t __l) __THROW;
 
 # if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
 #  define __tolower_l(c, locale) \
diff --git a/ctype/ctype_l.c b/ctype/ctype_l.c
index a7b5f5238a..e565068c20 100644
--- a/ctype/ctype_l.c
+++ b/ctype/ctype_l.c
@@ -21,7 +21,7 @@
 /* Provide real-function versions of all the ctype macros.  */
 
 #define	func(name, type) \
-  int __##name (int c, __locale_t l) { return __isctype_l (c, type, l); } \
+  int __##name (int c, locale_t l) { return __isctype_l (c, type, l); } \
   weak_alias (__##name, name)
 
 func (isalnum_l, _ISalnum)
@@ -37,14 +37,14 @@ func (isupper_l, _ISupper)
 func (isxdigit_l, _ISxdigit)
 
 int
-(__tolower_l) (int c, __locale_t l)
+(__tolower_l) (int c, locale_t l)
 {
   return l->__ctype_tolower[c];
 }
 weak_alias (__tolower_l, tolower_l)
 
 int
-(__toupper_l) (int c, __locale_t l)
+(__toupper_l) (int c, locale_t l)
 {
   return l->__ctype_toupper[c];
 }
diff --git a/include/monetary.h b/include/monetary.h
index e6870138f8..2a182636d2 100644
--- a/include/monetary.h
+++ b/include/monetary.h
@@ -2,6 +2,6 @@
 #ifndef _ISOMAC
 #include <stdarg.h>
 
-extern ssize_t __vstrfmon_l (char *s, size_t maxsize, __locale_t loc,
+extern ssize_t __vstrfmon_l (char *s, size_t maxsize, locale_t loc,
 			     const char *format, va_list ap);
 #endif
diff --git a/include/stdlib.h b/include/stdlib.h
index cae9f2c541..6fd868828b 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -156,34 +156,34 @@ libc_hidden_proto (__strtoull_internal)
 
 extern double ____strtod_l_internal (const char *__restrict __nptr,
 				     char **__restrict __endptr, int __group,
-				     __locale_t __loc);
+				     locale_t __loc);
 extern float ____strtof_l_internal (const char *__restrict __nptr,
 				    char **__restrict __endptr, int __group,
-				    __locale_t __loc);
+				    locale_t __loc);
 extern long double ____strtold_l_internal (const char *__restrict __nptr,
 					   char **__restrict __endptr,
-					   int __group, __locale_t __loc);
+					   int __group, locale_t __loc);
 extern long int ____strtol_l_internal (const char *__restrict __nptr,
 				       char **__restrict __endptr,
 				       int __base, int __group,
-				       __locale_t __loc);
+				       locale_t __loc);
 extern unsigned long int ____strtoul_l_internal (const char *
 						 __restrict __nptr,
 						 char **__restrict __endptr,
 						 int __base, int __group,
-						 __locale_t __loc);
+						 locale_t __loc);
 __extension__
 extern long long int ____strtoll_l_internal (const char *__restrict __nptr,
 					     char **__restrict __endptr,
 					     int __base, int __group,
-					     __locale_t __loc);
+					     locale_t __loc);
 __extension__
 extern unsigned long long int ____strtoull_l_internal (const char *
 						       __restrict __nptr,
 						       char **
 						       __restrict __endptr,
 						       int __base, int __group,
-						       __locale_t __loc);
+						       locale_t __loc);
 
 libc_hidden_proto (____strtof_l_internal)
 libc_hidden_proto (____strtod_l_internal)
@@ -243,7 +243,7 @@ libc_hidden_proto (__strtof128_internal)
 
 extern _Float128 ____strtof128_l_internal (const char *__restrict __nptr,
 					   char **__restrict __endptr,
-					   int __group, __locale_t __loc);
+					   int __group, locale_t __loc);
 
 libc_hidden_proto (____strtof128_l_internal)
 #endif
diff --git a/include/time.h b/include/time.h
index 0a67cf3a19..7eb0fa72d9 100644
--- a/include/time.h
+++ b/include/time.h
@@ -92,7 +92,7 @@ extern int __getclktck (void);
 /* strptime support.  */
 extern char * __strptime_internal (const char *rp, const char *fmt,
 				   struct tm *tm, void *statep,
-				   __locale_t locparam)
+				   locale_t locparam)
      internal_function;
 
 extern double __difftime (time_t time1, time_t time0);
diff --git a/include/wchar.h b/include/wchar.h
index b7b5a5c43d..7bf042c235 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -54,7 +54,7 @@ extern unsigned long long int __wcstoull_internal (const wchar_t *
 						   int __group) __THROW;
 extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
 						       wchar_t **, int, int,
-						       __locale_t);
+						       locale_t);
 libc_hidden_proto (__wcstof_internal)
 libc_hidden_proto (__wcstod_internal)
 libc_hidden_proto (__wcstold_internal)
@@ -221,7 +221,7 @@ libc_hidden_proto (__isoc99_vfwscanf)
 
 /* Internal functions.  */
 extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len,
-			     mbstate_t *ps, __locale_t l) attribute_hidden;
+			     mbstate_t *ps, locale_t l) attribute_hidden;
 
 /* Special version.  We know that all uses of mbsinit inside the libc
    have a non-NULL parameter.  And certainly we can access the
diff --git a/locale/duplocale.c b/locale/duplocale.c
index 07c2c58646..4bf1d56399 100644
--- a/locale/duplocale.c
+++ b/locale/duplocale.c
@@ -29,8 +29,8 @@
 __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
 
 
-__locale_t
-__duplocale (__locale_t dataset)
+locale_t
+__duplocale (locale_t dataset)
 {
   /* This static object is returned for newlocale (LC_ALL_MASK, "C").  */
   if (dataset == _nl_C_locobj_ptr)
@@ -40,7 +40,7 @@ __duplocale (__locale_t dataset)
   if (dataset == LC_GLOBAL_LOCALE)
     dataset = &_nl_global_locale;
 
-  __locale_t result;
+  locale_t result;
   int cnt;
   size_t names_len = 0;
 
diff --git a/locale/freelocale.c b/locale/freelocale.c
index 393fab5ea6..e3263967eb 100644
--- a/locale/freelocale.c
+++ b/locale/freelocale.c
@@ -29,7 +29,7 @@ __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
 
 
 void
-__freelocale (__locale_t dataset)
+__freelocale (locale_t dataset)
 {
   int cnt;
 
diff --git a/locale/global-locale.c b/locale/global-locale.c
index 3629c72207..cf5f8cf8d8 100644
--- a/locale/global-locale.c
+++ b/locale/global-locale.c
@@ -61,4 +61,4 @@ struct __locale_struct _nl_global_locale attribute_hidden =
 #include <tls.h>
 
 /* The tsd macros don't permit an initializer.  */
-__thread __locale_t __libc_tsd_LOCALE = &_nl_global_locale;
+__thread locale_t __libc_tsd_LOCALE = &_nl_global_locale;
diff --git a/locale/langinfo.h b/locale/langinfo.h
index 93d84463b5..14039576bc 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -588,7 +588,7 @@ extern char *nl_langinfo (nl_item __item) __THROW;
 # include <bits/types/locale_t.h>
 
 /* Just like nl_langinfo but get the information from the locale object L.  */
-extern char *nl_langinfo_l (nl_item __item, __locale_t __l);
+extern char *nl_langinfo_l (nl_item __item, locale_t __l);
 #endif
 
 __END_DECLS
diff --git a/locale/locale.h b/locale/locale.h
index 6c1b22051b..ba025f67ba 100644
--- a/locale/locale.h
+++ b/locale/locale.h
@@ -138,8 +138,8 @@ extern struct lconv *localeconv (void) __THROW;
    datasets.  Unlike for the CATEGORY parameter for `setlocale' the
    CATEGORY_MASK parameter here uses a single bit for each category,
    made by OR'ing together LC_*_MASK bits above.  */
-extern __locale_t newlocale (int __category_mask, const char *__locale,
-			     __locale_t __base) __THROW;
+extern locale_t newlocale (int __category_mask, const char *__locale,
+			   locale_t __base) __THROW;
 
 /* These are the bits that can be set in the CATEGORY_MASK argument to
    `newlocale'.  In the GNU implementation, LC_FOO_MASK has the value
@@ -173,22 +173,22 @@ extern __locale_t newlocale (int __category_mask, const char *__locale,
 
 /* Return a duplicate of the set of locale in DATASET.  All usage
    counters are increased if necessary.  */
-extern __locale_t duplocale (__locale_t __dataset) __THROW;
+extern locale_t duplocale (locale_t __dataset) __THROW;
 
 /* Free the data associated with a locale dataset previously returned
    by a call to `setlocale_r'.  */
-extern void freelocale (__locale_t __dataset) __THROW;
+extern void freelocale (locale_t __dataset) __THROW;
 
 /* Switch the current thread's locale to DATASET.
    If DATASET is null, instead just return the current setting.
    The special value LC_GLOBAL_LOCALE is the initial setting
    for all threads and can also be installed any time, meaning
    the thread uses the global settings controlled by `setlocale'.  */
-extern __locale_t uselocale (__locale_t __dataset) __THROW;
+extern locale_t uselocale (locale_t __dataset) __THROW;
 
 /* This value can be passed to `uselocale' and may be returned by it.
    Passing this value to any other function has undefined behavior.  */
-# define LC_GLOBAL_LOCALE	((__locale_t) -1L)
+# define LC_GLOBAL_LOCALE	((locale_t) -1L)
 
 #endif
 
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index f0694dc84e..4e1c8c568a 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -214,9 +214,9 @@ extern struct __locale_struct _nl_global_locale attribute_hidden;
 
 /* This fetches the thread-local locale_t pointer, either one set with
    uselocale or &_nl_global_locale.  */
-#define _NL_CURRENT_LOCALE	(__libc_tsd_get (__locale_t, LOCALE))
+#define _NL_CURRENT_LOCALE	(__libc_tsd_get (locale_t, LOCALE))
 #include <libc-tsd.h>
-__libc_tsd_define (extern, __locale_t, LOCALE)
+__libc_tsd_define (extern, locale_t, LOCALE)
 
 
 /* For static linking it is desireable to avoid always linking in the code
diff --git a/locale/newlocale.c b/locale/newlocale.c
index 2190b7351b..828d715c37 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -39,13 +39,13 @@ __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
   } while (0)
 
 
-__locale_t
-__newlocale (int category_mask, const char *locale, __locale_t base)
+locale_t
+__newlocale (int category_mask, const char *locale, locale_t base)
 {
   /* Intermediate memory for result.  */
   const char *newnames[__LC_LAST];
   struct __locale_struct result;
-  __locale_t result_ptr;
+  locale_t result_ptr;
   char *locale_path;
   size_t locale_path_len;
   const char *locpath_var;
@@ -86,7 +86,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
      dataset using the C locale data.  */
   if (category_mask == 0)
     {
-      result_ptr = (__locale_t) malloc (sizeof (struct __locale_struct));
+      result_ptr = (locale_t) malloc (sizeof (struct __locale_struct));
       if (result_ptr == NULL)
 	return NULL;
       *result_ptr = result;
diff --git a/locale/nl_langinfo_l.c b/locale/nl_langinfo_l.c
index 89acdbde01..f29a5a550e 100644
--- a/locale/nl_langinfo_l.c
+++ b/locale/nl_langinfo_l.c
@@ -27,7 +27,7 @@
 /* Return a string with the data for locale-dependent parameter ITEM.  */
 
 char *
-__nl_langinfo_l (nl_item item, __locale_t l)
+__nl_langinfo_l (nl_item item, locale_t l)
 {
   int category = _NL_ITEM_CATEGORY (item);
   unsigned int index = _NL_ITEM_INDEX (item);
diff --git a/locale/uselocale.c b/locale/uselocale.c
index 9ef22d3cf9..a66b9cb5d6 100644
--- a/locale/uselocale.c
+++ b/locale/uselocale.c
@@ -34,7 +34,7 @@ __uselocale (locale_t newloc)
     {
       const locale_t locobj
 	= newloc == LC_GLOBAL_LOCALE ? &_nl_global_locale : newloc;
-      __libc_tsd_set (__locale_t, LOCALE, locobj);
+      __libc_tsd_set (locale_t, LOCALE, locobj);
 
 #ifdef NL_CURRENT_INDIRECT
       /* Now we must update all the per-category thread-local variables to
diff --git a/localedata/bug-usesetlocale.c b/localedata/bug-usesetlocale.c
index 0637067de7..5f4a2d1a96 100644
--- a/localedata/bug-usesetlocale.c
+++ b/localedata/bug-usesetlocale.c
@@ -8,7 +8,7 @@
 static int
 do_test (void)
 {
-  __locale_t loc_new, loc_old;
+  locale_t loc_new, loc_old;
 
   int first = !!isalpha(0xE4);
 
diff --git a/localedata/tst-xlocale2.c b/localedata/tst-xlocale2.c
index 30d87de72b..7f99050168 100644
--- a/localedata/tst-xlocale2.c
+++ b/localedata/tst-xlocale2.c
@@ -4,7 +4,7 @@
 #include <stdlib.h>
 
 
-static int do_test (__locale_t l);
+static int do_test (locale_t l);
 
 int
 main (void)
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 1adf27e11b..7d9d17bd84 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -289,7 +289,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
   int flags;		/* Modifiers for current format element.  */
   int errval = 0;
 #ifndef COMPILE_WSCANF
-  __locale_t loc = _NL_CURRENT_LOCALE;
+  locale_t loc = _NL_CURRENT_LOCALE;
   struct __locale_data *const curctype = loc->__locales[LC_CTYPE];
 #endif
 
diff --git a/stdlib/monetary.h b/stdlib/monetary.h
index c1fcbf06d1..2c35cc15b9 100644
--- a/stdlib/monetary.h
+++ b/stdlib/monetary.h
@@ -45,7 +45,7 @@ extern ssize_t strfmon (char *__restrict __s, size_t __maxsize,
 
 /* Formatting a monetary value according to the given locale.  */
 extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize,
-			  __locale_t __loc,
+			  locale_t __loc,
 			  const char *__restrict __format, ...)
      __THROW __attribute_format_strfmon__ (4, 5);
 #endif
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index ce2602e03a..7a720cfd11 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -200,42 +200,42 @@ extern int strfromf128 (char *__dest, size_t __size, const char * __format,
 
 extern long int strtol_l (const char *__restrict __nptr,
 			  char **__restrict __endptr, int __base,
-			  __locale_t __loc) __THROW __nonnull ((1, 4));
+			  locale_t __loc) __THROW __nonnull ((1, 4));
 
 extern unsigned long int strtoul_l (const char *__restrict __nptr,
 				    char **__restrict __endptr,
-				    int __base, __locale_t __loc)
+				    int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
 
 __extension__
 extern long long int strtoll_l (const char *__restrict __nptr,
 				char **__restrict __endptr, int __base,
-				__locale_t __loc)
+				locale_t __loc)
      __THROW __nonnull ((1, 4));
 
 __extension__
 extern unsigned long long int strtoull_l (const char *__restrict __nptr,
 					  char **__restrict __endptr,
-					  int __base, __locale_t __loc)
+					  int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
 
 extern double strtod_l (const char *__restrict __nptr,
-			char **__restrict __endptr, __locale_t __loc)
+			char **__restrict __endptr, locale_t __loc)
      __THROW __nonnull ((1, 3));
 
 extern float strtof_l (const char *__restrict __nptr,
-		       char **__restrict __endptr, __locale_t __loc)
+		       char **__restrict __endptr, locale_t __loc)
      __THROW __nonnull ((1, 3));
 
 extern long double strtold_l (const char *__restrict __nptr,
 			      char **__restrict __endptr,
-			      __locale_t __loc)
+			      locale_t __loc)
      __THROW __nonnull ((1, 3));
 
 # if __HAVE_FLOAT128
 extern _Float128 strtof128_l (const char *__restrict __nptr,
 			      char **__restrict __endptr,
-			      __locale_t __loc)
+			      locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 #endif /* GNU */
diff --git a/stdlib/strfmon_l.c b/stdlib/strfmon_l.c
index af64173800..69ca9d5d3b 100644
--- a/stdlib/strfmon_l.c
+++ b/stdlib/strfmon_l.c
@@ -81,7 +81,7 @@ extern unsigned int __guess_grouping (unsigned int intdig_max,
    too.  Some of the information contradicts the information which can
    be specified in format string.  */
 ssize_t
-__vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
+__vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
 	      va_list ap)
 {
   struct __locale_data *current = loc->__locales[LC_MONETARY];
@@ -609,7 +609,7 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
 }
 
 ssize_t
-___strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
+___strfmon_l (char *s, size_t maxsize, locale_t loc, const char *format, ...)
 {
   va_list ap;
 
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index a782a2434b..9fc9e4c013 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -19,7 +19,7 @@
 
 #include <locale.h>
 
-extern double ____strtod_l_internal (const char *, char **, int, __locale_t);
+extern double ____strtod_l_internal (const char *, char **, int, locale_t);
 
 /* Configuration part.  These macros are defined by `strtold.c',
    `strtof.c', `wcstod.c', `wcstold.c', and `wcstof.c' to produce the
@@ -484,7 +484,7 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize,
    ERANGE and return HUGE_VAL with the appropriate sign.  */
 FLOAT
 ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group,
-		     __locale_t loc)
+		     locale_t loc)
 {
   int negative;			/* The sign of the number.  */
   MPN_VAR (num);		/* MP representation of the number.  */
@@ -1758,7 +1758,7 @@ FLOAT
 #ifdef weak_function
 weak_function
 #endif
-__STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr, __locale_t loc)
+__STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr, locale_t loc)
 {
   return ____STRTOF_INTERNAL (nptr, endptr, 0, loc);
 }
diff --git a/stdlib/strtof_l.c b/stdlib/strtof_l.c
index ea76c344f4..33be42f96d 100644
--- a/stdlib/strtof_l.c
+++ b/stdlib/strtof_l.c
@@ -19,7 +19,7 @@
 
 #include <locale.h>
 
-extern float ____strtof_l_internal (const char *, char **, int, __locale_t);
+extern float ____strtof_l_internal (const char *, char **, int, locale_t);
 
 #define	FLOAT		float
 #define	FLT		FLT
diff --git a/stdlib/strtol.c b/stdlib/strtol.c
index 8ac8347e7d..d1e3bfe129 100644
--- a/stdlib/strtol.c
+++ b/stdlib/strtol.c
@@ -88,7 +88,7 @@
 
 
 extern INT INTERNAL (__strtol_l) (const STRING_TYPE *, STRING_TYPE **, int,
-				  int, __locale_t);
+				  int, locale_t);
 
 
 INT
diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
index 48e9ab5310..28ea4bced1 100644
--- a/stdlib/strtol_l.c
+++ b/stdlib/strtol_l.c
@@ -222,7 +222,7 @@ extern const unsigned char __strtol_ull_rem_tab[] attribute_hidden;
 
 INT
 INTERNAL (__strtol_l) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
-		       int base, int group, __locale_t loc)
+		       int base, int group, locale_t loc)
 {
   int negative;
   unsigned LONG int cutoff;
@@ -542,7 +542,7 @@ INT
 weak_function
 #endif
 __strtol_l (const STRING_TYPE *nptr, STRING_TYPE **endptr,
-	    int base, __locale_t loc)
+	    int base, locale_t loc)
 {
   return INTERNAL (__strtol_l) (nptr, endptr, base, 0, loc);
 }
diff --git a/stdlib/strtold_l.c b/stdlib/strtold_l.c
index 7b9efd8819..7445379fe0 100644
--- a/stdlib/strtold_l.c
+++ b/stdlib/strtold_l.c
@@ -35,12 +35,12 @@
 #define INTERNAL1(x) __##x##_internal
 
 extern double INTERNAL (__STRTOD) (const STRING_TYPE *, STRING_TYPE **,
-				   int, __locale_t);
+				   int, locale_t);
 
 /* There is no `long double' type, use the `double' implementations.  */
 long double
 INTERNAL (__STRTOLD) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
-		      int group, __locale_t loc)
+		      int group, locale_t loc)
 {
   return INTERNAL (__STRTOD) (nptr, endptr, group, loc);
 }
@@ -50,7 +50,7 @@ libc_hidden_def (INTERNAL (__STRTOLD))
 
 long double
 weak_function
-__STRTOLD (const STRING_TYPE *nptr, STRING_TYPE **endptr, __locale_t loc)
+__STRTOLD (const STRING_TYPE *nptr, STRING_TYPE **endptr, locale_t loc)
 {
   return INTERNAL (__STRTOD) (nptr, endptr, 0, loc);
 }
diff --git a/stdlib/strtoll_l.c b/stdlib/strtoll_l.c
index 003f425db8..93548d08d0 100644
--- a/stdlib/strtoll_l.c
+++ b/stdlib/strtoll_l.c
@@ -22,6 +22,6 @@
 #include <locale.h>
 
 extern long long int ____strtoll_l_internal (const char *, char **, int, int,
-					     __locale_t);
+					     locale_t);
 
 #include <strtol_l.c>
diff --git a/stdlib/strtoul_l.c b/stdlib/strtoul_l.c
index 45b0585342..8a0934c9ad 100644
--- a/stdlib/strtoul_l.c
+++ b/stdlib/strtoul_l.c
@@ -22,6 +22,6 @@
 #include <locale.h>
 
 extern unsigned long int ____strtoul_l_internal (const char *, char **, int,
-						 int, __locale_t);
+						 int, locale_t);
 
 #include "strtol_l.c"
diff --git a/stdlib/strtoull_l.c b/stdlib/strtoull_l.c
index da6d7cde8c..a9de8eb778 100644
--- a/stdlib/strtoull_l.c
+++ b/stdlib/strtoull_l.c
@@ -23,6 +23,6 @@
 #include <locale.h>
 
 extern unsigned long long int ____strtoull_l_internal (const char *, char **,
-						       int, int, __locale_t);
+						       int, int, locale_t);
 
 #include <strtol_l.c>
diff --git a/string/strcasecmp.c b/string/strcasecmp.c
index 2d6ae0fa9d..d7399638a6 100644
--- a/string/strcasecmp.c
+++ b/string/strcasecmp.c
@@ -34,7 +34,7 @@
 #endif
 
 #ifdef USE_IN_EXTENDED_LOCALE_MODEL
-# define LOCALE_PARAM , __locale_t loc
+# define LOCALE_PARAM , locale_t loc
 #else
 # define LOCALE_PARAM
 #endif
@@ -46,7 +46,7 @@ int
 __strcasecmp (const char *s1, const char *s2 LOCALE_PARAM)
 {
 #if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
-  __locale_t loc = _NL_CURRENT_LOCALE;
+  locale_t loc = _NL_CURRENT_LOCALE;
 #endif
   const unsigned char *p1 = (const unsigned char *) s1;
   const unsigned char *p2 = (const unsigned char *) s2;
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index 8fd55b000a..d46932c1cb 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -254,7 +254,7 @@ out:
 }
 
 int
-STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
+STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
 {
   struct __locale_data *current = l->__locales[LC_COLLATE];
   uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;
diff --git a/string/string.h b/string/string.h
index fb073d0b03..79f8345c3a 100644
--- a/string/string.h
+++ b/string/string.h
@@ -152,12 +152,12 @@ extern size_t strxfrm (char *__restrict __dest,
 # include <bits/types/locale_t.h>
 
 /* Compare the collated forms of S1 and S2, using sorting rules from L.  */
-extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l)
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
      __THROW __attribute_pure__ __nonnull ((1, 2, 3));
 /* Put a transformation of SRC into no more than N bytes of DEST,
    using sorting rules from L.  */
 extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
-			 __locale_t __l) __THROW __nonnull ((2, 4));
+			 locale_t __l) __THROW __nonnull ((2, 4));
 #endif
 
 #if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8	\
@@ -424,7 +424,7 @@ extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
 
 #ifdef __USE_XOPEN2K8
 /* Translate error number to string according to the locale L.  */
-extern char *strerror_l (int __errnum, __locale_t __l) __THROW;
+extern char *strerror_l (int __errnum, locale_t __l) __THROW;
 #endif
 
 #ifdef __USE_MISC
diff --git a/string/strings.h b/string/strings.h
index 53d1b5c944..630b3adc23 100644
--- a/string/strings.h
+++ b/string/strings.h
@@ -125,13 +125,13 @@ extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
 # include <bits/types/locale_t.h>
 
 /* Compare S1 and S2, ignoring case, using collation rules from LOC.  */
-extern int strcasecmp_l (const char *__s1, const char *__s2, __locale_t __loc)
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
      __THROW __attribute_pure__ __nonnull ((1, 2, 3));
 
 /* Compare no more than N chars of S1 and S2, ignoring case, using
    collation rules from LOC.  */
 extern int strncasecmp_l (const char *__s1, const char *__s2,
-			  size_t __n, __locale_t __loc)
+			  size_t __n, locale_t __loc)
      __THROW __attribute_pure__ __nonnull ((1, 2, 4));
 #endif
 
diff --git a/string/strncase.c b/string/strncase.c
index 6cb996cf91..ba42b61bc5 100644
--- a/string/strncase.c
+++ b/string/strncase.c
@@ -36,7 +36,7 @@
 #endif
 
 #ifdef USE_IN_EXTENDED_LOCALE_MODEL
-# define LOCALE_PARAM , __locale_t loc
+# define LOCALE_PARAM , locale_t loc
 #else
 # define LOCALE_PARAM
 #endif
@@ -49,7 +49,7 @@ int
 __strncasecmp (const char *s1, const char *s2, size_t n LOCALE_PARAM)
 {
 #if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
-  __locale_t loc = _NL_CURRENT_LOCALE;
+  locale_t loc = _NL_CURRENT_LOCALE;
 #endif
   const unsigned char *p1 = (const unsigned char *) s1;
   const unsigned char *p2 = (const unsigned char *) s2;
diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c
index dd98a4caaf..7e04bfc14a 100644
--- a/string/strxfrm_l.c
+++ b/string/strxfrm_l.c
@@ -665,7 +665,7 @@ do_xfrm_cached (STRING_TYPE *dest, size_t n, const locale_data_t *l_data,
 }
 
 size_t
-STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l)
+STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, locale_t l)
 {
   locale_data_t l_data;
   struct __locale_data *current = l->__locales[LC_COLLATE];
diff --git a/sysdeps/ieee754/float128/strtof128_l.c b/sysdeps/ieee754/float128/strtof128_l.c
index 0f768a30de..d3d55ea9fa 100644
--- a/sysdeps/ieee754/float128/strtof128_l.c
+++ b/sysdeps/ieee754/float128/strtof128_l.c
@@ -22,7 +22,7 @@
 #include <bits/floatn.h>
 
 extern _Float128 ____strtof128_l_internal (const char *, char **,
-					   int, __locale_t);
+					   int, locale_t);
 
 #define	FLOAT		_Float128
 #define	FLT		FLT128
diff --git a/sysdeps/ieee754/float128/wcstof128.c b/sysdeps/ieee754/float128/wcstof128.c
index c5a17baadf..1d6326d910 100644
--- a/sysdeps/ieee754/float128/wcstof128.c
+++ b/sysdeps/ieee754/float128/wcstof128.c
@@ -25,6 +25,6 @@
 #include <bits/floatn.h>
 
 extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
-					   __locale_t);
+					   locale_t);
 
 #include "strtof128.c"
diff --git a/sysdeps/ieee754/float128/wcstof128_l.c b/sysdeps/ieee754/float128/wcstof128_l.c
index 670b6af0da..2df71848ec 100644
--- a/sysdeps/ieee754/float128/wcstof128_l.c
+++ b/sysdeps/ieee754/float128/wcstof128_l.c
@@ -25,6 +25,6 @@
 #include <bits/floatn.h>
 
 extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
-					   __locale_t);
+					   locale_t);
 
 #include "strtof128_l.c"
diff --git a/sysdeps/ieee754/ldbl-128ibm/strtold_l.c b/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
index 341de78063..b12151d579 100644
--- a/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
@@ -25,13 +25,13 @@
 #define FLOAT		long double
 #define FLT		LDBL
 #ifdef USE_WIDE_CHAR
-extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t);
+extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, locale_t);
 # define STRTOF		__new_wcstold_l
 # define __STRTOF	____new_wcstold_l
 # define ____STRTOF_INTERNAL ____wcstold_l_internal
 # define STRTOF_NAN	__wcstold_nan
 #else
-extern long double ____new_strtold_l (const char *, char **, __locale_t);
+extern long double ____new_strtold_l (const char *, char **, locale_t);
 # define STRTOF		__new_strtold_l
 # define __STRTOF	____new_strtold_l
 # define ____STRTOF_INTERNAL ____strtold_l_internal
diff --git a/sysdeps/ieee754/ldbl-64-128/strtold_l.c b/sysdeps/ieee754/ldbl-64-128/strtold_l.c
index 341de78063..b12151d579 100644
--- a/sysdeps/ieee754/ldbl-64-128/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-64-128/strtold_l.c
@@ -25,13 +25,13 @@
 #define FLOAT		long double
 #define FLT		LDBL
 #ifdef USE_WIDE_CHAR
-extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t);
+extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, locale_t);
 # define STRTOF		__new_wcstold_l
 # define __STRTOF	____new_wcstold_l
 # define ____STRTOF_INTERNAL ____wcstold_l_internal
 # define STRTOF_NAN	__wcstold_nan
 #else
-extern long double ____new_strtold_l (const char *, char **, __locale_t);
+extern long double ____new_strtold_l (const char *, char **, locale_t);
 # define STRTOF		__new_strtold_l
 # define __STRTOF	____new_strtold_l
 # define ____STRTOF_INTERNAL ____strtold_l_internal
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
index 84c4aeeed9..e11d6d1bd0 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
@@ -790,7 +790,7 @@ __nldbl_strfmon (char *s, size_t maxsize, const char *format, ...)
 
 ssize_t
 attribute_compat_text_section
-__nldbl___strfmon_l (char *s, size_t maxsize, __locale_t loc,
+__nldbl___strfmon_l (char *s, size_t maxsize, locale_t loc,
 		     const char *format, ...)
 {
   va_list ap;
@@ -818,7 +818,7 @@ libc_hidden_def (__nldbl___vstrfmon)
 
 ssize_t
 attribute_compat_text_section
-__nldbl___vstrfmon_l (char *s, size_t maxsize, __locale_t loc,
+__nldbl___vstrfmon_l (char *s, size_t maxsize, locale_t loc,
 		      const char *format, va_list ap)
 {
   ssize_t res;
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c b/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
index 0db0e8c42f..9281e17a37 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
@@ -2,7 +2,7 @@
 
 ssize_t
 attribute_hidden
-__strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
+__strfmon_l (char *s, size_t maxsize, locale_t loc, const char *format, ...)
 {
   va_list ap;
   ssize_t res;
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c b/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
index 33ff1ca5b5..29ad60c8a5 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
@@ -8,11 +8,11 @@
 
 extern double
 __strtod_l (const char *__restrict __nptr, char **__restrict __endptr,
-	    __locale_t __loc);
+	    locale_t __loc);
 
 double
 attribute_hidden
-__strtold_l (const char *nptr, char **endptr, __locale_t loc)
+__strtold_l (const char *nptr, char **endptr, locale_t loc)
 {
   return __strtod_l (nptr, endptr, loc);
 }
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c b/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
index e32d13a94b..7004ae79f4 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
@@ -6,7 +6,7 @@
 
 double
 attribute_hidden
-__wcstold_l (const wchar_t *nptr, wchar_t **endptr, __locale_t loc)
+__wcstold_l (const wchar_t *nptr, wchar_t **endptr, locale_t loc)
 {
   return __wcstod_l (nptr, endptr, loc);
 }
diff --git a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
index 964875a13b..5aa0d625c8 100644
--- a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
@@ -24,7 +24,7 @@
    or if defined USE_IN_EXTENDED_LOCALE_MODEL:
 
    int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4],
-                          __locale_t loc [r5]) */
+                          locale_t loc [r5]) */
 
 #ifndef STRCMP
 # define __STRCMP __strcasecmp
diff --git a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
index 224318720e..c453ccd290 100644
--- a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
@@ -24,7 +24,7 @@
    or if defined USE_IN_EXTENDED_LOCALE_MODEL:
 
    int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4],
-                          __locale_t loc [r5]) */
+                          locale_t loc [r5]) */
 
 #ifndef STRCMP
 # define __STRCMP __strcasecmp
diff --git a/sysdeps/x86_64/strcasecmp_l-nonascii.c b/sysdeps/x86_64/strcasecmp_l-nonascii.c
index 30e8969603..9ba9bc808c 100644
--- a/sysdeps/x86_64/strcasecmp_l-nonascii.c
+++ b/sysdeps/x86_64/strcasecmp_l-nonascii.c
@@ -1,7 +1,7 @@
 #include <string.h>
 
 extern int __strcasecmp_l_nonascii (const char *__s1, const char *__s2,
-				    __locale_t __loc);
+				    locale_t __loc);
 
 #define __strcasecmp_l __strcasecmp_l_nonascii
 #define USE_IN_EXTENDED_LOCALE_MODEL    1
diff --git a/sysdeps/x86_64/strncase_l-nonascii.c b/sysdeps/x86_64/strncase_l-nonascii.c
index 8664863778..e3d83a06cd 100644
--- a/sysdeps/x86_64/strncase_l-nonascii.c
+++ b/sysdeps/x86_64/strncase_l-nonascii.c
@@ -1,7 +1,7 @@
 #include <string.h>
 
 extern int __strncasecmp_l_nonascii (const char *__s1, const char *__s2,
-				     size_t __n, __locale_t __loc);
+				     size_t __n, locale_t __loc);
 
 #define __strncasecmp_l __strncasecmp_l_nonascii
 #define USE_IN_EXTENDED_LOCALE_MODEL    1
diff --git a/time/strftime_l.c b/time/strftime_l.c
index eb3efb8129..439b971747 100644
--- a/time/strftime_l.c
+++ b/time/strftime_l.c
@@ -284,7 +284,7 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */
 # undef _NL_CURRENT
 # define _NL_CURRENT(category, item) \
   (current->values[_NL_ITEM_INDEX (item)].string)
-# define LOCALE_PARAM , __locale_t loc
+# define LOCALE_PARAM , locale_t loc
 # define LOCALE_ARG , loc
 # define HELPER_LOCALE_ARG  , current
 #else
diff --git a/time/strptime_l.c b/time/strptime_l.c
index dbf4606982..185619e142 100644
--- a/time/strptime_l.c
+++ b/time/strptime_l.c
@@ -181,7 +181,7 @@ static const unsigned short int __mon_yday[2][13] =
 # undef _NL_CURRENT_WORD
 # define _NL_CURRENT_WORD(category, item) \
   (current->values[_NL_ITEM_INDEX (item)].word)
-# define LOCALE_PARAM , __locale_t locale
+# define LOCALE_PARAM , locale_t locale
 # define LOCALE_ARG , locale
 # define HELPER_LOCALE_ARG , current
 # define ISSPACE(Ch) __isspace_l (Ch, locale)
diff --git a/time/time.h b/time/time.h
index 17cc1e6614..f12a4613fc 100644
--- a/time/time.h
+++ b/time/time.h
@@ -104,13 +104,13 @@ extern char *strptime (const char *__restrict __s,
 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
 			  const char *__restrict __format,
 			  const struct tm *__restrict __tp,
-			  __locale_t __loc) __THROW;
+			  locale_t __loc) __THROW;
 #endif
 
 #ifdef __USE_GNU
 extern char *strptime_l (const char *__restrict __s,
 			 const char *__restrict __fmt, struct tm *__tp,
-			 __locale_t __loc) __THROW;
+			 locale_t __loc) __THROW;
 #endif
 
 
diff --git a/wcsmbs/mbsrtowcs_l.c b/wcsmbs/mbsrtowcs_l.c
index 4ffb652b26..33b432a295 100644
--- a/wcsmbs/mbsrtowcs_l.c
+++ b/wcsmbs/mbsrtowcs_l.c
@@ -38,7 +38,7 @@
 size_t
 attribute_hidden
 __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len, mbstate_t *ps,
-	       __locale_t l)
+	       locale_t l)
 {
   struct __gconv_step_data data;
   size_t result;
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index 9054661788..4f16f98b1d 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -120,10 +120,10 @@ extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
 /* Similar to the two functions above but take the information from
    the provided locale and not the global locale.  */
 extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
-			 __locale_t __loc) __THROW;
+			 locale_t __loc) __THROW;
 
 extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
-			  size_t __n, __locale_t __loc) __THROW;
+			  size_t __n, locale_t __loc) __THROW;
 #endif
 
 /* Compare S1 and S2, both interpreted as appropriate to the
@@ -142,13 +142,13 @@ extern size_t wcsxfrm (wchar_t *__restrict __s1,
 /* Compare S1 and S2, both interpreted as appropriate to the
    LC_COLLATE category of the given locale.  */
 extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
-		      __locale_t __loc) __THROW;
+		      locale_t __loc) __THROW;
 
 /* Transform S2 into array pointed to by S1 such that if wcscmp is
    applied to two transformed strings the result is the as applying
    `wcscoll' to the original strings.  */
 extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
-			 size_t __n, __locale_t __loc) __THROW;
+			 size_t __n, locale_t __loc) __THROW;
 
 /* Duplicate S, returning an identical malloc'd string.  */
 extern wchar_t *wcsdup (const wchar_t *__s) __THROW __attribute_malloc__;
@@ -441,39 +441,39 @@ extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
    by the POSIX.1-2008 extended locale API.  */
 extern long int wcstol_l (const wchar_t *__restrict __nptr,
 			  wchar_t **__restrict __endptr, int __base,
-			  __locale_t __loc) __THROW;
+			  locale_t __loc) __THROW;
 
 extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
 				    wchar_t **__restrict __endptr,
-				    int __base, __locale_t __loc) __THROW;
+				    int __base, locale_t __loc) __THROW;
 
 __extension__
 extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
 				wchar_t **__restrict __endptr,
-				int __base, __locale_t __loc) __THROW;
+				int __base, locale_t __loc) __THROW;
 
 __extension__
 extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
 					  wchar_t **__restrict __endptr,
-					  int __base, __locale_t __loc)
+					  int __base, locale_t __loc)
      __THROW;
 
 extern double wcstod_l (const wchar_t *__restrict __nptr,
-			wchar_t **__restrict __endptr, __locale_t __loc)
+			wchar_t **__restrict __endptr, locale_t __loc)
      __THROW;
 
 extern float wcstof_l (const wchar_t *__restrict __nptr,
-		       wchar_t **__restrict __endptr, __locale_t __loc)
+		       wchar_t **__restrict __endptr, locale_t __loc)
      __THROW;
 
 extern long double wcstold_l (const wchar_t *__restrict __nptr,
 			      wchar_t **__restrict __endptr,
-			      __locale_t __loc) __THROW;
+			      locale_t __loc) __THROW;
 
 # if __HAVE_FLOAT128
 extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr,
 			      wchar_t **__restrict __endptr,
-			      __locale_t __loc) __THROW;
+			      locale_t __loc) __THROW;
 # endif
 #endif	/* use GNU */
 
@@ -775,7 +775,7 @@ extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
 			  const wchar_t *__restrict __format,
 			  const struct tm *__restrict __tp,
-			  __locale_t __loc) __THROW;
+			  locale_t __loc) __THROW;
 # endif
 
 /* Define some macros helping to catch buffer overflows.  */
diff --git a/wcsmbs/wcscasecmp.c b/wcsmbs/wcscasecmp.c
index 0f02e505c0..e5db0091ec 100644
--- a/wcsmbs/wcscasecmp.c
+++ b/wcsmbs/wcscasecmp.c
@@ -35,7 +35,7 @@
 #endif
 
 #ifdef USE_IN_EXTENDED_LOCALE_MODEL
-# define LOCALE_PARAM , __locale_t loc
+# define LOCALE_PARAM , locale_t loc
 #else
 # define LOCALE_PARAM
 #endif
diff --git a/wcsmbs/wcsncase.c b/wcsmbs/wcsncase.c
index 945434ce5a..82fc31bb68 100644
--- a/wcsmbs/wcsncase.c
+++ b/wcsmbs/wcsncase.c
@@ -37,7 +37,7 @@
 #endif
 
 #ifdef USE_IN_EXTENDED_LOCALE_MODEL
-# define LOCALE_PARAM , __locale_t loc
+# define LOCALE_PARAM , locale_t loc
 #else
 # define LOCALE_PARAM
 #endif
diff --git a/wcsmbs/wcstod.c b/wcsmbs/wcstod.c
index 72fa7eaaa4..4604f51621 100644
--- a/wcsmbs/wcstod.c
+++ b/wcsmbs/wcstod.c
@@ -23,6 +23,6 @@
 #define	USE_WIDE_CHAR	1
 
 extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
-				     __locale_t);
+				     locale_t);
 
 #include <stdlib/strtod.c>
diff --git a/wcsmbs/wcstod_l.c b/wcsmbs/wcstod_l.c
index 1d5c67cf36..7790f5abb7 100644
--- a/wcsmbs/wcstod_l.c
+++ b/wcsmbs/wcstod_l.c
@@ -22,7 +22,7 @@
 
 
 extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
-				     __locale_t);
+				     locale_t);
 
 #define	USE_WIDE_CHAR	1
 
diff --git a/wcsmbs/wcstof.c b/wcsmbs/wcstof.c
index 67c16e0cfd..e91c09cd53 100644
--- a/wcsmbs/wcstof.c
+++ b/wcsmbs/wcstof.c
@@ -22,6 +22,6 @@
 #define	USE_WIDE_CHAR	1
 
 extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
-				    __locale_t);
+				    locale_t);
 
 #include <stdlib/strtof.c>
diff --git a/wcsmbs/wcstof_l.c b/wcsmbs/wcstof_l.c
index d430bf1c3b..143b716d07 100644
--- a/wcsmbs/wcstof_l.c
+++ b/wcsmbs/wcstof_l.c
@@ -24,6 +24,6 @@
 #define	USE_WIDE_CHAR	1
 
 extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
-				    __locale_t);
+				    locale_t);
 
 #include <stdlib/strtof_l.c>
diff --git a/wcsmbs/wcstol_l.c b/wcsmbs/wcstol_l.c
index 744f8f85b7..42bd8429d0 100644
--- a/wcsmbs/wcstol_l.c
+++ b/wcsmbs/wcstol_l.c
@@ -24,6 +24,6 @@
 #define	USE_WIDE_CHAR	1
 
 extern long int ____wcstol_l_internal (const wchar_t *, wchar_t **, int, int,
-				       __locale_t);
+				       locale_t);
 
 #include <stdlib/strtol_l.c>
diff --git a/wcsmbs/wcstold.c b/wcsmbs/wcstold.c
index 816f43bf69..7a14cd2871 100644
--- a/wcsmbs/wcstold.c
+++ b/wcsmbs/wcstold.c
@@ -22,6 +22,6 @@
 #define USE_WIDE_CHAR	1
 
 extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
-					   __locale_t);
+					   locale_t);
 
 #include <stdlib/strtold.c>
diff --git a/wcsmbs/wcstold_l.c b/wcsmbs/wcstold_l.c
index 86f63e8801..a7ab025792 100644
--- a/wcsmbs/wcstold_l.c
+++ b/wcsmbs/wcstold_l.c
@@ -23,6 +23,6 @@
 #define USE_WIDE_CHAR	1
 
 extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
-					   __locale_t);
+					   locale_t);
 
 #include <strtold_l.c>
diff --git a/wcsmbs/wcstoll_l.c b/wcsmbs/wcstoll_l.c
index 225153f547..598d3f5fff 100644
--- a/wcsmbs/wcstoll_l.c
+++ b/wcsmbs/wcstoll_l.c
@@ -24,6 +24,6 @@
 #define QUAD	1
 
 extern long long int ____wcstoll_l_internal (const wchar_t *, wchar_t **,
-					     int, int, __locale_t);
+					     int, int, locale_t);
 
 #include <wcstol_l.c>
diff --git a/wcsmbs/wcstoul_l.c b/wcsmbs/wcstoul_l.c
index 0847284bc2..f9f3808b20 100644
--- a/wcsmbs/wcstoul_l.c
+++ b/wcsmbs/wcstoul_l.c
@@ -24,6 +24,6 @@
 #define UNSIGNED	1
 
 extern unsigned long int ____wcstoul_l_internal (const wchar_t *, wchar_t **,
-						 int, int, __locale_t);
+						 int, int, locale_t);
 
 #include "wcstol_l.c"
diff --git a/wcsmbs/wcstoull_l.c b/wcsmbs/wcstoull_l.c
index 532d01a250..412a9fcf0a 100644
--- a/wcsmbs/wcstoull_l.c
+++ b/wcsmbs/wcstoull_l.c
@@ -25,6 +25,6 @@
 
 extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
 						       wchar_t **, int, int,
-						       __locale_t);
+						       locale_t);
 
 #include <wcstoll_l.c>
diff --git a/wctype/iswctype_l.c b/wctype/iswctype_l.c
index 9a5daecda5..0f85264087 100644
--- a/wctype/iswctype_l.c
+++ b/wctype/iswctype_l.c
@@ -24,7 +24,7 @@
 
 
 int
-__iswctype_l (wint_t wc, wctype_t desc, __locale_t locale)
+__iswctype_l (wint_t wc, wctype_t desc, locale_t locale)
 {
   /* If the user passes in an invalid DESC valid (the one returned from
      `__wctype_l' in case of an error) simply return 0.  */
diff --git a/wctype/towctrans_l.c b/wctype/towctrans_l.c
index f45f195f07..1c6589747e 100644
--- a/wctype/towctrans_l.c
+++ b/wctype/towctrans_l.c
@@ -23,7 +23,7 @@
 #include "wchar-lookup.h"
 
 wint_t
-__towctrans_l (wint_t wc, wctrans_t desc, __locale_t locale)
+__towctrans_l (wint_t wc, wctrans_t desc, locale_t locale)
 {
   /* If the user passes in an invalid DESC valid (the one returned from
      `__wctrans_l' in case of an error) simply return the value.  */
diff --git a/wctype/wcfuncs_l.c b/wctype/wcfuncs_l.c
index 994813bb62..d45dc10324 100644
--- a/wctype/wcfuncs_l.c
+++ b/wctype/wcfuncs_l.c
@@ -27,7 +27,7 @@
 /* Provide real-function versions of all the wctype macros.  */
 
 #define	func(name, type) \
-  int __isw##name (wint_t wc, __locale_t locale)			      \
+  int __isw##name (wint_t wc, locale_t locale)				      \
   {									      \
     if (isascii (wc))							      \
       return is##name ((int) wc, locale);				      \
@@ -54,7 +54,7 @@ func (upper_l, __ISwupper)
 func (xdigit_l, __ISwxdigit)
 
 wint_t
-(__towlower_l) (wint_t wc, __locale_t locale)
+(__towlower_l) (wint_t wc, locale_t locale)
 {
   size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + __TOW_tolower;
   const char *desc = locale->__locales[LC_CTYPE]->values[i].string;
@@ -64,7 +64,7 @@ libc_hidden_def (__towlower_l)
 weak_alias (__towlower_l, towlower_l)
 
 wint_t
-(__towupper_l) (wint_t wc, __locale_t locale)
+(__towupper_l) (wint_t wc, locale_t locale)
 {
   size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + __TOW_toupper;
   const char *desc = locale->__locales[LC_CTYPE]->values[i].string;
diff --git a/wctype/wctrans_l.c b/wctype/wctrans_l.c
index 10a960bac1..e64c303c85 100644
--- a/wctype/wctrans_l.c
+++ b/wctype/wctrans_l.c
@@ -21,7 +21,7 @@
 #include "../locale/localeinfo.h"
 
 wctrans_t
-__wctrans_l (const char *property, __locale_t locale)
+__wctrans_l (const char *property, locale_t locale)
 {
   const char *names;
   size_t cnt;
diff --git a/wctype/wctype.h b/wctype/wctype.h
index 7945795b44..3bcf9c6a3a 100644
--- a/wctype/wctype.h
+++ b/wctype/wctype.h
@@ -60,66 +60,66 @@ extern wint_t towctrans (wint_t __wc, wctrans_t __desc) __THROW;
 
 /* Test for any wide character for which `iswalpha' or `iswdigit' is
    true.  */
-extern int iswalnum_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswalnum_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character for which `iswupper' or 'iswlower' is
    true, or any wide character that is one of a locale-specific set of
    wide-characters for which none of `iswcntrl', `iswdigit',
    `iswpunct', or `iswspace' is true.  */
-extern int iswalpha_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswalpha_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any control wide character.  */
-extern int iswcntrl_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswcntrl_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character that corresponds to a decimal-digit
    character.  */
-extern int iswdigit_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswdigit_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character for which `iswprint' is true and
    `iswspace' is false.  */
-extern int iswgraph_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswgraph_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character that corresponds to a lowercase letter
    or is one of a locale-specific set of wide characters for which
    none of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true.  */
-extern int iswlower_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswlower_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any printing wide character.  */
-extern int iswprint_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswprint_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any printing wide character that is one of a
    locale-specific et of wide characters for which neither `iswspace'
    nor `iswalnum' is true.  */
-extern int iswpunct_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswpunct_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character that corresponds to a locale-specific
    set of wide characters for which none of `iswalnum', `iswgraph', or
    `iswpunct' is true.  */
-extern int iswspace_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswspace_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character that corresponds to an uppercase letter
    or is one of a locale-specific set of wide character for which none
    of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true.  */
-extern int iswupper_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswupper_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character that corresponds to a hexadecimal-digit
    character equivalent to that performed be the functions described
    in the previous subclause.  */
-extern int iswxdigit_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswxdigit_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Test for any wide character that corresponds to a standard blank
    wide character or a locale-specific set of wide characters for
    which `iswalnum' is false.  */
-extern int iswblank_l (wint_t __wc, __locale_t __locale) __THROW;
+extern int iswblank_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Construct value that describes a class of wide characters identified
    by the string argument PROPERTY.  */
-extern wctype_t wctype_l (const char *__property, __locale_t __locale)
+extern wctype_t wctype_l (const char *__property, locale_t __locale)
      __THROW;
 
 /* Determine whether the wide-character WC has the property described by
    DESC.  */
-extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale)
+extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale)
      __THROW;
 
 /*
@@ -127,19 +127,19 @@ extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale)
  */
 
 /* Converts an uppercase letter to the corresponding lowercase letter.  */
-extern wint_t towlower_l (wint_t __wc, __locale_t __locale) __THROW;
+extern wint_t towlower_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Converts an lowercase letter to the corresponding uppercase letter.  */
-extern wint_t towupper_l (wint_t __wc, __locale_t __locale) __THROW;
+extern wint_t towupper_l (wint_t __wc, locale_t __locale) __THROW;
 
 /* Construct value that describes a mapping between wide characters
    identified by the string argument PROPERTY.  */
-extern wctrans_t wctrans_l (const char *__property, __locale_t __locale)
+extern wctrans_t wctrans_l (const char *__property, locale_t __locale)
      __THROW;
 
 /* Map the wide character WC using the mapping described by DESC.  */
 extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
-			   __locale_t __locale) __THROW;
+			   locale_t __locale) __THROW;
 
 # endif /* Use POSIX 2008.  */
 
diff --git a/wctype/wctype_l.c b/wctype/wctype_l.c
index c17a1e9ce6..ea60ba315e 100644
--- a/wctype/wctype_l.c
+++ b/wctype/wctype_l.c
@@ -23,7 +23,7 @@
 #include <locale/localeinfo.h>
 
 wctype_t
-__wctype_l (const char *property, __locale_t locale)
+__wctype_l (const char *property, locale_t locale)
 {
   const char *names;
   unsigned int result;