[11/21] wcsmbs/bits/wchar2{, -decl}.h: Clearly separate declaration from definitions

Message ID 20230620181910.1506893-12-fberat@redhat.com
State Committed
Commit 04d85febb9dd61a65045e10a8ba4add5367b239d
Headers
Series Allow glibc to be built with _FORTIFY_SOURCE |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Frederic Berat June 20, 2023, 6:18 p.m. UTC
  This will enable __REDIRECT_FORTIFY* macros to be used when _FORTIFY_SOURCE
is set.

Routine declarations that were in bits/wchar2.h are moved into the
bits/wchar2-decl.h file.
The file is now included into include/wchar.h irrespectively from
fortification.
---
 include/wchar.h           |   1 +
 wcsmbs/bits/wchar2-decl.h | 172 ++++++++++++++++++++++++++++++++++
 wcsmbs/bits/wchar2.h      | 192 --------------------------------------
 3 files changed, 173 insertions(+), 192 deletions(-)
  

Comments

Siddhesh Poyarekar June 22, 2023, 4:19 a.m. UTC | #1
On 2023-06-20 14:18, Frédéric Bérat wrote:
> This will enable __REDIRECT_FORTIFY* macros to be used when _FORTIFY_SOURCE
> is set.
> 
> Routine declarations that were in bits/wchar2.h are moved into the
> bits/wchar2-decl.h file.
> The file is now included into include/wchar.h irrespectively from
> fortification.
> ---

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>

