diff options
Diffstat (limited to 'libio/stdstrbufs.cc')
-rw-r--r-- | libio/stdstrbufs.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libio/stdstrbufs.cc b/libio/stdstrbufs.cc index 48aa719..ee10cdc 100644 --- a/libio/stdstrbufs.cc +++ b/libio/stdstrbufs.cc @@ -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 |