[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
w3m-991203-sparc.patch
小林と申します。
w3mをNetBSD 1.4.1/SPARCで使いたいと思い、w3mのWeb Page
http://ei5nazha.yz.yamagata-u.ac.jp/%7Eaito/w3m/
で、
-----
砂川さんはNetBSDの各種プラットフォームへのw3m移植をしておられるようですので,
PowerPC以外のNetBSDシステムでw3mを使いたい方は,以下まで連絡してほしいとの
ことです.
メイリングリスト
英語 tech-pkg@netbsd.org
日本語 tech-pkg-ja@jp.netbsd.org
-----
のように書いてありましたので subscribe させて頂きました。
w3mのsparc用pkgは少し古いバージョンでしたので、
パッチを拝見させて頂き、w3m-991203のgcに対して
同様の修正をして、パッチとしてまとめました。
但し、手を入れたのはsparcの部分のみです。
SSLも使えてます。
----
小林 寿浩 Email(会社): koba@lsig.nel.co.jp
(こばやし としひろ) Email(自宅): toshinyo@mtf.biglobe.ne.jp
★ SPARCしようよ ★ http://www2s.biglobe.ne.jp/~toshinyo/
diff -ur w3m.org/gc/dyn_load.c w3m/gc/dyn_load.c
--- w3m.org/gc/dyn_load.c Thu Nov 11 14:21:04 1999
+++ w3m/gc/dyn_load.c Thu Dec 16 11:52:37 1999
@@ -48,7 +48,7 @@
#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)
--> 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 +260,21 @@
# endif /* !USE_PROC ... */
# endif /* SUNOS */
-#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF)
+#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || defined(NETBSD) && defined(__ELF__)
/* 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
diff -ur w3m.org/gc/gcconfig.h w3m/gc/gcconfig.h
--- w3m.org/gc/gcconfig.h Thu Nov 11 14:21:05 1999
+++ w3m/gc/gcconfig.h Thu Dec 16 15:25:03 1999
@@ -53,6 +53,11 @@
# define NETBSD
# define mach_type_known
# endif
+# if defined(__NetBSD__) && defined(__sparc__)
+# define SPARC
+# define NETBSD
+# define mach_type_known
+# endif
# if defined(vax)
# define VAX
# ifdef ultrix
@@ -94,7 +99,7 @@
# define RT
# define mach_type_known
# endif
-# if defined(sun) && (defined(sparc) || defined(__sparc))
+# if defined(sun) && (defined(sparc) || defined(__sparc)) && !defined(__NetBSD__)
# define SPARC
/* Test for SunOS 5.x */
# include <errno.h>
@@ -106,11 +111,16 @@
# define mach_type_known
# endif
# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \
- && !defined(__OpenBSD__)
+ && !defined(__OpenBSD__) && !defined(__NetBSD__)
# define SPARC
# define DRSNX
# define mach_type_known
# endif
+# if defined(__NetBSD__) && defined(__sparc__)
+# define SPARC
+# define NETBSD
+# define mach_type_known
+# endif
# if defined(_IBMR2)
# define RS6000
# define mach_type_known
@@ -631,6 +641,11 @@
# define STACKBOTTOM ((ptr_t) 0xf8000000)
# define DATASTART ((ptr_t)(&etext))
# endif
+# ifdef NETBSD
+# define OS_TYPE "NETBSD"
+# define HEURISTIC2
+# define DATASTART ((ptr_t)(&etext))
+# endif
# endif
# ifdef I386
@@ -1088,7 +1103,7 @@
/* Use setjmp based hack to mark from callee-save registers. */
# define USE_GENERIC_PUSH_REGS
# endif
-# if defined(SPARC) && !defined(LINUX)
+# if defined(SPARC) && !defined(LINUX) && !defined(NETBSD)
# define SAVE_CALL_CHAIN
# define ASM_CLEAR_CODE /* Stack clearing is crucial, and we */
/* include assembly code to do it well. */
diff -ur w3m.org/gc/misc.c w3m/gc/misc.c
--- w3m.org/gc/misc.c Thu Nov 11 14:21:04 1999
+++ w3m/gc/misc.c Thu Dec 16 15:08:06 1999
@@ -430,6 +430,9 @@
# if defined(LINUX) && (defined(POWERPC) || defined(ALPHA) || defined(SPARC))
GC_init_linux_data_start();
# endif
+# if defined(NETBSD) && defined(__ELF__)
+ GC_init_netbsd_elf();
+# endif
# ifdef SOLARIS_THREADS
GC_thr_init();
/* We need dirty bits in order to find live stack sections. */
diff -ur w3m.org/gc/os_dep.c w3m/gc/os_dep.c
--- w3m.org/gc/os_dep.c Thu Nov 11 14:21:04 1999
+++ w3m/gc/os_dep.c Thu Dec 16 15:12:27 1999
@@ -2400,7 +2400,7 @@
* Call stack save code for debugging.
* Should probably be in mach_dep.c, but that requires reorganization.
*/
-#if defined(SPARC) && !defined(LINUX)
+#if defined(SPARC) && !defined(LINUX) && !defined(NETBSD)
# if defined(SUNOS4)
# include <machine/frame.h>
# else