>   include/wchar.h           |   1 +
>   wcsmbs/bits/wchar2-decl.h | 172 ++++++++++++++++++++++++++++++++++
>   wcsmbs/bits/wchar2.h      | 192 --------------------------------------
>   3 files changed, 173 insertions(+), 192 deletions(-)
> 
> diff --git a/include/wchar.h b/include/wchar.h
> index ff4ae52045..7b763bc24f 100644
> --- a/include/wchar.h
> +++ b/include/wchar.h
> @@ -12,6 +12,7 @@
>   # ifndef _ISOMAC
>   
>   #include <bits/floatn.h>
> +#include <bits/wchar2-decl.h>
>   #include <stdbool.h>
>   
>   extern __typeof (wcscasecmp_l) __wcscasecmp_l;
> diff --git a/wcsmbs/bits/wchar2-decl.h b/wcsmbs/bits/wchar2-decl.h
> index 3a23069d3e..f3a2fd3c99 100644
> --- a/wcsmbs/bits/wchar2-decl.h
> +++ b/wcsmbs/bits/wchar2-decl.h
> @@ -27,8 +27,27 @@
>   extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1,
>   			       const wchar_t *__restrict __s2, size_t __n,
>   			       size_t __ns1) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
> +				(wchar_t *__restrict __s1,
> +				 const wchar_t *__restrict __s2, size_t __n),
> +				wmemcpy);
> +extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
> +				(wchar_t *__restrict __s1,
> +				 const wchar_t *__restrict __s2, size_t __n,
> +				 size_t __ns1), __wmemcpy_chk)
> +     __warnattr ("wmemcpy called with length bigger than size of destination "
> +		 "buffer");
> +
>   extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
>   				size_t __n, size_t __ns1) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
> +						   const wchar_t *__s2,
> +						   size_t __n), wmemmove);
> +extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
> +				(wchar_t *__s1, const wchar_t *__s2,
> +				 size_t __n, size_t __ns1), __wmemmove_chk)
> +     __warnattr ("wmemmove called with length bigger than size of destination "
> +		 "buffer");
>   
>   
>   #ifdef __USE_GNU
> @@ -36,39 +55,107 @@ extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
>   extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1,
>   				const wchar_t *__restrict __s2, size_t __n,
>   				size_t __ns1) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
> +				(wchar_t *__restrict __s1,
> +				 const wchar_t *__restrict __s2,
> +				 size_t __n), wmempcpy);
> +extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
> +				(wchar_t *__restrict __s1,
> +				 const wchar_t *__restrict __s2, size_t __n,
> +				 size_t __ns1), __wmempcpy_chk)
> +     __warnattr ("wmempcpy called with length bigger than size of destination "
> +		 "buffer");
>   
>   #endif
>   
>   
>   extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
>   			       size_t __ns) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
> +							  size_t __n), wmemset);
> +extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
> +				(wchar_t *__s, wchar_t __c, size_t __n,
> +				 size_t __ns), __wmemset_chk)
> +     __warnattr ("wmemset called with length bigger than size of destination "
> +		 "buffer");
> +
>   extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest,
>   			      const wchar_t *__restrict __src,
>   			      size_t __n) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src), wcscpy);
> +
>   extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
>   			      const wchar_t *__restrict __src,
>   			      size_t __destlen) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src), wcpcpy);
> +
>   extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest,
>   			       const wchar_t *__restrict __src, size_t __n,
>   			       size_t __destlen) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src,
> +				 size_t __n), wcsncpy);
> +extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src,
> +				 size_t __n, size_t __destlen), __wcsncpy_chk)
> +     __warnattr ("wcsncpy called with length bigger than size of destination "
> +		 "buffer");
> +
>   extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest,
>   			       const wchar_t *__restrict __src, size_t __n,
>   			       size_t __destlen) __THROW;
> +
> +extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src,
> +				 size_t __n), wcpncpy);
> +extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src,
> +				 size_t __n, size_t __destlen), __wcpncpy_chk)
> +     __warnattr ("wcpncpy called with length bigger than size of destination "
> +		 "buffer");
> +
>   extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest,
>   			      const wchar_t *__restrict __src,
>   			      size_t __destlen) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src), wcscat);
> +
>   extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest,
>   			       const wchar_t *__restrict __src,
>   			       size_t __n, size_t __destlen) __THROW;
> +extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
> +				(wchar_t *__restrict __dest,
> +				 const wchar_t *__restrict __src,
> +				 size_t __n), wcsncat);
> +
>   extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
>   			   int __flag, size_t __s_len,
>   			   const wchar_t *__restrict __format, ...)
>        __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
> +extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
> +				(wchar_t *__restrict __s, size_t __n,
> +				 const wchar_t *__restrict __fmt, ...),
> +				swprintf);
> +
>   extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
>   			    int __flag, size_t __s_len,
>   			    const wchar_t *__restrict __format,
>   			    __gnuc_va_list __arg)
>        __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
> +extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
> +				(wchar_t *__restrict __s, size_t __n,
> +				 const wchar_t *__restrict __fmt,
> +				 __gnuc_va_list __ap), vswprintf);
> +
>   
>   #if __USE_FORTIFY_LEVEL > 1
>   
> @@ -86,26 +173,72 @@ extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format,
>   
>   extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n,
>   			      __FILE *__restrict __stream) __wur;
> +extern wchar_t *__REDIRECT (__fgetws_alias,
> +			    (wchar_t *__restrict __s, int __n,
> +			     __FILE *__restrict __stream), fgetws) __wur;
> +extern wchar_t *__REDIRECT (__fgetws_chk_warn,
> +			    (wchar_t *__restrict __s, size_t __size, int __n,
> +			     __FILE *__restrict __stream), __fgetws_chk)
> +     __wur __warnattr ("fgetws called with bigger size than length "
> +		       "of destination buffer");
>   
>   #ifdef __USE_GNU
>   
>   extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size,
>   				       int __n, __FILE *__restrict __stream)
>          __wur;
> +extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
> +			    (wchar_t *__restrict __s, int __n,
> +			     __FILE *__restrict __stream), fgetws_unlocked)
> +  __wur;
> +extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
> +			    (wchar_t *__restrict __s, size_t __size, int __n,
> +			     __FILE *__restrict __stream),
> +			    __fgetws_unlocked_chk)
> +     __wur __warnattr ("fgetws_unlocked called with bigger size than length "
> +		       "of destination buffer");
>   
>   #endif
>   
>   extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
>   			     mbstate_t *__restrict __p,
>   			     size_t __buflen) __THROW __wur;
> +extern size_t __REDIRECT_NTH (__wcrtomb_alias,
> +				      (char *__restrict __s, wchar_t __wchar,
> +				      mbstate_t *__restrict __ps), wcrtomb) __wur;
> +
>   extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst,
>   			       const char **__restrict __src,
>   			       size_t __len, mbstate_t *__restrict __ps,
>   			       size_t __dstlen) __THROW;
> +extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
> +			      (wchar_t *__restrict __dst,
> +			       const char **__restrict __src,
> +			       size_t __len, mbstate_t *__restrict __ps),
> +			      mbsrtowcs);
> +extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
> +			      (wchar_t *__restrict __dst,
> +			       const char **__restrict __src,
> +			       size_t __len, mbstate_t *__restrict __ps,
> +			       size_t __dstlen), __mbsrtowcs_chk)
> +     __warnattr ("mbsrtowcs called with dst buffer smaller than len "
> +		 "* sizeof (wchar_t)");
> +
>   extern size_t __wcsrtombs_chk (char *__restrict __dst,
>   			       const wchar_t **__restrict __src,
>   			       size_t __len, mbstate_t *__restrict __ps,
>   			       size_t __dstlen) __THROW;
> +extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
> +			      (char *__restrict __dst,
> +			       const wchar_t **__restrict __src,
> +			       size_t __len, mbstate_t *__restrict __ps),
> +			      wcsrtombs);
> +extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
> +			      (char *__restrict __dst,
> +			       const wchar_t **__restrict __src,
> +			       size_t __len, mbstate_t *__restrict __ps,
> +			       size_t __dstlen), __wcsrtombs_chk)
> +    __warnattr ("wcsrtombs called with dst buffer smaller than len");
>   
>   #ifdef	__USE_XOPEN2K8
>   
> @@ -113,12 +246,51 @@ extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst,
>   				const char **__restrict __src, size_t __nmc,
>   				size_t __len, mbstate_t *__restrict __ps,
>   				size_t __dstlen) __THROW;
> +extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
> +			      (wchar_t *__restrict __dst,
> +			       const char **__restrict __src, size_t __nmc,
> +			       size_t __len, mbstate_t *__restrict __ps),
> +			      mbsnrtowcs);
> +extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
> +			      (wchar_t *__restrict __dst,
> +			       const char **__restrict __src, size_t __nmc,
> +			       size_t __len, mbstate_t *__restrict __ps,
> +			       size_t __dstlen), __mbsnrtowcs_chk)
> +     __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
> +		 "* sizeof (wchar_t)");
> +
>   extern size_t __wcsnrtombs_chk (char *__restrict __dst,
>   				const wchar_t **__restrict __src,
>   				size_t __nwc, size_t __len,
>   				mbstate_t *__restrict __ps, size_t __dstlen)
>          __THROW;
> +extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
> +			      (char *__restrict __dst,
> +			       const wchar_t **__restrict __src,
> +			       size_t __nwc, size_t __len,
> +			       mbstate_t *__restrict __ps), wcsnrtombs);
> +extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
> +			      (char *__restrict __dst,
> +			       const wchar_t **__restrict __src,
> +			       size_t __nwc, size_t __len,
> +			       mbstate_t *__restrict __ps,
> +			       size_t __dstlen), __wcsnrtombs_chk)
> +     __warnattr ("wcsnrtombs called with dst buffer smaller than len");
>   
>   #endif
>   
> +#ifdef __USE_MISC
> +extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
> +			     size_t __destlen) __THROW;
> +extern size_t __REDIRECT_NTH (__wcslcpy_alias,
> +			      (wchar_t *__dest, const wchar_t *__src,
> +			       size_t __n), wcslcpy);
> +
> +extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
> +			     size_t __destlen) __THROW;
> +extern size_t __REDIRECT_NTH (__wcslcat_alias,
> +			      (wchar_t *__dest, const wchar_t *__src,
> +			       size_t __n), wcslcat);
> +#endif /* __USE_MISC */
> +
>   #endif /* bits/wchar2-decl.h.  */
> diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h
> index 9def8e9852..6e6234d606 100644
> --- a/wcsmbs/bits/wchar2.h
> +++ b/wcsmbs/bits/wchar2.h
> @@ -20,18 +20,6 @@
>   # error "Never include <bits/wchar2.h> directly; use <wchar.h> instead."
>   #endif
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
> -				(wchar_t *__restrict __s1,
> -				 const wchar_t *__restrict __s2, size_t __n),
> -				wmemcpy);
> -extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
> -				(wchar_t *__restrict __s1,
> -				 const wchar_t *__restrict __s2, size_t __n,
> -				 size_t __ns1), __wmemcpy_chk)
> -     __warnattr ("wmemcpy called with length bigger than size of destination "
> -		 "buffer");
> -
>   __fortify_function wchar_t *
>   __NTH (wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
>   		size_t __n))
> @@ -41,16 +29,6 @@ __NTH (wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
>   			    __s1, __s2, __n);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
> -						   const wchar_t *__s2,
> -						   size_t __n), wmemmove);
> -extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
> -				(wchar_t *__s1, const wchar_t *__s2,
> -				 size_t __n, size_t __ns1), __wmemmove_chk)
> -     __warnattr ("wmemmove called with length bigger than size of destination "
> -		 "buffer");
> -
>   __fortify_function wchar_t *
>   __NTH (wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n))
>   {
> @@ -59,19 +37,7 @@ __NTH (wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n))
>   			    __s1, __s2, __n);
>   }
>   
> -
>   #ifdef __USE_GNU
> -extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
> -				(wchar_t *__restrict __s1,
> -				 const wchar_t *__restrict __s2,
> -				 size_t __n), wmempcpy);
> -extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
> -				(wchar_t *__restrict __s1,
> -				 const wchar_t *__restrict __s2, size_t __n,
> -				 size_t __ns1), __wmempcpy_chk)
> -     __warnattr ("wmempcpy called with length bigger than size of destination "
> -		 "buffer");
> -
>   __fortify_function wchar_t *
>   __NTH (wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
>   		 size_t __n))
> @@ -82,15 +48,6 @@ __NTH (wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
>   }
>   #endif
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
> -						  size_t __n), wmemset);
> -extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
> -				(wchar_t *__s, wchar_t __c, size_t __n,
> -				 size_t __ns), __wmemset_chk)
> -     __warnattr ("wmemset called with length bigger than size of destination "
> -		 "buffer");
> -
>   __fortify_function wchar_t *
>   __NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
>   {
> @@ -99,11 +56,6 @@ __NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
>   			    __s, __c, __n);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src), wcscpy);
> -
>   __fortify_function wchar_t *
>   __NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
>   {
> @@ -113,11 +65,6 @@ __NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
>     return __wcscpy_alias (__dest, __src);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src), wcpcpy);
> -
>   __fortify_function wchar_t *
>   __NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
>   {
> @@ -127,18 +74,6 @@ __NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
>     return __wcpcpy_alias (__dest, __src);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src,
> -				 size_t __n), wcsncpy);
> -extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src,
> -				 size_t __n, size_t __destlen), __wcsncpy_chk)
> -     __warnattr ("wcsncpy called with length bigger than size of destination "
> -		 "buffer");
> -
>   __fortify_function wchar_t *
>   __NTH (wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   		size_t __n))
> @@ -148,18 +83,6 @@ __NTH (wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   			    __dest, __src, __n);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src,
> -				 size_t __n), wcpncpy);
> -extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src,
> -				 size_t __n, size_t __destlen), __wcpncpy_chk)
> -     __warnattr ("wcpncpy called with length bigger than size of destination "
> -		 "buffer");
> -
>   __fortify_function wchar_t *
>   __NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   		size_t __n))
> @@ -169,11 +92,6 @@ __NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   			    __dest, __src, __n);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src), wcscat);
> -
>   __fortify_function wchar_t *
>   __NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
>   {
> @@ -183,12 +101,6 @@ __NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
>     return __wcscat_alias (__dest, __src);
>   }
>   
> -
> -extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
> -				(wchar_t *__restrict __dest,
> -				 const wchar_t *__restrict __src,
> -				 size_t __n), wcsncat);
> -
>   __fortify_function wchar_t *
>   __NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   		size_t __n))
> @@ -200,12 +112,6 @@ __NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   }
>   
>   #ifdef __USE_MISC
> -extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
> -			     size_t __destlen) __THROW;
> -extern size_t __REDIRECT_NTH (__wcslcpy_alias,
> -			      (wchar_t *__dest, const wchar_t *__src,
> -			       size_t __n), wcslcpy);
> -
>   __fortify_function size_t
>   __NTH (wcslcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   		size_t __n))
> @@ -219,12 +125,6 @@ __NTH (wcslcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>     return __wcslcpy_alias (__dest, __src, __n);
>   }
>   
> -extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
> -			     size_t __destlen) __THROW;
> -extern size_t __REDIRECT_NTH (__wcslcat_alias,
> -			      (wchar_t *__dest, const wchar_t *__src,
> -			       size_t __n), wcslcat);
> -
>   __fortify_function size_t
>   __NTH (wcslcat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   		size_t __n))
> @@ -239,12 +139,6 @@ __NTH (wcslcat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
>   }
>   #endif /* __USE_MISC */
>   
> -
> -extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
> -				(wchar_t *__restrict __s, size_t __n,
> -				 const wchar_t *__restrict __fmt, ...),
> -				swprintf);
> -
>   #ifdef __va_arg_pack
>   __fortify_function int
>   __NTH (swprintf (wchar_t *__restrict __s, size_t __n,
> @@ -265,12 +159,6 @@ __NTH (swprintf (wchar_t *__restrict __s, size_t __n,
>      : swprintf (s, n, __VA_ARGS__))
>   #endif
>   
> -
> -extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
> -				(wchar_t *__restrict __s, size_t __n,
> -				 const wchar_t *__restrict __fmt,
> -				 __gnuc_va_list __ap), vswprintf);
> -
>   __fortify_function int
>   __NTH (vswprintf (wchar_t *__restrict __s, size_t __n,
>   		  const wchar_t *__restrict __fmt, __gnuc_va_list __ap))
> @@ -319,16 +207,6 @@ vfwprintf (__FILE *__restrict __stream,
>   }
>   
>   #endif
> -
> -extern wchar_t *__REDIRECT (__fgetws_alias,
> -			    (wchar_t *__restrict __s, int __n,
> -			     __FILE *__restrict __stream), fgetws) __wur;
> -extern wchar_t *__REDIRECT (__fgetws_chk_warn,
> -			    (wchar_t *__restrict __s, size_t __size, int __n,
> -			     __FILE *__restrict __stream), __fgetws_chk)
> -     __wur __warnattr ("fgetws called with bigger size than length "
> -		       "of destination buffer");
> -
>   __fortify_function __wur wchar_t *
>   fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
>   {
> @@ -341,17 +219,6 @@ fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
>   }
>   
>   #ifdef __USE_GNU
> -extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
> -			    (wchar_t *__restrict __s, int __n,
> -			     __FILE *__restrict __stream), fgetws_unlocked)
> -  __wur;
> -extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
> -			    (wchar_t *__restrict __s, size_t __size, int __n,
> -			     __FILE *__restrict __stream),
> -			    __fgetws_unlocked_chk)
> -     __wur __warnattr ("fgetws_unlocked called with bigger size than length "
> -		       "of destination buffer");
> -
>   __fortify_function __wur wchar_t *
>   fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
>   {
> @@ -365,11 +232,6 @@ fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
>   }
>   #endif
>   
> -
> -extern size_t __REDIRECT_NTH (__wcrtomb_alias,
> -			      (char *__restrict __s, wchar_t __wchar,
> -			       mbstate_t *__restrict __ps), wcrtomb) __wur;
> -
>   __fortify_function __wur size_t
>   __NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
>   		mbstate_t *__restrict __ps))
> @@ -387,20 +249,6 @@ __NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
>     return __wcrtomb_alias (__s, __wchar, __ps);
>   }
>   
> -
> -extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
> -			      (wchar_t *__restrict __dst,
> -			       const char **__restrict __src,
> -			       size_t __len, mbstate_t *__restrict __ps),
> -			      mbsrtowcs);
> -extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
> -			      (wchar_t *__restrict __dst,
> -			       const char **__restrict __src,
> -			       size_t __len, mbstate_t *__restrict __ps,
> -			       size_t __dstlen), __mbsrtowcs_chk)
> -     __warnattr ("mbsrtowcs called with dst buffer smaller than len "
> -		 "* sizeof (wchar_t)");
> -
>   __fortify_function size_t
>   __NTH (mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
>   		  size_t __len, mbstate_t *__restrict __ps))
> @@ -410,19 +258,6 @@ __NTH (mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
>   			    __dst, __src, __len, __ps);
>   }
>   
> -
> -extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
> -			      (char *__restrict __dst,
> -			       const wchar_t **__restrict __src,
> -			       size_t __len, mbstate_t *__restrict __ps),
> -			      wcsrtombs);
> -extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
> -			      (char *__restrict __dst,
> -			       const wchar_t **__restrict __src,
> -			       size_t __len, mbstate_t *__restrict __ps,
> -			       size_t __dstlen), __wcsrtombs_chk)
> -    __warnattr ("wcsrtombs called with dst buffer smaller than len");
> -
>   __fortify_function size_t
>   __NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
>   		  size_t __len, mbstate_t *__restrict __ps))
> @@ -434,19 +269,6 @@ __NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
>   
>   
>   #ifdef	__USE_XOPEN2K8
> -extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
> -			      (wchar_t *__restrict __dst,
> -			       const char **__restrict __src, size_t __nmc,
> -			       size_t __len, mbstate_t *__restrict __ps),
> -			      mbsnrtowcs);
> -extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
> -			      (wchar_t *__restrict __dst,
> -			       const char **__restrict __src, size_t __nmc,
> -			       size_t __len, mbstate_t *__restrict __ps,
> -			       size_t __dstlen), __mbsnrtowcs_chk)
> -     __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
> -		 "* sizeof (wchar_t)");
> -
>   __fortify_function size_t
>   __NTH (mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
>   		   size_t __nmc, size_t __len, mbstate_t *__restrict __ps))
> @@ -456,20 +278,6 @@ __NTH (mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
>   			    __dst, __src, __nmc, __len, __ps);
>   }
>   
> -
> -extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
> -			      (char *__restrict __dst,
> -			       const wchar_t **__restrict __src,
> -			       size_t __nwc, size_t __len,
> -			       mbstate_t *__restrict __ps), wcsnrtombs);
> -extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
> -			      (char *__restrict __dst,
> -			       const wchar_t **__restrict __src,
> -			       size_t __nwc, size_t __len,
> -			       mbstate_t *__restrict __ps,
> -			       size_t __dstlen), __wcsnrtombs_chk)
> -     __warnattr ("wcsnrtombs called with dst buffer smaller than len");
> -
>   __fortify_function size_t
>   __NTH (wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
>   		   size_t __nwc, size_t __len, mbstate_t *__restrict __ps))
  

