diff --git a/src/modules/Gz/configure.in b/src/modules/Gz/configure.in index 8f441d95bf67ffdc48e94379ca10bc51f060d35d..5af461824f2d1c66b5e0c453e86e02d203ad8455 100644 --- a/src/modules/Gz/configure.in +++ b/src/modules/Gz/configure.in @@ -15,11 +15,13 @@ int foo = (int)(Z_NO_COMPRESSION | Z_VERSION_ERROR); ],[ AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no); ac_cv_header_zlib_h=no ]) if test $ac_cv_header_zlib_h = yes ; then if test x$pike_cv_sys_os = xIRIX ; then - # The libz.so supplied with IRIX 6.3 needs this obscure symbol - # C++? It also differs which library which contains it. + # The libz.so supplied with IRIX 6.3 needs these obscure symbols + # C++? It also differs which library which contains them. AC_CHECK_LIB(Csup, __vtbl__9type_info) AC_CHECK_LIB(C, __vtbl__9type_info) + AC_CHECK_LIB(Csup, __T_9__nothrow) AC_HAVE_FUNCS(__vtbl__9type_info) + AC_HAVE_FUNCS(__T_9__nothrow) fi AC_CHECK_LIB(z, compress, [ AC_DEFINE(HAVE_LIBZ) diff --git a/src/modules/Gz/zlibmod.c b/src/modules/Gz/zlibmod.c index a050b61015c5eea46e817087c2e9fbc948f7eeb7..ed743d4655700ed557cef15564075e4d31bec9f6 100644 --- a/src/modules/Gz/zlibmod.c +++ b/src/modules/Gz/zlibmod.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: zlibmod.c,v 1.14 1997/10/21 17:45:40 grubba Exp $"); +RCSID("$Id: zlibmod.c,v 1.15 1997/10/26 17:22:43 grubba Exp $"); #include "zlib_machine.h" @@ -382,11 +382,24 @@ void pike_module_init(void) #endif } -#ifdef HAVE___VTBL__9TYPE_INFO +#if defined(HAVE___VTBL__9TYPE_INFO) || defined(HAVE___T_9__NOTHROW) /* Super-special kluge for IRIX 6.3 */ +#ifdef HAVE___VTBL__9TYPE_INFO extern void __vtbl__9type_info(void); +#endif /* HAVE___VTBL__9TYPE_INFO */ +#ifdef HAVE___T_9__NOTHROW +extern void __T_9__nothrow(void); +#endif /* HAVE___T_9__NOTHROW */ +/* Don't even think of calling this one + * Not static, so the compiler can't optimize it away totally. + */ void zlibmod_strap_kluge(void) { +#ifdef HAVE___VTBL__9TYPE_INFO __vtbl__9type_info(); -} #endif /* HAVE___VTBL__9TYPE_INFO */ +#ifdef HAVE___T_9__NOTHROW + __T_9__nothrow(); +#endif /* HAVE___T_9__NOTHROW */ +} +#endif /* HAVE___VTBL__9TYPE_INFO || HAVE___T_9__NOTHROW */