Revert previous patch
authorMark Mitchell <mmitchel@gcc.gnu.org>
Sat, 10 Jun 2000 03:02:21 +0000 (03:02 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sat, 10 Jun 2000 03:02:21 +0000 (03:02 +0000)
From-SVN: r34482

libio/ChangeLog
libio/libioP.h
libio/stdstrbufs.cc

index cbee319..b7b30ea 100644 (file)
@@ -1,8 +1,3 @@
-2000-06-08  Mark Mitchell  <mark@codesourcery.com>
-
-       * libioP.h: Remove old ABI mangling code.
-       * stdstrbufs.cc: Likewise.
-
 2000-06-04  Mark Mitchell  <mark@codesourcery.com>
 
        * libioP.h: Handle new ABI mangling.
index 77ec9a3..171d9b9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
    This file is part of the GNU IO Library.
 
    This library is free software; you can redistribute it and/or
@@ -593,8 +593,18 @@ extern int _IO_vscanf __P ((const char *, _IO_va_list));
 /* VTABLE_LABEL defines NAME as of the CLASS class.
    CNLENGTH is strlen(#CLASS).  */
 #ifdef __GNUC__
-# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
-  extern char NAME[] asm ("_ZTV" #CNLENGTH #CLASS );
+# if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100)
+#  if _G_VTABLE_LABEL_HAS_LENGTH
+#   define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+  extern char NAME[] asm (_G_VTABLE_LABEL_PREFIX #CNLENGTH #CLASS);
+#  else
+#   define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+  extern char NAME[] asm (_G_VTABLE_LABEL_PREFIX #CLASS);
+#  endif
+# else
+#  define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+  extern char NAME[] asm ("_ZN" #CNLENGTH #CLASS "TVE");
+# endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */
 #endif /* __GNUC__ */
 
 #if !defined(builtinbuf_vtable) && defined(__cplusplus)
index 8b9e375..ee10cdc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 1994, 2000 Free Software Foundation
+Copyright (C) 1994 Free Software Foundation
 
 This file is part of the GNU IO Library.  This library is free
 software; you can redistribute it and/or modify it under the
@@ -35,7 +35,15 @@ the executable file might be covered by the GNU General Public License. */
 #if !defined(filebuf_vtable) && defined(__cplusplus)
 #ifdef __GNUC__
 extern char filebuf_vtable[]
-  asm ( "_ZTV7filebuf" );
+#if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100)
+  asm (_G_VTABLE_LABEL_PREFIX
+#if _G_VTABLE_LABEL_HAS_LENGTH
+       "7"
+#endif
+       "filebuf");
+#else
+  asm ( "_ZN7filebufTVE" );
+#endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */
 #else /* !__GNUC__ */
 #if _G_VTABLE_LABEL_HAS_LENGTH
 #define filebuf_vtable _G_VTABLE_LABEL_PREFIX_ID##7filebuf
@@ -83,7 +91,15 @@ struct _IO_fake_stdiobuf {
 #ifndef stdiobuf_vtable
 #ifdef __GNUC__
 extern struct _IO_jump_t stdiobuf_vtable
-  asm ( "_ZTV15stdiobuf_vtable" );
+#if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100)
+  asm (_G_VTABLE_LABEL_PREFIX
+#if _G_VTABLE_LABEL_HAS_LENGTH
+       "8"
+#endif
+       "stdiobuf");
+#else
+  asm ( "_ZN15stdiobuf_vtableTVE" );
+#endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */
 #else /* !__GNUC__ */
 #if _G_VTABLE_LABEL_HAS_LENGTH
 #define stdiobuf_vtable _G_VTABLE_LABEL_PREFIX_ID##8stdiobuf