Patch

diff --git a/include/wchar.h b/include/wchar.h
index ff4ae52045..7b763bc24f 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -12,6 +12,7 @@ 
 # ifndef _ISOMAC
 
 #include <bits/floatn.h>
+#include <bits/wchar2-decl.h>
 #include <stdbool.h>
 
 extern __typeof (wcscasecmp_l) __wcscasecmp_l;
diff --git a/wcsmbs/bits/wchar2-decl.h b/wcsmbs/bits/wchar2-decl.h
index 3a23069d3e..f3a2fd3c99 100644
--- a/wcsmbs/bits/wchar2-decl.h
+++ b/wcsmbs/bits/wchar2-decl.h
@@ -27,8 +27,27 @@ 
 extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1,
 			       const wchar_t *__restrict __s2, size_t __n,
 			       size_t __ns1) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
+				(wchar_t *__restrict __s1,
+				 const wchar_t *__restrict __s2, size_t __n),
+				wmemcpy);
+extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
+				(wchar_t *__restrict __s1,
+				 const wchar_t *__restrict __s2, size_t __n,
+				 size_t __ns1), __wmemcpy_chk)
+     __warnattr ("wmemcpy called with length bigger than size of destination "
+		 "buffer");
+
 extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
 				size_t __n, size_t __ns1) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
