unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ulrich Mueller <ulm@gentoo.org>
To: emacs-devel@gnu.org
Cc: sh@gentoo.org, emacs@gentoo.org
Subject: SuperH port
Date: Wed, 8 Oct 2008 11:17:15 +0200	[thread overview]
Message-ID: <18668.31387.21197.719443@a1ihome1.kph.uni-mainz.de> (raw)

Hello,

please find below a patch that ports Emacs to SuperH running GNU/Linux.
(Thanks to the Gentoo SuperH architecture team, especially Raúl Porcel
for his help with testing.)

I've also restored the two alternatives in configure.in for
shle-*-netbsd and sh-*-openbsd which were deleted in the recent
"desupport old platforms" campaign.

Ulrich


emacs/ChangeLog entry:

2008-10-01  Ulrich Mueller  <ulm@gentoo.org>

	* configure.in: Add support for GNU/Linux on SuperH.
	Restore deleted shle-*-netbsd and sh-*-openbsd alternatives.

emacs/etc/ChangeLog entry:

2008-10-01  Ulrich Mueller  <ulm@gentoo.org>

	* MACHINES: Add section for SuperH.

emacs/src/ChangeLog entry:

2008-10-01  Ulrich Mueller  <ulm@gentoo.org>

	* m/sh3el.h: Restore deleted file for SuperH support.
	(WORD_MACHINE, NO_UNION_TYPE): Remove obsolete definitions.
	* m/sh3eb.h: New file.


--- emacs-orig/configure.in	2008-08-28 22:31:27.000000000 +0200
+++ emacs/configure.in	2008-10-01 07:21:49.000000000 +0200
@@ -335,6 +335,7 @@
       arm-*-netbsd*)	machine=arm ;;
       x86_64-*-netbsd*)	machine=amdx86-64 ;;
       hppa-*-netbsd*)	machine=hp800 ;;
+      shle-*-netbsd*)	machine=sh3el ;;
     esac
   ;;
 
@@ -346,6 +347,7 @@
       arm-*-openbsd*)          machine=arm ;;
       i386-*-openbsd*)         machine=intel386 ;;
       powerpc-*-openbsd*)      machine=macppc ;;
+      sh-*-openbsd*)           machine=sh3el ;;
       sparc*-*-openbsd*)       machine=sparc ;;
       vax-*-openbsd*)          machine=vax ;;
       x86_64-*-openbsd*)       machine=amdx86-64 ;;
@@ -540,6 +542,16 @@
     machine=xtensa opsys=gnu-linux
     ;;
 
+  ## SuperH (little endian) Linux-based GNU system
+  sh[34]-*-linux-gnu* )
+    machine=sh3el opsys=gnu-linux
+  ;;
+
+  ## SuperH (big endian) Linux-based GNU system
+  sh[34]eb-*-linux-gnu* )
+    machine=sh3eb opsys=gnu-linux
+  ;;
+
   * )
     unported=yes
   ;;
--- emacs-orig/etc/MACHINES	2008-08-01 23:44:40.000000000 +0200
+++ emacs/etc/MACHINES	2008-10-01 07:22:52.000000000 +0200
@@ -426,6 +426,14 @@
   (now remapped as part of the text).  These are never
   swapped in.
 
+SuperH (sh*-*-linux-gnu, shle-*-netbsd, sh-*-openbsd)
+
+  Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
+  Tested on a little-endian sh4 system (cpu type SH7751R) running
+  Gentoo Linux 2008.0.
+
+  Status of SuperH support on NetBSD and OpenBSD is unknown.
+
 Tadpole 68K (m68k-tadpole-sysv)
 
   Changes merged in 19.1.
@@ -575,7 +581,6 @@
   PFU A-series (m/pfa50.h)
   Plexus running System V.2 (m/plexus.h)
   pyramid. (m/pyramid.h)
-  sh3el (m/sh3el.h)
   Bull SPS-7 (m/sps7.h)
   Hitachi SR2001/SR2201 (m/sr2k.h)
   Stride (m/stride.h)
--- emacs-orig/src/m/sh3eb.h	1970-01-01 01:00:00.000000000 +0100
+++ emacs/src/m/sh3eb.h	2008-10-01 07:20:54.000000000 +0200
@@ -0,0 +1,7 @@
+/* machine description file for big-endian SuperH. */
+
+#include "sh3el.h"
+#define WORDS_BIG_ENDIAN
+
+/* arch-tag: 86a90028-8f70-11dd-ac16-0012f098dd76
+   (do not change this comment) */
--- emacs-orig/src/m/sh3el.h	1970-01-01 01:00:00.000000000 +0100
+++ emacs/src/m/sh3el.h	2008-10-01 07:20:41.000000000 +0200
@@ -0,0 +1,92 @@
+/* machine description file for little-endian SuperH.
+   Copyright (C) 1985, 1986, 2006, 2007, 2008  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 3 of the License, 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.  If not, see <http://www.gnu.org/licenses/>.  */
+
+
+/* The following line tells the configuration script what sort of
+   operating system this machine is likely to run.
+   USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
+
+/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#undef WORDS_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
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically.  */
+
+/* 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.
+
+   This flag only matters if you use USE_LISP_UNION_TYPE.  */
+
+#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 / FSCALE)
+
+/* 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.  */
+
+#undef 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 HAVE_ALLOCA to say that the system provides a properly
+   working alloca function and it should be used.
+   Undefine it if an assembler-language alloca
+   in the file alloca.s should be used.  */
+
+#define HAVE_ALLOCA
+
+/* 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
+
+/* After adding support for a new system, modify the large case
+   statement in the `configure' script to recognize reasonable
+   configuration names, and add a description of the system to
+   `etc/MACHINES'.
+
+   If you've just fixed a problem in an existing configuration file,
+   you should also check `etc/MACHINES' to make sure its descriptions
+   of known problems in that configuration should be updated.  */
+
+/* arch-tag: ee325990-6f40-47a2-b9df-60ecf3599899
+   (do not change this comment) */




             reply	other threads:[~2008-10-08  9:17 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-08  9:17 Ulrich Mueller [this message]
2008-10-08 10:37 ` SuperH port Ulrich Mueller
2008-10-08 14:31 ` Dan Nicolaescu
2008-10-08 18:22   ` Ulrich Mueller
2008-10-08 18:47     ` Stefan Monnier
2008-10-15 21:16       ` Ulrich Mueller
2008-10-15 21:36         ` Dan Nicolaescu
2008-10-16 16:04           ` Ulrich Mueller
2008-10-17  6:04             ` Dan Nicolaescu
2008-10-17 20:26               ` Ulrich Mueller
2008-10-17 22:25                 ` Andreas Schwab
2008-10-17 22:56                   ` Ulrich Mueller
2008-10-18  8:39                   ` Ulrich Mueller
2008-10-18  8:12                 ` Dan Nicolaescu
2008-12-11  7:20                   ` Ulrich Mueller
2008-12-11  7:58                     ` Dan Nicolaescu
2008-10-09 10:24   ` Ulrich Mueller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=18668.31387.21197.719443@a1ihome1.kph.uni-mainz.de \
    --to=ulm@gentoo.org \
    --cc=emacs-devel@gnu.org \
    --cc=emacs@gentoo.org \
    --cc=sh@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).