about summary refs log tree commit diff
path: root/wcsmbs
diff options
context:
space:
mode:
Diffstat (limited to 'wcsmbs')
-rw-r--r--wcsmbs/bits/wchar-ldbl.h44
-rw-r--r--wcsmbs/wchar.h11
2 files changed, 28 insertions, 27 deletions
diff --git a/wcsmbs/bits/wchar-ldbl.h b/wcsmbs/bits/wchar-ldbl.h
index ac5d3b1c89..5e4894567c 100644
--- a/wcsmbs/bits/wchar-ldbl.h
+++ b/wcsmbs/bits/wchar-ldbl.h
@@ -21,32 +21,34 @@
 # error "Never include <bits/wchar-ldbl.h> directly; use <wchar.h> instead."
 #endif
 
-#if defined __LDBL_COMPAT && defined __GNUC__ && __GNUC__ >= 2
-
-# define __LDBL_REDIR_WCHAR(name) \
-  extern __typeof (name) name __asm (__ASMNAME (__nldbl_##name))
-
-# if defined __USE_ISOC99 || defined __USE_UNIX98
+#if defined __USE_ISOC99 || defined __USE_UNIX98
 __BEGIN_NAMESPACE_C99
-__LDBL_REDIR_WCHAR (fwprintf);
-__LDBL_REDIR_WCHAR (wprintf);
-__LDBL_REDIR_WCHAR (swprintf);
-__LDBL_REDIR_WCHAR (vfwprintf);
-__LDBL_REDIR_WCHAR (vwprintf);
-__LDBL_REDIR_WCHAR (vswprintf);
-__LDBL_REDIR_WCHAR (fwscanf);
-__LDBL_REDIR_WCHAR (wscanf);
-__LDBL_REDIR_WCHAR (swscanf);
+__LDBL_REDIR_DECL (fwprintf);
+__LDBL_REDIR_DECL (wprintf);
+__LDBL_REDIR_DECL (swprintf);
+__LDBL_REDIR_DECL (vfwprintf);
+__LDBL_REDIR_DECL (vwprintf);
+__LDBL_REDIR_DECL (vswprintf);
+__LDBL_REDIR_DECL (fwscanf);
+__LDBL_REDIR_DECL (wscanf);
+__LDBL_REDIR_DECL (swscanf);
 __END_NAMESPACE_C99
-# endif
+#endif
 
-# ifdef __USE_ISOC99
+#ifdef __USE_ISOC99
 __BEGIN_NAMESPACE_C99
-__LDBL_REDIR_WCHAR (vfwscanf);
-__LDBL_REDIR_WCHAR (vwscanf);
-__LDBL_REDIR_WCHAR (vswscanf);
+__LDBL_REDIR1_DECL (wcstold, wcstod);
+__LDBL_REDIR_DECL (vfwscanf);
+__LDBL_REDIR_DECL (vwscanf);
+__LDBL_REDIR_DECL (vswscanf);
 __END_NAMESPACE_C99
-# endif
+#endif
+
+#ifdef __USE_GNU
+__LDBL_REDIR1_DECL (wcstold_l, wcstod_l);
+#endif
+
+__LDBL_REDIR1_DECL (__wcstold_internal, __wcstod_internal);
 
 #if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
 __LDBL_REDIR_DECL (__swprintf_chk)
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index fb7a641db7..670dc79c4a 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -561,8 +561,8 @@ extern __inline float
 __NTH (wcstof (__const wchar_t *__restrict __nptr,
 	       wchar_t **__restrict __endptr))
 { return __wcstof_internal (__nptr, __endptr, 0); }
-extern __inline long double
 #  ifndef __LDBL_COMPAT
+extern __inline long double
 __NTH (wcstold (__const wchar_t *__restrict __nptr,
 		wchar_t **__restrict __endptr))
 { return __wcstold_internal (__nptr, __endptr, 0); }
@@ -833,16 +833,15 @@ extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
 # include <wctype.h>
 #endif
 
-
-#ifdef __LDBL_COMPAT
-# include <bits/wchar-ldbl.h>
-#endif
-
 /* Define some macros helping to catch buffer overflows.  */
 #if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
 # include <bits/wchar2.h>
 #endif
 
+#ifdef __LDBL_COMPAT
+# include <bits/wchar-ldbl.h>
+#endif
+
 __END_DECLS
 
 #endif	/* _WCHAR_H defined */