+						   const wchar_t *__s2,
+						   size_t __n), wmemmove);
+extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
+				(wchar_t *__s1, const wchar_t *__s2,
+				 size_t __n, size_t __ns1), __wmemmove_chk)
+     __warnattr ("wmemmove called with length bigger than size of destination "
+		 "buffer");
 
 
 #ifdef __USE_GNU
@@ -36,39 +55,107 @@  extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
 extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1,
 				const wchar_t *__restrict __s2, size_t __n,
 				size_t __ns1) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
+				(wchar_t *__restrict __s1,
+				 const wchar_t *__restrict __s2,
+				 size_t __n), wmempcpy);
+extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
+				(wchar_t *__restrict __s1,
+				 const wchar_t *__restrict __s2, size_t __n,
+				 size_t __ns1), __wmempcpy_chk)
+     __warnattr ("wmempcpy called with length bigger than size of destination "
+		 "buffer");
 
 #endif
 
 
 extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
 			       size_t __ns) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
+							  size_t __n), wmemset);
+extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
+				(wchar_t *__s, wchar_t __c, size_t __n,
+				 size_t __ns), __wmemset_chk)
+     __warnattr ("wmemset called with length bigger than size of destination "
+		 "buffer");
+
 extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest,
 			      const wchar_t *__restrict __src,
 			      size_t __n) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src), wcscpy);
