From 9eed304f879559910e75cf90292ab9f43cdffdc8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Sun, 26 Oct 1997 18:22:43 +0100
Subject: [PATCH] Even more kluge for Irix 6.3.

Rev: src/modules/Gz/configure.in:1.9
Rev: src/modules/Gz/zlibmod.c:1.15
---
 src/modules/Gz/configure.in |  6 ++++--
 src/modules/Gz/zlibmod.c    | 19 ++++++++++++++++---
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/modules/Gz/configure.in b/src/modules/Gz/configure.in
index 8f441d95bf..5af461824f 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 a050b61015..ed743d4655 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 */
-- 
GitLab