aboutsummaryrefslogtreecommitdiffstats
path: root/Patches
diff options
context:
space:
mode:
authorAkinori Ito <aito@eie.yz.yamagata-u.ac.jp>2001-11-08 05:14:08 +0000
committerAkinori Ito <aito@eie.yz.yamagata-u.ac.jp>2001-11-08 05:14:08 +0000
commit68a07bf03b7624c9924065cce9ffa45497225834 (patch)
treec2adb06a909a8594445e4a3f8587c4bad46e3ecd /Patches
downloadw3m-68a07bf03b7624c9924065cce9ffa45497225834.tar.gz
w3m-68a07bf03b7624c9924065cce9ffa45497225834.zip
Initial revision
Diffstat (limited to '')
-rw-r--r--Patches/alpha19
-rw-r--r--Patches/armlinux110
-rw-r--r--Patches/ews480034
-rw-r--r--Patches/hpux1125
-rw-r--r--Patches/linux2.2sparc10
-rw-r--r--Patches/macosx41
-rw-r--r--Patches/macppc147
-rw-r--r--Patches/mipsel184
-rw-r--r--Patches/newsos627
-rw-r--r--Patches/os239
10 files changed, 636 insertions, 0 deletions
diff --git a/Patches/alpha b/Patches/alpha
new file mode 100644
index 0000000..422cd26
--- /dev/null
+++ b/Patches/alpha
@@ -0,0 +1,19 @@
+*** gc/Makefile.orig Thu Jun 24 10:08:17 1999
+--- gc/Makefile Thu Jun 24 10:08:54 1999
+***************
+*** 10,16 ****
+ ABI_FLAG=
+ CC=cc $(ABI_FLAG)
+ CXX=CC $(ABI_FLAG)
+! AS=as $(ABI_FLAG)
+ # The above doesn't work with gas, which doesn't run cpp.
+ # Define AS as `gcc -c -x assembler-with-cpp' instead.
+ # Under Irix 6, you will have to specify the ABI (-o32, -n32, or -64)
+--- 10,16 ----
+ ABI_FLAG=
+ CC=cc $(ABI_FLAG)
+ CXX=CC $(ABI_FLAG)
+! AS=gcc -c -x assembler-with-cpp
+ # The above doesn't work with gas, which doesn't run cpp.
+ # Define AS as `gcc -c -x assembler-with-cpp' instead.
+ # Under Irix 6, you will have to specify the ABI (-o32, -n32, or -64)
diff --git a/Patches/armlinux b/Patches/armlinux
new file mode 100644
index 0000000..18dd202
--- /dev/null
+++ b/Patches/armlinux
@@ -0,0 +1,110 @@
+From lars@junk.nocrew.org Tue Mar 7 04:44 EST 2000
+Return-Path: <lars@junk.nocrew.org>
+Received: from ei5sun.yz.yamagata-u.ac.jp (ei5sun.yz.yamagata-u.ac.jp [133.24.114.42])
+ by ei5hp710.yz.yamagata-u.ac.jp (8.9.3/8.9.3) with ESMTP id EAA25953
+ for <aito@ei5hp710.yz.yamagata-u.ac.jp>; Tue, 7 Mar 2000 04:44:51 -0500 (EST)
+Received: from junk.nocrew.org (mail@[212.73.17.42]) by ei5sun.yz.yamagata-u.ac.jp (8.8.0/3.5Wbeta) with ESMTP id SAA07952 for <aito@ei5sun.yz.yamagata-u.ac.jp>; Tue, 7 Mar 2000 18:54:43 +0900 (JST)
+Received: from lars by junk.nocrew.org with local (Exim 3.03 #1 (Debian))
+ for aito@ei5sun.yz.yamagata-u.ac.jp
+ id 12SGVE-0001rh-00; Tue, 07 Mar 2000 10:42:08 +0100
+To: aito@ei5sun.yz.yamagata-u.ac.jp
+Subject: ARMLinux patch
+From: lars brinkhoff <lars@nocrew.org>
+Date: 07 Mar 2000 10:42:08 +0100
+Message-ID: <85zosbjevj.fsf@junk.nocrew.org>
+Lines: 89
+User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.5
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Sender: lars brinkhoff <lars@junk.nocrew.org>
+
+This patch is an attempt to make w3m version 0.1.6 work in ARMLinux.
+It seems to work well.
+
+--- gc/gcconfig.h.org Wed Jan 12 05:23:37 2000
++++ gc/gcconfig.h Sun Mar 5 14:24:52 2000
+@@ -151,6 +151,10 @@
+ # define SPARC
+ # define mach_type_known
+ # endif
++# if defined(LINUX) && (defined(__arm__) || defined(arm))
++# define ARM
++# define mach_type_known
++# endif
+ # if defined(__alpha) || defined(__alpha__)
+ # define ALPHA
+ # if !defined(LINUX)
+@@ -985,6 +989,39 @@
+ # define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &_etext)
+ # define DATAEND (&_end)
+ # define HEURISTIC2
++# endif
++
++# ifdef ARM
++# define MACH_TYPE "ARM"
++# ifdef LINUX
++# define OS_TYPE "LINUX"
++# define HEURISTIC1
++# define STACKBOTTOM ((ptr_t) 0xbffffffc)
++# ifdef __ELF__
++# define DYNAMIC_LOADING
++# include <features.h>
++# if defined(__GLIBC__) && __GLIBC__ >= 2
++ extern int __data_start;
++# define DATASTART ((ptr_t)(&__data_start))
++# else
++ extern char **__environ;
++# define DATASTART ((ptr_t)(&__environ))
++ /* hideous kludge: __environ is the first */
++ /* word in crt0.o, and delimits the start */
++ /* of the data segment, no matter which */
++ /* ld options were passed through. */
++ /* We could use _etext instead, but that */
++ /* would include .rodata, which may */
++ /* contain large read-only data tables */
++ /* that we'd rather not scan. */
++# endif
++ extern int _end;
++# define DATAEND (&_end)
++# else
++ ARMLinux non elf ?
++# endif
++# endif
++# define ALIGNMENT 4
+ # endif
+
+ # ifndef STACK_GROWS_UP
+diff -ur gc/mach_dep.c w3m-0.1.6.lars/gc/mach_dep.c
+--- gc/mach_dep.c.org Wed Jan 12 05:23:37 2000
++++ gc/mach_dep.c Thu Jan 27 21:28:39 2000
+@@ -337,7 +337,7 @@
+ /* other machines... */
+ # if !(defined M68K) && !(defined VAX) && !(defined RT)
+ # if !(defined SPARC) && !(defined I386) && !(defined NS32K)
+-# if !defined(POWERPC) && !defined(UTS4)
++# if !defined(POWERPC) && !defined(UTS4) && !defined(ARM)
+ --> bad news <--
+ # endif
+ # endif
+diff -ur w3m/gc/os_dep.c w3m-0.1.6.lars/gc/os_dep.c
+--- gc/os_dep.c.org Wed Jan 12 05:23:37 2000
++++ gc/os_dep.c Thu Jan 27 21:37:27 2000
+@@ -72,7 +72,7 @@
+ # define NEED_FIND_LIMIT
+ # endif
+
+-# if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || defined(ALPHA))
++# if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || defined(ALPHA) || defined (ARM))
+ # define NEED_FIND_LIMIT
+ # endif
+
+@@ -139,7 +139,7 @@
+ # define OPT_PROT_EXEC 0
+ #endif
+
+-#if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || defined(ALPHA))
++#if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || defined(ALPHA) || defined(ARM))
+ /* The I386 case can be handled without a search. The Alpha case */
+ /* used to be handled differently as well, but the rules changed */
+ /* for recent Linux versions. This seems to be the easiest way to */
+
diff --git a/Patches/ews4800 b/Patches/ews4800
new file mode 100644
index 0000000..954523a
--- /dev/null
+++ b/Patches/ews4800
@@ -0,0 +1,34 @@
+--- XMakefile.orig Mon Mar 19 10:47:56 2001
++++ XMakefile Mon Mar 19 21:03:34 2001
+@@ -65,7 +65,7 @@
+ $(CC) $(CFLAGS) -o $(HELPER) w3mhelperpanel.o $(LIBS)
+
+ gc/gc.a:
+- cd gc; make CC='$(CC)' CFLAGS='$(GCCFLAGS)'
++ cd gc; make CC='$(CC)' CFLAGS='$(GCCFLAGS) -Dmips'
+
+ install: $(TARGETS)
+ -$(MKDIR) $(DESTDIR)$(BIN_DIR)
+--- gc/Makefile.orig Tue Jan 4 14:46:50 2000
++++ gc/Makefile Thu Mar 22 18:10:10 2001
+@@ -7,7 +7,7 @@
+ # and runs some tests of collector and cords. Does not add cords or
+ # c++ interface to gc.a
+ # cord/de - builds dumb editor based on cords.
+-ABI_FLAG=
++ABI_FLAG=-Kconform_pic
+ CC=cc $(ABI_FLAG)
+ CXX=CC $(ABI_FLAG)
+ AS=as $(ABI_FLAG)
+--- gc/gcconfig.h.orig Tue Jun 6 14:39:29 2000
++++ gc/gcconfig.h Mon Mar 19 21:02:51 2001
+@@ -64,7 +64,8 @@
+ # endif
+ # if defined(mips) || defined(__mips)
+ # define MIPS
+-# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
++# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__) ||\
++ defined(nec_ews)
+ # define ULTRIX
+ # else
+ # if !defined(LINUX)
diff --git a/Patches/hpux11 b/Patches/hpux11
new file mode 100644
index 0000000..c02893e
--- /dev/null
+++ b/Patches/hpux11
@@ -0,0 +1,25 @@
+Install note for HP-UX
+
+If you are running HP-UX 11 or later on PA-RISC 2.0, you
+have to apply the following patch on GC library. This patch
+is contributed by Dave Eaton <dwe@arde.com>.
+
+If you want to use HP C compiler, answer
+
+ Input your favorite C-compiler.
+ (Default: cc) cc -Aa -D_HPUX_SOURCE
+
+If you use just 'cc' without options, you can't compile w3m.
+If you are using gcc, no option is needed.
+
+----------------------------------------------------------------------
+--- gc/gcconfig.h.original Wed May 19 01:38:55 1999
++++ gc/gcconfig.h Tue Jun 8 12:38:22 1999
+@@ -125,6 +125,7 @@
+ # define mach_type_known
+ # endif
+ # if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) \
++ || defined(_PA_RISC2_0) \
+ || defined(hppa) || defined(__hppa__)
+ # define HP_PA
+ # define mach_type_known
diff --git a/Patches/linux2.2sparc b/Patches/linux2.2sparc
new file mode 100644
index 0000000..3a5cd80
--- /dev/null
+++ b/Patches/linux2.2sparc
@@ -0,0 +1,10 @@
+--- gc/gcconfig.h.org
++++ gc/gcconfig.h
+@@ -601,7 +601,7 @@
+ extern int _end;
+ # define DATAEND (&_end)
+ # define SVR4
+-# define STACKBOTTOM ((ptr_t) 0xf0000000)
++# define STACKBOTTOM ((ptr_t) 0xeffff000)
+ # endif
+ # endif
diff --git a/Patches/macosx b/Patches/macosx
new file mode 100644
index 0000000..4d251f1
--- /dev/null
+++ b/Patches/macosx
@@ -0,0 +1,41 @@
+Jeroen Scheerder <J.Scheerder@cwi.nl> (by way of Jeroen Scheerder)
+Subject: w3m 0.1.6 on Mac OS X
+Content-Type: text/plain; charset="us-ascii"
+
+Hi,
+
+I've compiled w3m successfully on Mac OS X (DP3). I'm including
+patches, mainly dealing with compiler complaints about possible use of
+uninitialized data.
+
+It compiles with one warning, still:
+
+url.c:799: warning: variable `p' might be clobbered by `longjmp' or
+ `vfork'
+
+
+On a related note: I had to modify the makefile; there is no `m'
+library, and no `termcap' library, and they're not needed as well --
+but they will cause an ld failure, when present on the ld command line.
+
+Context diffs (against a 21/1/2000 0.1.6) are included, including the
+(trivial) patch to make Boehm gc compile.
+
+
+
+*** gc/gcconfig.h Mon Mar 6 12:16:04 2000
+--- gc/gcconfig.h.org Wed Jan 12 04:23:37 2000
+***************
+*** 180,190 ****
+ # define POWERPC
+ # define mach_type_known
+ # endif
+- # if defined(__APPLE__)
+- # define MACOSX
+- # define POWERPC
+- # define mach_type_known
+- # endif
+ # if defined(NeXT) && defined(mc68000)
+ # define M68K
+ # define NEXT
+--- 180,185 ----
diff --git a/Patches/macppc b/Patches/macppc
new file mode 100644
index 0000000..c52adc4
--- /dev/null
+++ b/Patches/macppc
@@ -0,0 +1,147 @@
+Here is a patch to port GC library to NetBSD/macppc. If you are
+using NetBSD on PowerMac, apply this patch first.
+
+This patch is provided by K. Sunagawa (kei_sun@ba2.so-net.ne.jp).
+
+Index: gc/dyn_load.c
+===================================================================
+RCS file: /cvsroot/w3m/gc/dyn_load.c,v
+retrieving revision 1.1.1.2
+retrieving revision 1.2
+diff -u -u -r1.1.1.2 -r1.2
+--- gc/dyn_load.c 1999/06/02 19:29:13 1.1.1.2
++++ gc/dyn_load.c 1999/06/03 12:44:49 1.2
+@@ -48,7 +48,8 @@
+ #if !defined(SUNOS4) && !defined(SUNOS5DL) && !defined(IRIX5) && \
+ !defined(MSWIN32) && !(defined(ALPHA) && defined(OSF1)) && \
+ !defined(HP_PA) && !(defined(LINUX) && defined(__ELF__)) && \
+- !defined(RS6000) && !defined(SCO_ELF)
++ !defined(RS6000) && !defined(SCO_ELF) && \
++ !(defined(NETBSD) && defined(POWERPC))
+ --> We only know how to find data segments of dynamic libraries for the
+ --> above. Additional SVR4 variants might not be too
+ --> hard to add.
+@@ -260,14 +261,22 @@
+ # endif /* !USE_PROC ... */
+ # endif /* SUNOS */
+
+-#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF)
++#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
++ (defined(NETBSD) && defined(POWERPC))
+
+ /* Dynamic loading code for Linux running ELF. Somewhat tested on
+ * Linux/x86, untested but hopefully should work on Linux/Alpha.
+ * This code was derived from the Solaris/ELF support. Thanks to
+ * whatever kind soul wrote that. - Patrick Bridges */
+
++#if defined(NETBSD)
++#include <sys/exec_elf.h>
++#define DT_DEBUG 21
++#define PT_LOAD 1
++#define PF_W 0x2
++#else
+ #include <elf.h>
++#endif
+ #include <link.h>
+
+ /* Newer versions of Linux/Alpha and Linux/x86 define this macro. We
+Index: gc/gcconfig.h
+===================================================================
+RCS file: /cvsroot/w3m/gc/gcconfig.h,v
+retrieving revision 1.1.1.2
+retrieving revision 1.2
+diff -u -u -r1.1.1.2 -r1.2
+--- gc/gcconfig.h 1999/06/02 19:29:18 1.1.1.2
++++ gc/gcconfig.h 1999/06/03 12:44:49 1.2
+@@ -48,6 +48,11 @@
+ # define NETBSD
+ # define mach_type_known
+ # endif
++# if defined(__NetBSD__) && defined(__powerpc__)
++# define POWERPC
++# define NETBSD
++# define mach_type_known
++# endif
+ # if defined(vax)
+ # define VAX
+ # ifdef ultrix
+@@ -486,8 +491,8 @@
+
+ # ifdef POWERPC
+ # define MACH_TYPE "POWERPC"
+-# define ALIGNMENT 2
+ # ifdef MACOS
++# define ALIGNMENT 2
+ # ifndef __LOWMEM__
+ # include <LowMem.h>
+ # endif
+@@ -497,6 +502,7 @@
+ # define DATAEND /* not needed */
+ # endif
+ # ifdef LINUX
++# define ALIGNMENT 2
+ # define OS_TYPE "LINUX"
+ # define HEURISTIC1
+ # undef STACK_GRAN
+@@ -504,6 +510,14 @@
+ # define DATASTART GC_data_start
+ extern int _end;
+ # define DATAEND (&_end)
++# endif
++# ifdef NETBSD
++# define ALIGNMENT 4
++# define OS_TYPE "NETBSD"
++# define HEURISTIC2
++ extern char etext;
++# define DATASTART GC_data_start
++# define DYNAMIC_LOADING
+ # endif
+ # endif
+
+Index: gc/misc.c
+===================================================================
+RCS file: /cvsroot/w3m/gc/misc.c,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -u -u -r1.1.1.1 -r1.2
+--- gc/misc.c 1999/06/02 19:23:56 1.1.1.1
++++ gc/misc.c 1999/06/03 12:44:50 1.2
+@@ -433,6 +433,9 @@
+ # if defined(LINUX) && defined(SPARC)
+ GC_init_linuxsparc();
+ # endif
++# if defined(NETBSD) && defined(POWERPC)
++ GC_init_netbsd_powerpc();
++# endif
+ # ifdef SOLARIS_THREADS
+ GC_thr_init();
+ /* We need dirty bits in order to find live stack sections. */
+Index: gc/os_dep.c
+===================================================================
+RCS file: /cvsroot/w3m/gc/os_dep.c,v
+retrieving revision 1.1.1.2
+retrieving revision 1.2
+diff -u -u -r1.1.1.2 -r1.2
+--- gc/os_dep.c 1999/06/02 19:29:10 1.1.1.2
++++ gc/os_dep.c 1999/06/03 12:44:50 1.2
+@@ -84,6 +84,19 @@
+ # include <machine/trap.h>
+ #endif
+
++#if defined(NETBSD) && defined(POWERPC)
++ ptr_t GC_data_start;
++
++ void GC_init_netbsd_powerpc()
++ {
++ extern ptr_t GC_find_limit();
++ extern char **environ;
++ /* This may need to be environ, without the underscore, for */
++ /* some versions. */
++ GC_data_start = GC_find_limit((ptr_t)&environ, FALSE);
++ }
++#endif
++
+ #ifdef AMIGA
+ # include <proto/exec.h>
+ # include <proto/dos.h>
+
diff --git a/Patches/mipsel b/Patches/mipsel
new file mode 100644
index 0000000..c3c6be1
--- /dev/null
+++ b/Patches/mipsel
@@ -0,0 +1,184 @@
+diff -ur gc/gcconfig.h w3m/gc/gcconfig.h
+--- gc/gcconfig.h Tue Jan 4 14:46:50 2000
++++ gc/gcconfig.h Fri May 26 00:30:56 2000
+@@ -67,11 +67,13 @@
+ # if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
+ # define ULTRIX
+ # else
+-# if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) || defined(__SYSTYPE_SVR4__)
+-# define IRIX5 /* or IRIX 6.X */
+-# else
+-# define RISCOS /* or IRIX 4.X */
+-# endif
++# if !defined(LINUX)
++# if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) || defined(__SYSTYPE_SVR4__)
++# define IRIX5 /* or IRIX 6.X */
++# else
++# define RISCOS /* or IRIX 4.X */
++# endif
++# endif
+ # endif
+ # define mach_type_known
+ # endif
+@@ -836,49 +838,58 @@
+
+ # ifdef MIPS
+ # define MACH_TYPE "MIPS"
+-# ifndef IRIX5
+-# define DATASTART (ptr_t)0x10000000
++# ifdef LINUX
++# define OS_TYPE "LINUX"
++ extern int __data_start;
++# define DATASTART ((ptr_t)(&__data_start))
++# define ALIGNMENT 4
++# define USE_GENERIC_PUSH_REGS 1
++# define STACKBOTTOM 0x80000000
++# else /* LINUX */
++# ifndef IRIX5
++# define DATASTART (ptr_t)0x10000000
+ /* Could probably be slightly higher since */
+ /* startup code allocates lots of stuff. */
+-# else
+- extern int _fdata;
+-# define DATASTART ((ptr_t)(&_fdata))
+-# ifdef USE_MMAP
+-# define HEAP_START (ptr_t)0x30000000
+ # else
+-# define HEAP_START DATASTART
+-# endif
++ extern int _fdata;
++# define DATASTART ((ptr_t)(&_fdata))
++# ifdef USE_MMAP
++# define HEAP_START (ptr_t)0x30000000
++# else
++# define HEAP_START DATASTART
++# endif
+ /* Lowest plausible heap address. */
+ /* In the MMAP case, we map there. */
+ /* In either case it is used to identify */
+ /* heap sections so they're not */
+ /* considered as roots. */
+-# endif /* IRIX5 */
+-# define HEURISTIC2
++# endif /* IRIX5 */
++# define HEURISTIC2
+ /* # define STACKBOTTOM ((ptr_t)0x7fff8000) sometimes also works. */
+-# ifdef ULTRIX
+-# define OS_TYPE "ULTRIX"
+-# define ALIGNMENT 4
+-# endif
+-# ifdef RISCOS
+-# define OS_TYPE "RISCOS"
+-# define ALIGNMENT 4 /* Required by hardware */
+-# endif
+-# ifdef IRIX5
+-# define OS_TYPE "IRIX5"
+-# define MPROTECT_VDB
+-# ifdef _MIPS_SZPTR
+-# define CPP_WORDSZ _MIPS_SZPTR
+-# define ALIGNMENT (_MIPS_SZPTR/8)
+-# if CPP_WORDSZ != 64
++# ifdef ULTRIX
++# define OS_TYPE "ULTRIX"
++# define ALIGNMENT 4
++# endif
++# ifdef RISCOS
++# define OS_TYPE "RISCOS"
++# define ALIGNMENT 4 /* Required by hardware */
++# endif
++# ifdef IRIX5
++# define OS_TYPE "IRIX5"
++# define MPROTECT_VDB
++# ifdef _MIPS_SZPTR
++# define CPP_WORDSZ _MIPS_SZPTR
++# define ALIGNMENT (_MIPS_SZPTR/8)
++# if CPP_WORDSZ != 64
++# define ALIGN_DOUBLE
++# endif
++# else
++# define ALIGNMENT 4
+ # define ALIGN_DOUBLE
+ # endif
+-# else
+-# define ALIGNMENT 4
+-# define ALIGN_DOUBLE
+-# endif
+-# define DYNAMIC_LOADING
+-# endif
++# define DYNAMIC_LOADING
++# endif
++# endif
+ # endif
+
+ # ifdef RS6000
+diff -ur gc/mach_dep.c w3m/gc/mach_dep.c
+--- gc/mach_dep.c Tue Jan 4 14:46:50 2000
++++ gc/mach_dep.c Fri May 26 00:34:11 2000
+@@ -74,6 +74,21 @@
+ # ifdef RT
+ register long TMP_SP; /* must be bound to r11 */
+ # endif
++# if defined(MIPS) && defined(LINUX)
++# define call_push(x) asm("move $4," x ";"); asm("jal GC_push_one")
++ call_push("$2");
++ call_push("$3");
++ call_push("$16");
++ call_push("$17");
++ call_push("$18");
++ call_push("$19");
++ call_push("$20");
++ call_push("$21");
++ call_push("$22");
++ call_push("$23");
++ call_push("$30");
++# undef call_push
++# endif /* MIPS && LINUX */
+ # ifdef VAX
+ /* VAX - generic code below does not work under 4.2 */
+ /* r1 through r5 are caller save, and therefore */
+@@ -338,7 +353,9 @@
+ # if !(defined M68K) && !(defined VAX) && !(defined RT)
+ # if !(defined SPARC) && !(defined I386) && !(defined NS32K)
+ # if !defined(POWERPC) && !defined(UTS4)
++# if (!defined(MIPS) && !defined(LINUX))
+ --> bad news <--
++# endif
+ # endif
+ # endif
+ # endif
+diff -ur gc/misc.c w3m/gc/misc.c
+--- gc/misc.c Tue Jan 4 14:46:50 2000
++++ gc/misc.c Fri May 26 00:52:59 2000
+@@ -433,7 +433,8 @@
+ # ifdef MSWIN32
+ GC_init_win32();
+ # endif
+-# if defined(LINUX) && (defined(POWERPC) || defined(ALPHA) || defined(SPARC))
++# if defined(LINUX) && (defined(POWERPC) || defined(ALPHA) || \
++ defined(SPARC) || defined(MIPS))
+ GC_init_linux_data_start();
+ # endif
+ # ifdef SOLARIS_THREADS
+diff -ur gc/os_dep.c w3m/gc/os_dep.c
+--- gc/os_dep.c Tue Jan 4 14:46:50 2000
++++ gc/os_dep.c Fri May 26 00:37:07 2000
+@@ -72,7 +72,8 @@
+ # define NEED_FIND_LIMIT
+ # endif
+
+-# if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || defined(ALPHA))
++# if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || \
++ defined(ALPHA) || defined(MIPS))
+ # define NEED_FIND_LIMIT
+ # endif
+
+@@ -139,7 +140,8 @@
+ # define OPT_PROT_EXEC 0
+ #endif
+
+-#if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || defined(ALPHA))
++#if defined(LINUX) && (defined(POWERPC) || defined(SPARC) || \
++ defined(ALPHA) || defined(MIPS))
+ /* The I386 case can be handled without a search. The Alpha case */
+ /* used to be handled differently as well, but the rules changed */
+ /* for recent Linux versions. This seems to be the easiest way to */
diff --git a/Patches/newsos6 b/Patches/newsos6
new file mode 100644
index 0000000..4205511
--- /dev/null
+++ b/Patches/newsos6
@@ -0,0 +1,27 @@
+diff -ur gc/Makefile gc/Makefile
+--- gc/Makefile Sat Jul 24 02:53:34 1999
++++ gc/Makefile Tue Nov 30 14:29:50 1999
+@@ -7,7 +7,7 @@
+ # and runs some tests of collector and cords. Does not add cords or
+ # c++ interface to gc.a
+ # cord/de - builds dumb editor based on cords.
+-ABI_FLAG=
++ABI_FLAG=-KPIC
+ CC=cc $(ABI_FLAG)
+ CXX=CC $(ABI_FLAG)
+ AS=as $(ABI_FLAG)
+Only in gc: Makefile.back
+Only in gc: Makefile.orig
+diff -ur gc/gcconfig.h gc/gcconfig.h
+--- gc/gcconfig.h Fri Jul 9 05:03:22 1999
++++ gc/gcconfig.h Tue Nov 30 14:30:11 1999
+@@ -64,7 +64,8 @@
+ # endif
+ # if defined(mips) || defined(__mips)
+ # define MIPS
+-# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
++# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__) ||\
++ defined(nec_ews) || defined(__sony_news)
+ # define ULTRIX
+ # else
+ # if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) || defined(__SYSTYPE_SVR4__)
diff --git a/Patches/os2 b/Patches/os2
new file mode 100644
index 0000000..7067d71
--- /dev/null
+++ b/Patches/os2
@@ -0,0 +1,39 @@
+--- w3m-0.1.10/XMakefile Thu Jun 8 13:26:04 2000
++++ w3m-0.1.10-6/XMakefile Sun Jun 11 16:37:18 2000
+@@ -8,7 +8,7 @@
+ LOBJS=terms.o conv.o url.o ftp.o anchor.o mimehead.o hash.o tagtable.o
+ LLOBJS=version.o
+ ALIBOBJS=Str.o indep.o regex.o textlist.o parsetag.o
+-ALIB=libindep.a
++ALIB=indep.a
+ ALLOBJS=$(OBJS) $(LOBJS) $(LLOBJS)
+
+ TARGET=w3m$(EXT)
+@@ -31,13 +31,13 @@
+ $(CC) $(CFLAGS) -o $(TARGET) $(ALLOBJS) $(LIBS)
+
+ $(ALIB): $(ALIBOBJS)
+- $(AR) rv $(ALIB) $(ALIBOBJS)
++ $(AR) srv $(ALIB) $(ALIBOBJS)
+ $(RANLIB) $(ALIB)
+
+ $(OBJS): fm.h funcname1.h
+
+ tagtable.c: html.h tagtable.tab mktable$(EXT)
+- ./mktable 100 tagtable.tab > tagtable.c
++ mktable 100 tagtable.tab > tagtable.c
+
+ func.o: funcname.c
+ keybind.o: funcname2.h
+--- w3m-0.1.10/gc/os_dep.c Tue Jan 4 14:46:50 2000
++++ w3m-0.1.10-6/gc/os_dep.c Sun Jun 11 16:37:16 2000
+@@ -732,7 +732,9 @@
+ if (!(flags & OBJWRITE)) continue;
+ if (!(flags & OBJREAD)) continue;
+ if (flags & OBJINVALID) {
++#ifndef __EMX__
+ GC_err_printf0("Object with invalid pages?\n");
++#endif
+ continue;
+ }
+ GC_add_roots_inner(O32_BASE(seg), O32_BASE(seg)+O32_SIZE(seg), FALSE);