+
 extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
 			      const wchar_t *__restrict __src,
 			      size_t __destlen) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src), wcpcpy);
+
 extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest,
 			       const wchar_t *__restrict __src, size_t __n,
 			       size_t __destlen) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src,
+				 size_t __n), wcsncpy);
+extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src,
+				 size_t __n, size_t __destlen), __wcsncpy_chk)
+     __warnattr ("wcsncpy called with length bigger than size of destination "
+		 "buffer");
+
 extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest,
 			       const wchar_t *__restrict __src, size_t __n,
 			       size_t __destlen) __THROW;
+
+extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src,
+				 size_t __n), wcpncpy);
+extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src,
+				 size_t __n, size_t __destlen), __wcpncpy_chk)
+     __warnattr ("wcpncpy called with length bigger than size of destination "
+		 "buffer");
+
 extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest,
 			      const wchar_t *__restrict __src,
 			      size_t __destlen) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src), wcscat);
+
 extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest,
 			       const wchar_t *__restrict __src,
 			       size_t __n, size_t __destlen) __THROW;
+extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
+				(wchar_t *__restrict __dest,
+				 const wchar_t *__restrict __src,
+				 size_t __n), wcsncat);
+
 extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
 			   int __flag, size_t __s_len,
 			   const wchar_t *__restrict __format, ...)
      __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
+extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
+				(wchar_t *__restrict __s, size_t __n,
+				 const wchar_t *__restrict __fmt, ...),
+				swprintf);
+
 extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
 			    int __flag, size_t __s_len,
 			    const wchar_t *__restrict __format,
 			    __gnuc_va_list __arg)
      __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
+extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
+				(wchar_t *__restrict __s, size_t __n,
+				 const wchar_t *__restrict __fmt,
+				 __gnuc_va_list __ap), vswprintf);
+
 
 #if __USE_FORTIFY_LEVEL > 1
 
@@ -86,26 +173,72 @@  extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format,
 
 extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n,
 			      __FILE *__restrict __stream) __wur;
+extern wchar_t *__REDIRECT (__fgetws_alias,
+			    (wchar_t *__restrict __s, int __n,
+			     __FILE *__restrict __stream), fgetws) __wur;
+extern wchar_t *__REDIRECT (__fgetws_chk_warn,
+			    (wchar_t *__restrict __s, size_t __size, int __n,
+			     __FILE *__restrict __stream), __fgetws_chk)
+     __wur __warnattr ("fgetws called with bigger size than length "
+		       "of destination buffer");
 
 #ifdef __USE_GNU
 
 extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size,
 				       int __n, __FILE *__restrict __stream)
        __wur;
+extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
+			    (wchar_t *__restrict __s, int __n,
+			     __FILE *__restrict __stream), fgetws_unlocked)
+  __wur;
+extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
+			    (wchar_t *__restrict __s, size_t __size, int __n,
+			     __FILE *__restrict __stream),
+			    __fgetws_unlocked_chk)
+     __wur __warnattr ("fgetws_unlocked called with bigger size than length "
+		       "of destination buffer");
 
 #endif
 
 extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
 			     mbstate_t *__restrict __p,
 			     size_t __buflen) __THROW __wur;
+extern size_t __REDIRECT_NTH (__wcrtomb_alias,
+				      (char *__restrict __s, wchar_t __wchar,
+				      mbstate_t *__restrict __ps), wcrtomb) __wur;
+
 extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst,
 			       const char **__restrict __src,
 			       size_t __len, mbstate_t *__restrict __ps,
 			       size_t __dstlen) __THROW;
+extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
+			      (wchar_t *__restrict __dst,
+			       const char **__restrict __src,
+			       size_t __len, mbstate_t *__restrict __ps),
+			      mbsrtowcs);
+extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
+			      (wchar_t *__restrict __dst,
+			       const char **__restrict __src,
+			       size_t __len, mbstate_t *__restrict __ps,
+			       size_t __dstlen), __mbsrtowcs_chk)
+     __warnattr ("mbsrtowcs called with dst buffer smaller than len "
+		 "* sizeof (wchar_t)");
+
 extern size_t __wcsrtombs_chk (char *__restrict __dst,
 			       const wchar_t **__restrict __src,
 			       size_t __len, mbstate_t *__restrict __ps,
 			       size_t __dstlen) __THROW;
+extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
+			      (char *__restrict __dst,
+			       const wchar_t **__restrict __src,
+			       size_t __len, mbstate_t *__restrict __ps),
+			      wcsrtombs);
+extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
+			      (char *__restrict __dst,
+			       const wchar_t **__restrict __src,
+			       size_t __len, mbstate_t *__restrict __ps,
+			       size_t __dstlen), __wcsrtombs_chk)
+    __warnattr ("wcsrtombs called with dst buffer smaller than len");
 
 #ifdef	__USE_XOPEN2K8
 
@@ -113,12 +246,51 @@  extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst,
 				const char **__restrict __src, size_t __nmc,
 				size_t __len, mbstate_t *__restrict __ps,
 				size_t __dstlen) __THROW;
+extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
+			      (wchar_t *__restrict __dst,
+			       const char **__restrict __src, size_t __nmc,
+			       size_t __len, mbstate_t *__restrict __ps),
+			      mbsnrtowcs);
+extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
+			      (wchar_t *__restrict __dst,
+			       const char **__restrict __src, size_t __nmc,
+			       size_t __len, mbstate_t *__restrict __ps,
+			       size_t __dstlen), __mbsnrtowcs_chk)
+     __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
+		 "* sizeof (wchar_t)");
+
 extern size_t __wcsnrtombs_chk (char *__restrict __dst,
 				const wchar_t **__restrict __src,
 				size_t __nwc, size_t __len,
 				mbstate_t *__restrict __ps, size_t __dstlen)
        __THROW;
+extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
+			      (char *__restrict __dst,
+			       const wchar_t **__restrict __src,
+			       size_t __nwc, size_t __len,
+			       mbstate_t *__restrict __ps), wcsnrtombs);
+extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
+			      (char *__restrict __dst,
+			       const wchar_t **__restrict __src,
+			       size_t __nwc, size_t __len,
+			       mbstate_t *__restrict __ps,
+			       size_t __dstlen), __wcsnrtombs_chk)
+     __warnattr ("wcsnrtombs called with dst buffer smaller than len");
 
 #endif
 
