aboutsummaryrefslogtreecommitdiff
path: root/libio
diff options
context:
space:
mode:
authorMark Mitchell <mmitchel@gcc.gnu.org>2000-06-10 03:02:21 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-06-10 03:02:21 +0000
commitd2103f699c01e1b506fa894e8f8c99cf52d95a58 (patch)
treea0bcdfb150422be9163d15f232aa17dc922ff927 /libio
parent27985b669a096e686ab206be177d7e3df114e207 (diff)
downloadgcc-d2103f699c01e1b506fa894e8f8c99cf52d95a58.zip
gcc-d2103f699c01e1b506fa894e8f8c99cf52d95a58.tar.gz
gcc-d2103f699c01e1b506fa894e8f8c99cf52d95a58.tar.bz2
Revert previous patch
From-SVN: r34482
Diffstat (limited to 'libio')
-rw-r--r--libio/ChangeLog5
-rw-r--r--libio/libioP.h16
-rw-r--r--libio/stdstrbufs.cc22
3 files changed, 32 insertions, 11 deletions
diff --git a/libio/ChangeLog b/libio/ChangeLog
index cbee319..b7b30ea 100644
--- a/libio/ChangeLog
+++ b/libio/ChangeLog
@@ -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.
diff --git a/libio/libioP.h b/libio/libioP.h
index 77ec9a3..171d9b9 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -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)
diff --git a/libio/stdstrbufs.cc b/libio/stdstrbufs.cc
index 8b9e375..ee10cdc 100644
--- a/libio/stdstrbufs.cc
+++ b/libio/stdstrbufs.cc
@@ -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