* [PATCH] Fix some fallouts from the long double patch
@ 2006-01-14 20:09 Jakub Jelinek
0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2006-01-14 20:09 UTC (permalink / raw)
To: Roland McGrath; +Cc: Glibc hackers
Hi!
This is what showed up when compiling/linking the testcase I posted
yesterday against CVS libc on sparc32 with -mlong-double-64.
Another thing is that the stdlib/isomac test fails for stdio.h and
wchar.h. The reason there is that -mlong-double-128 (i.e. sysdep-CFLAGS)
isn't passed to the preprocessor and thus if the compiler doesn't default
to -mlong-double-128, it will want to include bits/stdio-ldbl.h,
bits/libio-ldbl.h and bits/wchar-ldbl.h, but as the test isn't testing
installed headers, they won't be found.
Either we could add for those 3 headers (well, I'd first need to verify
its those 3 and not some others) include/bits/ wrappers, or we need to
ensure -mlong-double-128 is passed to the preprocessor.
2006-01-14 Jakub Jelinek <jakub@redhat.com>
* misc/sys/cdefs.h (__LDBL_REDIR1_DECL): Define.
(__LDBL_REDIR_DECL): Stringize __nldbl and name.
* stdlib/bits/monetary-ldbl.h: Remove pastos from wchar-ldbl.h.
(strfmon, strfmon_l): Add __LDBL_REDIR_DECL.
* stdlib/bits/stdlib-ldbl.h (strtold, strtold_l, __strtold_internal,
qecvt, qfcvt, qgcvt, qecvt_r, qfcvt_r): Use __LDBL_REDIR1_DECL
instead of __LDBL_REDIR_DECL.
* wcsmbs/bits/wchar-ldbl.h: Remove stale #if.
(__LDBL_REDIR_WCHAR): Remove.
(fwprintf, wprintf, swprintf, vfwprintf, vwprintf, vswprintf,
fwscanf, wscanf, swscanf, vfwscanf, vwscanf, vswscanf): Use
__LDBL_REDIR_DECL instead of __LDBL_REDIR_WCHAR.
(wcstold, wcstold_l, __wcstold_internal): Add __LDBL_REDIR1_DECL.
* wcsmbs/wchar.h: Include bits/wchar-ldbl.h after bits/wchar2.h
instead of before it.
(wcstold inline): Move #ifndef __LDBL_COMPAT before
extern keyword.
* libio/bits/stdio-ldbl.h (__snprintf_chk, __vsnprintf_chk): Add
__LDBL_REDIR_DECL.
* misc/bits/syslog-ldbl.h (vsyslog): Protect with #ifdef __USE_BSD.
(__syslog_chk, __vsyslog_chk): Add __LDBL_REDIR_DECL.
--- libc/misc/sys/cdefs.h.jj 2006-01-14 13:31:35.000000000 -0500
+++ libc/misc/sys/cdefs.h 2006-01-14 14:59:43.000000000 -0500
@@ -321,8 +321,10 @@
# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
# define __LDBL_REDIR_NTH(name, proto) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
+# define __LDBL_REDIR1_DECL(name, alias) \
+ extern __typeof (name) name __asm (__ASMNAME (#alias));
# define __LDBL_REDIR_DECL(name) \
- extern __typeof (name) name __asm (__ASMNAME (__nldbl_##name));
+ extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
# endif
#endif
#if !defined __LDBL_COMPAT || !defined __REDIRECT
--- libc/stdlib/bits/monetary-ldbl.h.jj 2006-01-14 13:31:35.000000000 -0500
+++ libc/stdlib/bits/monetary-ldbl.h 2006-01-14 14:55:18.000000000 -0500
@@ -21,40 +21,8 @@
# error "Never include <bits/monetary-ldbl.h> directly; use <monetary.h> instead."
#endif
-#if defined __LDBL_COMPAT && defined __GNUC__ && __GNUC__ >= 2
+__LDBL_REDIR_DECL (strfmon)
-# define __LDBL_REDIR_WCHAR(name) \
- extern __typeof (name) name __asm (__ASMNAME (__nldbl_##name))
-
-# 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);
-__END_NAMESPACE_C99
-# endif
-
-# ifdef __USE_ISOC99
-__BEGIN_NAMESPACE_C99
-__LDBL_REDIR_WCHAR (vfwscanf);
-__LDBL_REDIR_WCHAR (vwscanf);
-__LDBL_REDIR_WCHAR (vswscanf);
-__END_NAMESPACE_C99
-# endif
-
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
-__LDBL_REDIR_DECL (__swprintf_chk)
-__LDBL_REDIR_DECL (__vswprintf_chk)
-# if __USE_FORTIFY_LEVEL > 1
-__LDBL_REDIR_DECL (__fwprintf_chk)
-__LDBL_REDIR_DECL (__wprintf_chk)
-__LDBL_REDIR_DECL (__vfwprintf_chk)
-__LDBL_REDIR_DECL (__vwprintf_chk)
-# endif
+#ifdef __USE_GNU
+__LDBL_REDIR_DECL (strfmon_l)
#endif
--- libc/stdlib/bits/stdlib-ldbl.h.jj 2006-01-14 13:31:35.000000000 -0500
+++ libc/stdlib/bits/stdlib-ldbl.h 2006-01-14 15:01:11.000000000 -0500
@@ -23,20 +23,20 @@
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
-__LDBL_REDIR_DECL (strtold)
+__LDBL_REDIR1_DECL (strtold, strtod)
__END_NAMESPACE_C99
#endif
#ifdef __USE_GNU
-__LDBL_REDIR_DECL (strtold_l)
+__LDBL_REDIR1_DECL (strtold_l, strtod_l)
#endif
-__LDBL_REDIR_DECL (__strtold_internal)
+__LDBL_REDIR1_DECL (__strtold_internal, __strtod_internal)
#ifdef __USE_MISC
-__LDBL_REDIR_DECL (qecvt)
-__LDBL_REDIR_DECL (qfcvt)
-__LDBL_REDIR_DECL (qgcvt)
-__LDBL_REDIR_DECL (qecvt_r)
-__LDBL_REDIR_DECL (qfcvt_r)
+__LDBL_REDIR1_DECL (qecvt, ecvt)
+__LDBL_REDIR1_DECL (qfcvt, fcvt)
+__LDBL_REDIR1_DECL (qgcvt, gcvt)
+__LDBL_REDIR1_DECL (qecvt_r, ecvt_r)
+__LDBL_REDIR1_DECL (qfcvt_r, fcvt_r)
#endif
--- libc/wcsmbs/bits/wchar-ldbl.h.jj 2006-01-14 13:31:36.000000000 -0500
+++ libc/wcsmbs/bits/wchar-ldbl.h 2006-01-14 15:02:28.000000000 -0500
@@ -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)
--- libc/wcsmbs/wchar.h.jj 2006-01-14 13:31:36.000000000 -0500
+++ libc/wcsmbs/wchar.h 2006-01-14 14:55:18.000000000 -0500
@@ -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 *__res
# 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 */
--- libc/libio/bits/stdio-ldbl.h.jj 2006-01-14 13:31:35.000000000 -0500
+++ libc/libio/bits/stdio-ldbl.h 2006-01-14 14:55:18.000000000 -0500
@@ -61,6 +61,10 @@ __LDBL_REDIR_DECL (obstack_vprintf)
#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
__LDBL_REDIR_DECL (__sprintf_chk)
__LDBL_REDIR_DECL (__vsprintf_chk)
+# if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
+__LDBL_REDIR_DECL (__snprintf_chk)
+__LDBL_REDIR_DECL (__vsnprintf_chk)
+# endif
# if __USE_FORTIFY_LEVEL > 1
__LDBL_REDIR_DECL (__fprintf_chk)
__LDBL_REDIR_DECL (__printf_chk)
--- libc/misc/bits/syslog-ldbl.h.jj 2006-01-14 13:31:35.000000000 -0500
+++ libc/misc/bits/syslog-ldbl.h 2006-01-14 14:55:18.000000000 -0500
@@ -22,4 +22,15 @@
#endif
__LDBL_REDIR_DECL (syslog)
+
+#ifdef __USE_BSD
__LDBL_REDIR_DECL (vsyslog)
+#endif
+
+#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+__LDBL_REDIR_DECL (__syslog_chk)
+
+# ifdef __USE_BSD
+__LDBL_REDIR_DECL (__vsyslog_chk)
+# endif
+#endif
Jakub
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-01-14 20:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-14 20:09 [PATCH] Fix some fallouts from the long double patch Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).