+#ifdef __USE_MISC
+extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
+			     size_t __destlen) __THROW;
+extern size_t __REDIRECT_NTH (__wcslcpy_alias,
+			      (wchar_t *__dest, const wchar_t *__src,
+			       size_t __n), wcslcpy);
+
+extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
+			     size_t __destlen) __THROW;
+extern size_t __REDIRECT_NTH (__wcslcat_alias,
+			      (wchar_t *__dest, const wchar_t *__src,
+			       size_t __n), wcslcat);
+#endif /* __USE_MISC */
+
 #endif /* bits/wchar2-decl.h.  */
diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h
index 9def8e9852..6e6234d606 100644
--- a/wcsmbs/bits/wchar2.h
+++ b/wcsmbs/bits/wchar2.h
@@ -20,18 +20,6 @@ 
 # error "Never include <bits/wchar2.h> directly; use <wchar.h> instead."
 #endif
 
-
-extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
-				(wchar_t *__restrict __s1,
-				 const wchar_t *__restrict __s2, size_t __n),
-				wmemcpy);
-extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
-				(wchar_t *__restrict __s1,
-				 const wchar_t *__restrict __s2, size_t __n,
-				 size_t __ns1), __wmemcpy_chk)
-     __warnattr ("wmemcpy called with length bigger than size of destination "
-		 "buffer");
-
 __fortify_function wchar_t *
 __NTH (wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
 		size_t __n))
@@ -41,16 +29,6 @@  __NTH (wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
 			    __s1, __s2, __n);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
-						   const wchar_t *__s2,
-						   size_t __n), wmemmove);
-extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
-				(wchar_t *__s1, const wchar_t *__s2,
-				 size_t __n, size_t __ns1), __wmemmove_chk)
-     __warnattr ("wmemmove called with length bigger than size of destination "
-		 "buffer");
-
 __fortify_function wchar_t *
 __NTH (wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n))
 {
@@ -59,19 +37,7 @@  __NTH (wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n))
 			    __s1, __s2, __n);
 }
 
-
 #ifdef __USE_GNU
-extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
-				(wchar_t *__restrict __s1,
-				 const wchar_t *__restrict __s2,
-				 size_t __n), wmempcpy);
-extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
-				(wchar_t *__restrict __s1,
-				 const wchar_t *__restrict __s2, size_t __n,
-				 size_t __ns1), __wmempcpy_chk)
-     __warnattr ("wmempcpy called with length bigger than size of destination "
-		 "buffer");
-
 __fortify_function wchar_t *
 __NTH (wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
 		 size_t __n))
@@ -82,15 +48,6 @@  __NTH (wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
 }
 #endif
 
-
-extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
-						  size_t __n), wmemset);
-extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
-				(wchar_t *__s, wchar_t __c, size_t __n,
-				 size_t __ns), __wmemset_chk)
-     __warnattr ("wmemset called with length bigger than size of destination "
-		 "buffer");
-
 __fortify_function wchar_t *
 __NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
 {
@@ -99,11 +56,6 @@  __NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
 			    __s, __c, __n);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src), wcscpy);
-
 __fortify_function wchar_t *
 __NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
 {
@@ -113,11 +65,6 @@  __NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
   return __wcscpy_alias (__dest, __src);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src), wcpcpy);
-
 __fortify_function wchar_t *
 __NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
 {
@@ -127,18 +74,6 @@  __NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
   return __wcpcpy_alias (__dest, __src);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src,
-				 size_t __n), wcsncpy);
-extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src,
-				 size_t __n, size_t __destlen), __wcsncpy_chk)
-     __warnattr ("wcsncpy called with length bigger than size of destination "
-		 "buffer");
-
 __fortify_function wchar_t *
 __NTH (wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 		size_t __n))
@@ -148,18 +83,6 @@  __NTH (wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 			    __dest, __src, __n);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src,
-				 size_t __n), wcpncpy);
-extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src,
-				 size_t __n, size_t __destlen), __wcpncpy_chk)
-     __warnattr ("wcpncpy called with length bigger than size of destination "
-		 "buffer");
-
 __fortify_function wchar_t *
 __NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 		size_t __n))
@@ -169,11 +92,6 @@  __NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 			    __dest, __src, __n);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src), wcscat);
-
 __fortify_function wchar_t *
 __NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
 {
@@ -183,12 +101,6 @@  __NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
   return __wcscat_alias (__dest, __src);
 }
 
-
-extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
-				(wchar_t *__restrict __dest,
-				 const wchar_t *__restrict __src,
-				 size_t __n), wcsncat);
-
 __fortify_function wchar_t *
 __NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 		size_t __n))
@@ -200,12 +112,6 @@  __NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 }
 
 #ifdef __USE_MISC
-extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
-			     size_t __destlen) __THROW;
-extern size_t __REDIRECT_NTH (__wcslcpy_alias,
-			      (wchar_t *__dest, const wchar_t *__src,
-			       size_t __n), wcslcpy);
-
 __fortify_function size_t
 __NTH (wcslcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 		size_t __n))
@@ -219,12 +125,6 @@  __NTH (wcslcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
   return __wcslcpy_alias (__dest, __src, __n);
 }
 
-extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
-			     size_t __destlen) __THROW;
-extern size_t __REDIRECT_NTH (__wcslcat_alias,
-			      (wchar_t *__dest, const wchar_t *__src,
-			       size_t __n), wcslcat);
-
 __fortify_function size_t
 __NTH (wcslcat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 		size_t __n))
@@ -239,12 +139,6 @@  __NTH (wcslcat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
 }
 #endif /* __USE_MISC */
 
