From d2103f699c01e1b506fa894e8f8c99cf52d95a58 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Sat, 10 Jun 2000 03:02:21 +0000 Subject: [PATCH] Revert previous patch From-SVN: r34482 --- libio/ChangeLog | 5 ----- libio/libioP.h | 16 +++++++++++++--- libio/stdstrbufs.cc | 22 +++++++++++++++++++--- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/libio/ChangeLog b/libio/ChangeLog index cbee31978bf..b7b30ea0e24 100644 --- a/libio/ChangeLog +++ b/libio/ChangeLog @@ -1,8 +1,3 @@ -2000-06-08 Mark Mitchell - - * libioP.h: Remove old ABI mangling code. - * stdstrbufs.cc: Likewise. - 2000-06-04 Mark Mitchell * libioP.h: Handle new ABI mangling. diff --git a/libio/libioP.h b/libio/libioP.h index 77ec9a3b6bb..171d9b9c1da 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 8b9e375d894..ee10cdc4d00 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