OSDN Git Service

* libioP.h: Handle new ABI mangling.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Jun 2000 21:16:04 +0000 (21:16 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Jun 2000 21:16:04 +0000 (21:16 +0000)
* stdstrbufs.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34395 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 3e309b9..b7b30ea 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-04  Mark Mitchell  <mark@codesourcery.com>
+
+       * libioP.h: Handle new ABI mangling.
+       * stdstrbufs.cc: Likewise.
+
 2000-05-24  Ulrich Drepper  <drepper@redhat.com>
 
        * iostream.cc (endl): Fix bug in last change.
index be70f52..171d9b9 100644 (file)
@@ -593,13 +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__
-# if _G_VTABLE_LABEL_HAS_LENGTH
-#  define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+# 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 (_G_VTABLE_LABEL_PREFIX #CLASS);
-# endif
+  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 48aa719..ee10cdc 100644 (file)
@@ -35,11 +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[]
+#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
@@ -87,11 +91,15 @@ struct _IO_fake_stdiobuf {
 #ifndef stdiobuf_vtable
 #ifdef __GNUC__
 extern struct _IO_jump_t stdiobuf_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