[w3m-dev-en 00073] Re: mktable problem?

From: Fumitoshi UKAI (ukai@debian.or.jp)
Date: Sun Feb 06 2000 - 10:13:34 CST


At Sat, 5 Feb 2000 21:36:51 -0500,
Bob Drzyzgula <bob@drzyzgula.org> wrote:
 
> Hi. I am attempting to compile w3m 0.1.6, in "monster version"
> configuration, with OpenSSL 0.9.4, on a SPARCserver 20 (4x90MHz
> HyperSPARC) running Red Hat Linux 6.1 (kernel 2.2.12, glibc 2.1.2).
>
> The problem I am having is that mktable (called as "./mktable 100
> tagtable.tab" by the make) segfaults and dumps core.
>
> This message is just a quick note to ask if this is a known problem.
> If not, I will investigate further myself.

How about the following patch?

Index: mktable.c
===================================================================
RCS file: /var/cvs/debian/w3m/mktable.c,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 mktable.c
--- mktable.c 2000/01/05 15:09:44 1.1.1.2
+++ mktable.c 2000/02/06 15:56:32
@@ -16,8 +16,31 @@
 
 defhashfunc(HashItem_ss*,int,hss_i)
 
+#if defined(AIX) || defined(linux)
+/* to cope with Boehm GC... */
+
+#define MAIN real_main
+
+#if defined(DEBIAN)
+# include "gc/private/gc_priv.h"
+#else
+# include "gc_private.h"
+#endif
+int real_main(int, char**, char **);
+
 int
-main(int argc, char *argv[])
+main(int argc, char **argv, char **envp)
+{
+ int dummy;
+ GC_stackbottom = (ptr_t)(&dummy);
+ return(real_main(argc, argv, envp));
+}
+#else
+#define MAIN main
+#endif
+
+int
+MAIN(int argc, char **argv, *char **envp)
 {
   FILE *f;
   Hash_ss *hash;
Index: w3mhelperpanel.c
===================================================================
RCS file: /var/cvs/debian/w3m/w3mhelperpanel.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 w3mhelperpanel.c
--- w3mhelperpanel.c 2000/01/22 13:15:29 1.1.1.4
+++ w3mhelperpanel.c 2000/02/06 16:04:04
@@ -123,8 +123,31 @@
   printf("w3m-control: INIT_MAILCAP\n");
 }
 
+#if defined(AIX) || defined(linux)
+/* to cope with Boehm GC... */
+
+#define MAIN real_main
+
+#if defined(DEBIAN)
+# include "gc/private/gc_priv.h"
+#else
+# include "gc_private.h"
+#endif
+int real_main(int,char**,char**);
+
+int
+main(int argc, char **argv, char **envp)
+{
+ int dummy;
+ GC_stackbottom = (ptr_t)(&dummy);
+ return(real_main(argc, argv, envp));
+}
+#else
+#define MAIN main
+#endif
+
 int
-main()
+MAIN(int argc, char **argv, char **envp)
 {
   Str mailcapfile;
   extern char *getenv();

Regards,
Fumitoshi UKAI



This archive was generated by hypermail 2b29 : Wed Jul 19 2000 - 10:30:43 CDT