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=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,12 @@ (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). + + 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 . */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="" */ + +/* 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) */