From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ulrich Mueller Newsgroups: gmane.emacs.devel Subject: SuperH port Date: Wed, 8 Oct 2008 11:17:15 +0200 Message-ID: <18668.31387.21197.719443@a1ihome1.kph.uni-mainz.de> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1223457498 2351 80.91.229.12 (8 Oct 2008 09:18:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 8 Oct 2008 09:18:18 +0000 (UTC) Cc: sh@gentoo.org, emacs@gentoo.org To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 08 11:19:14 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KnVBt-0000oH-5Y for ged-emacs-devel@m.gmane.org; Wed, 08 Oct 2008 11:18:45 +0200 Original-Received: from localhost ([127.0.0.1]:55984 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KnVAo-0000iK-DM for ged-emacs-devel@m.gmane.org; Wed, 08 Oct 2008 05:17:38 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KnVAh-0000hm-IC for emacs-devel@gnu.org; Wed, 08 Oct 2008 05:17:31 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KnVAf-0000gM-3s for emacs-devel@gnu.org; Wed, 08 Oct 2008 05:17:29 -0400 Original-Received: from [199.232.76.173] (port=41793 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KnVAe-0000g8-Pj for emacs-devel@gnu.org; Wed, 08 Oct 2008 05:17:28 -0400 Original-Received: from a1iwww1.kph.uni-mainz.de ([134.93.134.1]:39091) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KnVAe-0004fy-EB for emacs-devel@gnu.org; Wed, 08 Oct 2008 05:17:28 -0400 Original-Received: from a1ihome1.kph.uni-mainz.de (a1ihome1.kph.uni-mainz.de [134.93.134.75]) by a1iwww1.kph.uni-mainz.de (8.14.0/8.13.4) with ESMTP id m989HF0K025174; Wed, 8 Oct 2008 11:17:15 +0200 Original-Received: from a1ihome1.kph.uni-mainz.de (localhost [127.0.0.1]) by a1ihome1.kph.uni-mainz.de (8.14.0/8.14.1) with ESMTP id m989HFG8025761; Wed, 8 Oct 2008 11:17:15 +0200 Original-Received: (from ulm@localhost) by a1ihome1.kph.uni-mainz.de (8.14.0/8.14.0/Submit) id m989HFPW025756; Wed, 8 Oct 2008 11:17:15 +0200 X-Mailer: VM 8.0.2-487 under Emacs 22.2.1 (i686-pc-linux-gnu) X-MIME-Autoconverted: from 8bit to quoted-printable by a1iwww1.kph.uni-mainz.de id m989HF0K025174 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:104415 Archived-At: Hello, please find below a patch that ports Emacs to SuperH running GNU/Linux. (Thanks to the Gentoo SuperH architecture team, especially Ra=FAl 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 * 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 * MACHINES: Add section for SuperH. emacs/src/ChangeLog entry: 2008-10-01 Ulrich Mueller * 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=3Darm ;; x86_64-*-netbsd*) machine=3Damdx86-64 ;; hppa-*-netbsd*) machine=3Dhp800 ;; + shle-*-netbsd*) machine=3Dsh3el ;; esac ;; =20 @@ -346,6 +347,7 @@ arm-*-openbsd*) machine=3Darm ;; i386-*-openbsd*) machine=3Dintel386 ;; powerpc-*-openbsd*) machine=3Dmacppc ;; + sh-*-openbsd*) machine=3Dsh3el ;; sparc*-*-openbsd*) machine=3Dsparc ;; vax-*-openbsd*) machine=3Dvax ;; x86_64-*-openbsd*) machine=3Damdx86-64 ;; @@ -540,6 +542,16 @@ machine=3Dxtensa opsys=3Dgnu-linux ;; =20 + ## SuperH (little endian) Linux-based GNU system + sh[34]-*-linux-gnu* ) + machine=3Dsh3el opsys=3Dgnu-linux + ;; + + ## SuperH (big endian) Linux-based GNU system + sh[34]eb-*-linux-gnu* ) + machine=3Dsh3eb opsys=3Dgnu-linux + ;; + * ) unported=3Dyes ;; --- 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. =20 +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) =20 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 . */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS=3D"" = */ + +/* 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 otherwis= e. */ + +#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) */