[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SuperH port
From: |
Ulrich Mueller |
Subject: |
Re: SuperH port |
Date: |
Fri, 17 Oct 2008 22:26:43 +0200 |
>>>>> On Thu, 16 Oct 2008, Dan Nicolaescu wrote:
> On all the machines that I am aware off that support both big and
> little endian the compiler predefines a symbol to distinguish
> between them.
It turns out that gcc defines __LITTLE_ENDIAN__ and __BIG_ENDIAN__,
respectively:
$ echo | sh4-gentoo-linux-uclibc-gcc -nostdinc -dM -E - | grep ENDIAN
__LITTLE_ENDIAN__
(To add some confusion, endian.h then also defines _all_ four of
__LITTLE_ENDIAN, LITTLE_ENDIAN, __BIG_ENDIAN, and BIG_ENDIAN,
regardless of the machine's byte sex. Go figure.)
> I'll install this when the endianess issue gets resolved.
I still think that my previous approach (include sys/param.h and
test for __BYTE_ORDER) was cleaner. But if you absolutely want a
compiler-defined symbol, an updated patch is included below.
Ulrich
emacs/ChangeLog entry:
2008-10-16 Ulrich Mueller <address@hidden>
* configure.in: Add support for GNU/Linux on SuperH.
emacs/etc/ChangeLog entry:
2008-10-16 Ulrich Mueller <address@hidden>
* MACHINES: Add section for SuperH.
emacs/src/ChangeLog entry:
2008-10-16 Ulrich Mueller <address@hidden>
* m/sh3.h: New file, machine description for SuperH.
--- emacs-orig/configure.in 2008-08-28 22:31:27.000000000 +0200
+++ emacs/configure.in 2008-10-16 17:27:37.000000000 +0200
@@ -540,6 +540,11 @@
machine=xtensa opsys=gnu-linux
;;
+ ## SuperH Linux-based GNU system
+ sh[34]*-*-linux-gnu* )
+ machine=sh3 opsys=gnu-linux
+ ;;
+
* )
unported=yes
;;
--- emacs-orig/etc/MACHINES 2008-08-01 23:44:40.000000000 +0200
+++ emacs/etc/MACHINES 2008-10-16 17:27:37.000000000 +0200
@@ -426,6 +426,12 @@
(now remapped as part of the text). These are never
swapped in.
+SuperH (sh[34]*-*-linux-gnu)
+
+ 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.
+
Tadpole 68K (m68k-tadpole-sysv)
Changes merged in 19.1.
--- emacs-orig/src/m/sh3.h 1970-01-01 01:00:00.000000000 +0100
+++ emacs/src/m/sh3.h 2008-10-16 17:27:37.000000000 +0200
@@ -0,0 +1,20 @@
+/* Machine description file for SuperH. */
+
+/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
+ is the most significant byte. */
+
+#if defined (__LITTLE_ENDIAN__) && !defined (__BIG_ENDIAN__)
+# undef WORDS_BIG_ENDIAN
+#elif defined (__BIG_ENDIAN__) && !defined (__LITTLE_ENDIAN__)
+# define WORDS_BIG_ENDIAN
+#else
+# error "cannot determine byte sex"
+#endif
+
+/* 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
+
+/* arch-tag: c997297c-9b92-11dd-b25e-0012f098dd76
+ (do not change this comment) */
- SuperH port, Ulrich Mueller, 2008/10/08
- Re: SuperH port, Ulrich Mueller, 2008/10/08
- Re: SuperH port, Dan Nicolaescu, 2008/10/08
- Re: SuperH port, Ulrich Mueller, 2008/10/08
- Re: SuperH port, Stefan Monnier, 2008/10/08
- Re: SuperH port, Ulrich Mueller, 2008/10/15
- Re: SuperH port, Dan Nicolaescu, 2008/10/15
- Re: SuperH port, Ulrich Mueller, 2008/10/16
- Re: SuperH port, Dan Nicolaescu, 2008/10/17
- Re: SuperH port,
Ulrich Mueller <=
- Re: SuperH port, Andreas Schwab, 2008/10/17
- Re: SuperH port, Ulrich Mueller, 2008/10/17
- Re: SuperH port, Ulrich Mueller, 2008/10/18
- Re: SuperH port, Dan Nicolaescu, 2008/10/18
Re: SuperH port, Ulrich Mueller, 2008/10/09