aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-09-06 03:40:54 +0000
committerUlrich Drepper <drepper@redhat.com>2000-09-06 03:40:54 +0000
commit8bfae061d038986f215162e505aefd7ff2384c84 (patch)
treecf8424b010a04820c9ff3c79c92c79f98c311c2f
parentb853e8fa2ef3dafe300b386426012509a50d6175 (diff)
downloadglibc-8bfae061d038986f215162e505aefd7ff2384c84.tar
glibc-8bfae061d038986f215162e505aefd7ff2384c84.tar.gz
glibc-8bfae061d038986f215162e505aefd7ff2384c84.tar.bz2
glibc-8bfae061d038986f215162e505aefd7ff2384c84.zip
Update.
2000-09-05 Ulrich Drepper <drepper@redhat.com> * libio/libio.h (_IO_fwide_maybe_incompatible): For glibc 2.0 compatibility check for old stream and call _IO_wide in doubt. (_IO_fwide): Use _IO_fwide_maybe_incompatible macro. * libio/iofwide.c (_IO_fwide): If compatibility with glibc 2.0 is needed tst for such an old structure and don't do anything. * libio/freopen.c: Remove declaration of _IO_stdin_used. * soft-fp/Makefile (distribute): Add op-8.h and testit.c. * soft-fp/Makefile (distribute): Add the math functions, too. * soft-fp/Makefile (distribute): Add ChangeLog, Banner, and configure. * soft-fp/soft-fp.h (_FP_ROUND_ZERO): Cast 0 to void before using it as a statement. * soft-fp/sysdeps/powerpc/Makefile (routines): New file. * soft-fp/sysdeps/powerpc/q_*: New files.
-rw-r--r--ChangeLog23
-rw-r--r--libio/freopen.c5
-rw-r--r--libio/libio.h16
3 files changed, 31 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index dffff547c5..ff20a0c4f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-09-05 Ulrich Drepper <drepper@redhat.com>
+
+ * libio/libio.h (_IO_fwide_maybe_incompatible): For glibc 2.0
+ compatibility check for old stream and call _IO_wide in doubt.
+ (_IO_fwide): Use _IO_fwide_maybe_incompatible macro.
+ * libio/iofwide.c (_IO_fwide): If compatibility with glibc 2.0 is
+ needed tst for such an old structure and don't do anything.
+ * libio/freopen.c: Remove declaration of _IO_stdin_used.
+
2000-09-06 Andreas Jaeger <aj@suse.de>
* sysdeps/powerpc/Makefile [$(subdir) = elf]: Modify
@@ -8,19 +17,19 @@
2000-06-13 Ulrich Drepper <drepper@redhat.com>
- * soft-fp/Makefile (distribute): Add op-8.h and testit.c.
+ * soft-fp/Makefile (distribute): Add op-8.h and testit.c.
- * soft-fp/Makefile (distribute): Add the math functions, too.
+ * soft-fp/Makefile (distribute): Add the math functions, too.
- * soft-fp/Makefile (distribute): Add ChangeLog, Banner, and configure.
+ * soft-fp/Makefile (distribute): Add ChangeLog, Banner, and configure.
2000-03-03 Geoff Keating <geoffk@cygnus.com>
- * soft-fp/soft-fp.h (_FP_ROUND_ZERO): Cast 0 to void before using it
- as a statement.
+ * soft-fp/soft-fp.h (_FP_ROUND_ZERO): Cast 0 to void before using it
+ as a statement.
- * soft-fp/sysdeps/powerpc/Makefile (routines): New file.
- * soft-fp/sysdeps/powerpc/q_*: New files.
+ * soft-fp/sysdeps/powerpc/Makefile (routines): New file.
+ * soft-fp/sysdeps/powerpc/q_*: New files.
2000-09-05 Ulrich Drepper <drepper@redhat.com>
diff --git a/libio/freopen.c b/libio/freopen.c
index 3f1e8f49e0..38df848272 100644
--- a/libio/freopen.c
+++ b/libio/freopen.c
@@ -26,11 +26,6 @@
#include "libioP.h"
#include "stdio.h"
-#ifdef SHARED
-extern void *_IO_stdin_used;
-weak_extern (_IO_stdin_used);
-#endif
-
#include <shlib-compat.h>
FILE*
diff --git a/libio/libio.h b/libio/libio.h
index 12826ffe11..edf52401f3 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -472,11 +472,25 @@ extern _IO_wint_t _IO_getwc (_IO_FILE *__fp) __THROW;
extern _IO_wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) __THROW;
extern int _IO_fwide (_IO_FILE *__fp, int __mode) __THROW;
# if __GNUC__ >= 2
+/* While compiling glibc we have to handle compatibility with very old
+ versions. */
+# if defined _LIBC && defined SHARED
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+# define _IO_fwide_maybe_incompatible \
+ (__builtin_expect (&_IO_stdin_used == NULL, 0))
+extern const int _IO_stdin_used;
+weak_extern (_IO_stdin_used);
+# endif
+# endif
+# ifndef _IO_fwide_maybe_incompatible
+# define _IO_fwide_maybe_incompatible (0)
+# endif
/* A special optimized version of the function above. It optimizes the
case of initializing an unoriented byte stream. */
# define _IO_fwide(__fp, __mode) \
({ int __result = (__mode); \
- if (__result < 0) \
+ if (__result < 0 && ! _IO_fwide_maybe_incompatible) \
{ \
if ((__fp)->_mode == 0) \
/* We know that all we have to do is to set the flag. */ \