Index: [Article Count Order] [Thread]

Date:  Wed, 07 Feb 2001 09:31:18 +0900
From:  miwanaga@jeol.co.jp
Subject:  [linuxce-jp:02072] Re: MC-R320 にインストールしました   (Re: New RPMS, ksh, xinitrc)
To:  linuxce-jp@peanuts.gr.jp
Message-Id:  <d6itmn2v1l.wl@ebpanic.sdd.jeol.co.jp>
In-Reply-To:  In your message of "Tue, 06 Feb 2001 11:50:17 +0900"	<yyslr91cle3a.wl@as304.ecc.u-tokyo.ac.jp>
References:  <d63ddsoae2.wl@ebpanic.sdd.jeol.co.jp>	<yyslr91cle3a.wl@as304.ecc.u-tokyo.ac.jp>
X-Mail-Count: 02072

いわなが です。

 おはようございます。

At Tue, 06 Feb 2001 11:50:17 +0900,
KOMACHI Mamoru <g830509@mail.ecc.u-tokyo.ac.jp> wrote:
> 
> At Tue, 06 Feb 2001 10:41:57 +0900,
> miwanaga@jeol.co.jp wrote:
> 
> >   ・試行錯誤して、なんとか(たまたま) Nemacs が動いています。
> 
> それはそれは。ぜひやりかたを教えてください(^^; unex* あたりをどうにかす
> ればできるとは思っているのですが……。
> 
> # dump できない temacs ができたまま放置してあります(^^;;

  もとにしているソースファイルが異なるかもしれないので、うだうだ書く
  ことにしました。

#  わたしが intel版Linux 上で使用している Nemacs は、
#  http://www.remus.dti.ne.jp/~czkmt/www/nemacs.html から
#
#	emacs-18.59.tar.gz (Emacs本体)
#	emacs-18.59-nemacs-3.3.2+lx.diff.bz2 (Nemacs化パッチ+Linuxパッチ)
#	emacs-18.59-nemacs-extra.tar.gz2 (dumpに必要なファイル他)
#
#  をダウンロードしてつくったものです。

  m-mipsel.h: m-mips.h からコピーし、以下のように書き変えました。

	│/* m- file for Mips machines.
	│   Copyright (C) 1987 Free Software Foundation, Inc.
	│
	│This file is part of GNU Emacs.
	│
	│GNU Emacs is free software; you can redistribute it and/or modify
	│it under the terms of the GNU General Public License as published by
	│the Free Software Foundation; either version 1, or (at your option)
	│any later version.
	│
	│GNU Emacs is distributed in the hope that it will be useful,
	│but WITHOUT ANY WARRANTY; without even the implied warranty of
	│MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	│GNU General Public License for more details.
	│
	│You should have received a copy of the GNU General Public License
	│along with GNU Emacs; see the file COPYING.  If not, write to
	│the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
	│
	│
	│/* The following three symbols give information on
	│ the size of various data types.  */
	│
	│#define SHORTBITS 16		/* Number of bits in a short */
	│
	│#define INTBITS 32		/* Number of bits in an int */
	│
	│#define LONGBITS 32		/* Number of bits in a long */
	│
	│#define GCTYPEBITS 6
	│
	│#define DATA_SEG_BITS 		((unsigned long)0x10000000)	/* $$$$ */
	│
	│/* Define BIG_ENDIAN iff lowest-numbered byte in a word
	│   is the most significant byte.  */
	│
	│/*#define BIG_ENDIAN*/
	│
	│/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
	│ * group of arguments and treat it as an array of the arguments.  */
	│
	│#define NO_ARG_ARRAY
	│
	│/* Define WORD_MACHINE if addresses and such have
	│ * to be corrected before they can be used as byte counts.  */
	│
	│/* #define WORD_MACHINE */
	│
	│/* Define how to take a char and sign-extend into an int.
	│   On machines where char is signed, this is a no-op.  */
	│
	│#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
	│
	│/* Now define a symbol for the cpu type, if your compiler
	│   does not define it automatically:
	│   Ones defined so far include vax, m68000, ns16000, pyramid,
	│   orion, tahoe, APOLLO and many others */
	│#ifndef mips
	│#	define mips
	│#endif
	│
	│/* Use type int rather than a union, to represent Lisp_Object */
	│/* This is desirable for most machines.  */
	│
	│#define NO_UNION_TYPE
	│
	│/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
	│   the 24-bit bit field into an int.  In other words, if bit fields
	│   are always unsigned.
	│
	│   If you use NO_UNION_TYPE, this flag does not matter.  */
	│
	│#define EXPLICIT_SIGN_EXTEND
	│
	│/* Data type of load average, as read out of kmem.  */
	│
	│#define LOAD_AVE_TYPE long
	│
	│/* Convert that into an integer that is 100 for a load average of 1.0  */
	│
	│#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0)
	│
	│/* Define CANNOT_DUMP on machines where unexec does not work.
	│   Then the function dump-emacs will not be defined
	│   and temacs will do (load "loadup") automatically unless told otherwise.  */
	│
	│/* #define CANNOT_DUMP */
	│
	│/* Define VIRT_ADDR_VARIES if the virtual addresses of
	│   pure and impure space as loaded can vary, and even their
	│   relative order cannot be relied on.
	│
	│   Otherwise Emacs assumes that text space precedes data space,
	│   numerically.  */
	│
	│/* #define VIRT_ADDR_VARIES */
	│
	│/* Define C_ALLOCA if this machine does not support a true alloca
	│   and the one written in C should be used instead.
	│   Define HAVE_ALLOCA to say that the system provides a properly
	│   working alloca function and it should be used.
	│   Define neither one if an assembler-language alloca
	│   in the file alloca.s should be used.  */
	│
	│#ifdef __GNUC__
	│#define HAVE_ALLOCA
	│# ifndef alloca
	│#   define alloca(n) __builtin_alloca(n)
	│# endif
	│#else
	│#define C_ALLOCA
	│#endif
	│
	│/* Define NO_REMAP if memory segmentation makes it not work well
	│   to change the boundary between the text section and data section
	│   when Emacs is dumped.  If you define this, the preloaded Lisp
	│   code will not be sharable; but that's better than failing completely.  */
	│
	│/* #define NO_REMAP */
	│
	│/* This machine requires completely different unexec code
	│   which lives in a separate file.  Specify the file name.  */
	│
	│/* #define UNEXEC unexmips.o */
	│
	│/* Describe layout of the address space in an executing process.  */
	│
	│/*#define TEXT_START 0x400000*/
	│/*#define DATA_START 0x800000*/
	│
	│/* Alter some of the options used when linking.  */
	│
	│#define START_FILES pre-crt0.o 
	│#define C_COMPILER gcc
	│#define C_SWITCH_MACHINE
	│#define C_DEBUG_SWITCH -g -O -w
	│#define LINKER gcc
	│#define LD_SWITCH_MACHINE
	│#define LIB_STANDARD -lc 
	│/*#define LIBS_TERMCAP -lncurses*/
	│#define LIBS_MACHINE
	│
	│#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11)
	│#define HAVE_VFORK		/* Graciously provided by libX.a */
	│#endif
	│
	│/* The standard definitions of these macros would work ok,
	│   but these are faster because the constants are short.  */
	│
	│#define XUINT(a) (((unsigned)(a) << (INTBITS-VALBITS)) >> (INTBITS-VALBITS))
	│
	│#define XSET(var, type, ptr)						\
	│  ((var) =								\
	│   ((int)(type) << VALBITS)						\
	│   + (((unsigned) (ptr) << (INTBITS-VALBITS)) >> (INTBITS-VALBITS)))
	│
	│#define XSETINT(a, b)  XSET(a, XTYPE(a), b)
	│#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
	│#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
	│
	│#define XUNMARK(a)							\
	│  ((a) =								\
	│   (((unsigned)(a) << (INTBITS-GCTYPEBITS-VALBITS))			\
	│    >> (INTBITS-GCTYPEBITS-VALBITS)))
	│
	│#ifndef NEWSOS5
	│#ifdef USG
	│
	│/* Cancel certain parts of standard sysV support.  */
	│#undef NONSYSTEM_DIR_LIBRARY
	│#define SYSV_SYSTEM_DIR
	│#undef static
	│
	│/* Don't try to use SIGIO or FIONREAD even though they are defined.  */
	│#undef SIGIO
	│#define BROKEN_FIONREAD
	│
	│/* Describe special kernel features.  */
	│
	│#define HAVE_SYSVIPC
	│
	│#define HAVE_TIMEVAL
	│#if defined(emacs) && !defined(INHIBIT_BSD_TIME)
	│#include <sys/time.h>
	│#endif
	│
	│/* #define HAVE_SELECT
	│   The `select' in the system won't work for pipes,
	│   so don't use it.  */
	│
	│#define HAVE_DUP2
	│#define HAVE_GETWD
	│#define HAVE_GETTIMEOFDAY
	│
	│#define HAVE_PTYS
	│#define HAVE_SOCKETS
	│
	│#undef NOMULTIPLEJOBS
	│#define utimes utime  /* Someone should check this.  */
	│
	│/* ??? */
	│#define IRIS
	│
	│#endif /* USG */
	│
	│#ifdef BSD
	│#define COFF
	│#define TERMINFO
	│#undef MAIL_USE_FLOCK  /* Someone should check this.  */
	│#undef HAVE_UNION_WAIT
	│#endif /* BSD */
	│
	│#endif /* not NEWSOS5 */
	│
	│/* Load average requires special crocks.  Version 19 has them.
	│   For now, this avoids a bug.  */
	│#undef LOAD_AVE_TYPE

  m-linux.h:

	m-intel386.h の代りに m-mipsel.h をincludeするように変更。

  s-linux.h:

	DATA_SEG_BITS, START_FILES, LIB_STANDARD, C_COMPILRE,
	C_DEBUG_SWITCH, C_OPTIMIZE_SWITCH, OLDXMENU_OPTIONS,
	LIB_X11_LIB, ORDINALY_LINK をすてコメントアウト。

	#define SIGBUS ... の前に、#undef SIGBUS を追加。
	#define SIGSYS ... の前に、#undef SIGSYS を追加。

  callproc.c:
  emacs.c:

	#include <sys/types.h> の前に、

	│#define __USE_GNU
	│#include <unistd.h>
	│#undef environ
	│#define environ __environ

	を追加。

  filio.c:

	extern char *sys_errlist[]; を削除。

  process.c:

	#include <sys/types.h> の前に、

	│#define __USE_GNU
	│#include <unistd.h>
	│#undef environ
	│#define environ __environ

	を追加。

	extern char *sys_errlist[]; を削除。
	
	sys_siglist[...] を strsignal(...) に変更(3個所)。

  sysdep.c:

	extern char *sys_errlist[]; を削除。

	getpgrp(0) を getpgrp() に変更(2個所)。

	│  extern in _start ();
	│  return ((char *) _start);

	を

	│  extern in __start ();
	│  return ((char *) __start);

	に変更。

  unexelf.c:  

	│      if (!strcmp (old_section_names + OLD_SECTION_H(old_bss_index).sh_name,
	│		   ".bss"))

	を

	│      if (!strcmp (old_section_names + OLD_SECTION_H(old_bss_index).sh_name,
	│		   ".sbss"))

	に変更。

--------------------------------------------------------------------
いわなが    日本電子(株) システム技術本部 第1システムグループ
まさかず    miwanaga@jeol.co.jp(会社), m-iwanaga@nyc.odn.ne.jp(自宅)