-
-extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
-				(wchar_t *__restrict __s, size_t __n,
-				 const wchar_t *__restrict __fmt, ...),
-				swprintf);
-
 #ifdef __va_arg_pack
 __fortify_function int
 __NTH (swprintf (wchar_t *__restrict __s, size_t __n,
@@ -265,12 +159,6 @@  __NTH (swprintf (wchar_t *__restrict __s, size_t __n,
    : swprintf (s, n, __VA_ARGS__))
 #endif
 
-
-extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
-				(wchar_t *__restrict __s, size_t __n,
-				 const wchar_t *__restrict __fmt,
-				 __gnuc_va_list __ap), vswprintf);
-
 __fortify_function int
 __NTH (vswprintf (wchar_t *__restrict __s, size_t __n,
 		  const wchar_t *__restrict __fmt, __gnuc_va_list __ap))
@@ -319,16 +207,6 @@  vfwprintf (__FILE *__restrict __stream,
 }
 
 #endif
-
-extern wchar_t *__REDIRECT (__fgetws_alias,
-			    (wchar_t *__restrict __s, int __n,
-			     __FILE *__restrict __stream), fgetws) __wur;
-extern wchar_t *__REDIRECT (__fgetws_chk_warn,
-			    (wchar_t *__restrict __s, size_t __size, int __n,
-			     __FILE *__restrict __stream), __fgetws_chk)
-     __wur __warnattr ("fgetws called with bigger size than length "
-		       "of destination buffer");
-
 __fortify_function __wur wchar_t *
 fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
 {
@@ -341,17 +219,6 @@  fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
 }
 
 #ifdef __USE_GNU
-extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
-			    (wchar_t *__restrict __s, int __n,
-			     __FILE *__restrict __stream), fgetws_unlocked)
-  __wur;
-extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
-			    (wchar_t *__restrict __s, size_t __size, int __n,
-			     __FILE *__restrict __stream),
-			    __fgetws_unlocked_chk)
-     __wur __warnattr ("fgetws_unlocked called with bigger size than length "
-		       "of destination buffer");
-
 __fortify_function __wur wchar_t *
 fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
 {
@@ -365,11 +232,6 @@  fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
 }
 #endif
 
-
-extern size_t __REDIRECT_NTH (__wcrtomb_alias,
-			      (char *__restrict __s, wchar_t __wchar,
-			       mbstate_t *__restrict __ps), wcrtomb) __wur;
-
 __fortify_function __wur size_t
 __NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
 		mbstate_t *__restrict __ps))
@@ -387,20 +249,6 @@  __NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
   return __wcrtomb_alias (__s, __wchar, __ps);
 }
 
-
-extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
-			      (wchar_t *__restrict __dst,
-			       const char **__restrict __src,
-			       size_t __len, mbstate_t *__restrict __ps),
-			      mbsrtowcs);
-extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
-			      (wchar_t *__restrict __dst,
-			       const char **__restrict __src,
-			       size_t __len, mbstate_t *__restrict __ps,
-			       size_t __dstlen), __mbsrtowcs_chk)
-     __warnattr ("mbsrtowcs called with dst buffer smaller than len "
-		 "* sizeof (wchar_t)");
-
 __fortify_function size_t
 __NTH (mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
 		  size_t __len, mbstate_t *__restrict __ps))
@@ -410,19 +258,6 @@  __NTH (mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
 			    __dst, __src, __len, __ps);
 }
 
-
-extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
-			      (char *__restrict __dst,
-			       const wchar_t **__restrict __src,
-			       size_t __len, mbstate_t *__restrict __ps),
-			      wcsrtombs);
-extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
-			      (char *__restrict __dst,
-			       const wchar_t **__restrict __src,
-			       size_t __len, mbstate_t *__restrict __ps,
-			       size_t __dstlen), __wcsrtombs_chk)
-    __warnattr ("wcsrtombs called with dst buffer smaller than len");
-
 __fortify_function size_t
 __NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
 		  size_t __len, mbstate_t *__restrict __ps))
@@ -434,19 +269,6 @@  __NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
 
 
 #ifdef	__USE_XOPEN2K8
-extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
-			      (wchar_t *__restrict __dst,
-			       const char **__restrict __src, size_t __nmc,
-			       size_t __len, mbstate_t *__restrict __ps),
-			      mbsnrtowcs);
-extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
-			      (wchar_t *__restrict __dst,
-			       const char **__restrict __src, size_t __nmc,
-			       size_t __len, mbstate_t *__restrict __ps,
-			       size_t __dstlen), __mbsnrtowcs_chk)
-     __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
-		 "* sizeof (wchar_t)");
-
 __fortify_function size_t
 __NTH (mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
 		   size_t __nmc, size_t __len, mbstate_t *__restrict __ps))
@@ -456,20 +278,6 @@  __NTH (mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
 			    __dst, __src, __nmc, __len, __ps);
 }
 
-
-extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
-			      (char *__restrict __dst,
-			       const wchar_t **__restrict __src,
-			       size_t __nwc, size_t __len,
-			       mbstate_t *__restrict __ps), wcsnrtombs);
-extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
-			      (char *__restrict __dst,
-			       const wchar_t **__restrict __src,
-			       size_t __nwc, size_t __len,
-			       mbstate_t *__restrict __ps,
-			       size_t __dstlen), __wcsnrtombs_chk)
-     __warnattr ("wcsnrtombs called with dst buffer smaller than len");
-
 __fortify_function size_t
 __NTH (wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
 		   size_t __nwc, size_t __len, mbstate_t *__restrict __ps))