[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cannot bootstrap on NetBSD/cobalt
NAKAJI Hiroyuki <nakaji@xxxxxxxxxxxxxxxxxxx> writes:
> ;; 不動作報告です。
>
> Cobalt Cache RaQ2 で NetBSD/cobalt を動かしているので Emacs 22 を試してみ
> ましたが、temacs が動かず、bootstrap できませんでした。
NetBSD-3.99.11/hpcmips (X11 なし) が手元にあるので、試してみましたが、
同様の現象でした。temacs が正しい実行形式になっていません。
/usr/lib/crt{i,begin,end,n}.o がリンクされていませんので、
NetBSD/i386 と同じようにリンクすれば解決するのではと考えました。
src/s/netbsd.h で定義している START_FILES と LIB_STANDARD を
src/m/mips.h や src/m/pmax.h で壊しているのが原因のように思われます。
添付のパッチで、dump した emacs が起動するところまでは確認しました。
このパッチは、ほかの OS (特に OpenBSD や昔の NetBSD) で問題になるかもしれません。
---
Nozomu Ando
Index: src/m/mips.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/m/mips.h,v
retrieving revision 1.27
diff -u -r1.27 mips.h
--- src/m/mips.h 6 Feb 2006 15:23:23 -0000 1.27
+++ src/m/mips.h 6 Mar 2006 00:50:32 -0000
@@ -112,7 +112,7 @@
/* This machine requires completely different unexec code
which lives in a separate file. Specify the file name. */
-#ifndef __linux__
+#if !defined(__linux__) && !defined(__NetBSD__)
#undef UNEXEC
#define UNEXEC unexmips.o
#endif /* not __linux__ */
@@ -142,14 +142,6 @@
#if defined (__NetBSD__) || defined (__OpenBSD__)
#else /* bsd with elf */
#define LINKER /bsd43/bin/ld
-#endif /* bsd with elf */
-#else /* not BSD_SYSTEM */
-
-#if defined(__GNUC__) && defined(_ABIN32)
-#define LIBS_MACHINE
-#else
-#define LIBS_MACHINE -lmld
-#endif
#define LD_SWITCH_MACHINE -D 800000 -g3
#define START_FILES pre-crt0.o /usr/lib/crt1.o
@@ -159,6 +151,15 @@
#define C_SWITCH_MACHINE -I/usr/include/bsd
#define C_DEBUG_SWITCH -O -g3
+#endif /* bsd with elf */
+#else /* not BSD_SYSTEM */
+
+#if defined(__GNUC__) && defined(_ABIN32)
+#define LIBS_MACHINE
+#else
+#define LIBS_MACHINE -lmld
+#endif
+
#endif /* not BSD_SYSTEM */
#endif /* not NEWSOS5 && not __linux__ */
Index: src/m/pmax.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/m/pmax.h,v
retrieving revision 1.23
diff -u -r1.23 pmax.h
--- src/m/pmax.h 1 Sep 2003 15:45:58 -0000 1.23
+++ src/m/pmax.h 6 Mar 2006 00:50:32 -0000
@@ -13,29 +13,24 @@
#ifndef __MIPSEB__
#undef WORDS_BIG_ENDIAN
#endif
+#if !defined (__NetBSD__)
#undef LIB_STANDARD
#undef START_FILES
+#endif
#undef COFF
#undef TERMINFO
#define MAIL_USE_FLOCK
#define HAVE_UNION_WAIT
-
#ifdef MACH
#define START_FILES pre-crt0.o /usr/lib/crt0.o
#else
+#if !defined (__NetBSD__)
/* This line starts being needed with ultrix 4.0. */
/* You must delete it for version 3.1. */
#define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
#endif
-
-#if defined (__NetBSD__) || defined (__OpenBSD__)
-#undef START_FILES
-#define START_FILES pre-crt0.o /usr/lib/crt0.o
-#undef RUN_TIME_REMAP
-#undef UNEXEC
-#define UNEXEC unexelf.o
-#endif /* NetBSD || OpenBSD */
+#endif
/* Supposedly the following will overcome a kernel bug. */
#undef LD_SWITCH_MACHINE