aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2001-10-17 03:23:10 +0000
committerH. Peter Anvin <hpa@zytor.com>2001-10-17 03:23:10 +0000
commitda53395ccdb14220321de6813f2b92bc6764af35 (patch)
tree8635fb5408b95dc6d74b6e5ccf646d115962507b
parentc4c07523bf866b969581a126b43be1f4ef632123 (diff)
downloadlpsm-da53395ccdb14220321de6813f2b92bc6764af35.tar.gz
lpsm-da53395ccdb14220321de6813f2b92bc6764af35.tar.xz
lpsm-da53395ccdb14220321de6813f2b92bc6764af35.zip
Add definitions for all architectures currently supported by Linux,to-tytso-20011016
at least to the best of my abilities at the moment.
-rw-r--r--Makefile6
-rw-r--r--alloc.c10
-rw-r--r--sysdep/32bit.h20
-rw-r--r--sysdep/64bit.h21
-rw-r--r--sysdep/alpha.h25
-rw-r--r--sysdep/arm.h28
-rw-r--r--sysdep/cris.h25
-rw-r--r--sysdep/i386.h4
-rw-r--r--sysdep/ia64.h25
-rw-r--r--sysdep/m68k.h26
-rw-r--r--sysdep/mips32.h25
-rw-r--r--sysdep/mips64.h25
-rw-r--r--sysdep/parisc.h25
-rw-r--r--sysdep/ppc32.h25
-rw-r--r--sysdep/ppc64.h25
-rw-r--r--sysdep/s390.h25
-rw-r--r--sysdep/s390x.h25
-rw-r--r--sysdep/sh.h25
-rw-r--r--sysdep/sparc32.h26
-rw-r--r--sysdep/sparc64.h26
-rw-r--r--sysdep/x86_64.h27
-rw-r--r--system.h36
22 files changed, 492 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 31de296..36f6643 100644
--- a/Makefile
+++ b/Makefile
@@ -8,9 +8,11 @@ OSPICOBJ = $(patsubst %.o,%.pic.o,$(OSOBJ))
CC = gcc
# This is a reasonable set of flags for production
-# CFLAGS = -Wall -O3 -fomit-frame-pointer -DNDEBUG -D_FILE_OFFSET_BITS=64
+# CFLAGS = -I. -Wall -O3 -fomit-frame-pointer -DNDEBUG -D_FILE_OFFSET_BITS=64
+# LDFLAGS =
# This is for debugging
-CFLAGS = -Wall -O -g -D_FILE_OFFSET_BITS=64
+CFLAGS = -I. -Wall -O -g -D_FILE_OFFSET_BITS=64
+LDFLAGS = -g
PICFLAGS = $(CFLAGS) -fPIC
SOFLAGS = -shared
diff --git a/alloc.c b/alloc.c
index 02087e6..0b71725 100644
--- a/alloc.c
+++ b/alloc.c
@@ -104,17 +104,13 @@ struct arena_header {
#define ARENA_START_SIZE (1UL << ARENA_START_SIZE_LG2)
/* The data type to use for bitfield scanning. Typically should equal
- the "natural" size on the machine, which used to always be "int".
- Unfortunately, that's no longer true... and getting all of these,
- including the value "bitscan_shift" doesn't seem to be feasible
- without external help. */
-#ifdef BITSCAN_USE_UINT64
+ the "natural" size on the machine; defined in system.h. */
+#if MACHINE_SIZE_LG2 == 6
typedef uint64_t bitscan_t;
-# define BITSCAN_SHIFT 6
#else
typedef uint32_t bitscan_t;
-# define BITSCAN_SHIFT 5
#endif
+#define BITSCAN_SHIFT MACHINE_SIZE_LG2
#define BITSCAN_BITS (1 << BITSCAN_SHIFT)
#define BITSCAN_MASK (BITSCAN_BITS-1)
#define BITSCAN_0 ((bitscan_t)0)
diff --git a/sysdep/32bit.h b/sysdep/32bit.h
new file mode 100644
index 0000000..7c45761
--- /dev/null
+++ b/sysdep/32bit.h
@@ -0,0 +1,20 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/32bit.h
+ *
+ * Common definitions for 32-bit machines
+ */
+
+#define MACHINE_SIZE_LG2 5
diff --git a/sysdep/64bit.h b/sysdep/64bit.h
new file mode 100644
index 0000000..92c3799
--- /dev/null
+++ b/sysdep/64bit.h
@@ -0,0 +1,21 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/64bit.h
+ *
+ * Common definitions for 64-bit machines
+ */
+
+#define MACHINE_SIZE_LG2 6
+
diff --git a/sysdep/alpha.h b/sysdep/alpha.h
new file mode 100644
index 0000000..a15a4c1
--- /dev/null
+++ b/sysdep/alpha.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/alpha.h
+ *
+ * System-specific constants for alpha, included from system.h
+ */
+
+/* These constants are appropriate for Linux/alpha */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x28000000000UL)
diff --git a/sysdep/arm.h b/sysdep/arm.h
new file mode 100644
index 0000000..135110d
--- /dev/null
+++ b/sysdep/arm.h
@@ -0,0 +1,28 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/arm.h
+ *
+ * System-specific constants for arm, included from system.h
+ */
+
+/* These constants are appropriate for Linux/arm */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+/**** THIS ASSUMES AN ARM with TASK_SIZE 0xc0000000 which seems to apply
+ to most, but not all, ARM machines. I don't even bother with 26-bit
+ ARM marchines here... ****/
+#define ARENA_ADDRESS ((void *)0x5f000000UL)
diff --git a/sysdep/cris.h b/sysdep/cris.h
new file mode 100644
index 0000000..fb8c995
--- /dev/null
+++ b/sysdep/cris.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/cris.h
+ *
+ * System-specific constants for cris, included from system.h
+ */
+
+/* These constants are appropriate for Linux/cris */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x5f000000UL)
diff --git a/sysdep/i386.h b/sysdep/i386.h
index 91accc9..b8ce38b 100644
--- a/sysdep/i386.h
+++ b/sysdep/i386.h
@@ -19,5 +19,7 @@
/* These constants are appropriate for Linux/i386 */
+#include "sysdep/32bit.h"
+
/* This is where we map the database file - must be constant */
-#define ARENA_ADDRESS ((void *)0x58000000UL)
+#define ARENA_ADDRESS ((void *)0x5f000000UL)
diff --git a/sysdep/ia64.h b/sysdep/ia64.h
new file mode 100644
index 0000000..a4e0372
--- /dev/null
+++ b/sysdep/ia64.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/ia64.h
+ *
+ * System-specific constants for ia64, included from system.h
+ */
+
+/* These constants are appropriate for Linux/ia64 */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x7e00000000000000UL)
diff --git a/sysdep/m68k.h b/sysdep/m68k.h
new file mode 100644
index 0000000..6b4ea96
--- /dev/null
+++ b/sysdep/m68k.h
@@ -0,0 +1,26 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/m68k.h
+ *
+ * System-specific constants for m68k, included from system.h
+ */
+
+/* These constants are appropriate for Linux/m68k */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+/* This doesn't work on Sun3 machines, but who cares... */
+#define ARENA_ADDRESS ((void *)0xd0000000UL)
diff --git a/sysdep/mips32.h b/sysdep/mips32.h
new file mode 100644
index 0000000..f729ec1
--- /dev/null
+++ b/sysdep/mips32.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/mips32.h
+ *
+ * System-specific constants for mips32, included from system.h
+ */
+
+/* These constants are appropriate for Linux/mips32 */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x38000000UL)
diff --git a/sysdep/mips64.h b/sysdep/mips64.h
new file mode 100644
index 0000000..aae56ae
--- /dev/null
+++ b/sysdep/mips64.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/mips64.h
+ *
+ * System-specific constants for mips64, included from system.h
+ */
+
+/* These constants are appropriate for Linux/mips64 */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x7e00000000)
diff --git a/sysdep/parisc.h b/sysdep/parisc.h
new file mode 100644
index 0000000..70c814f
--- /dev/null
+++ b/sysdep/parisc.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/parisc.h
+ *
+ * System-specific constants for parisc, included from system.h
+ */
+
+/* These constants are appropriate for Linux/parisc */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x5f000000UL)
diff --git a/sysdep/ppc32.h b/sysdep/ppc32.h
new file mode 100644
index 0000000..e0b1452
--- /dev/null
+++ b/sysdep/ppc32.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/ppc32.h
+ *
+ * System-specific constants for ppc32, included from system.h
+ */
+
+/* These constants are appropriate for Linux/ppc32 */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x38000000UL)
diff --git a/sysdep/ppc64.h b/sysdep/ppc64.h
new file mode 100644
index 0000000..465e41d
--- /dev/null
+++ b/sysdep/ppc64.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/ppc64.h
+ *
+ * System-specific constants for ppc64, included from system.h
+ */
+
+/* These constants are appropriate for Linux/ppc64 */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x13f00000000UL)
diff --git a/sysdep/s390.h b/sysdep/s390.h
new file mode 100644
index 0000000..6b0fdf3
--- /dev/null
+++ b/sysdep/s390.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/s390.h
+ *
+ * System-specific constants for s390, included from system.h
+ */
+
+/* These constants are appropriate for Linux/s390 */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x4f000000UL)
diff --git a/sysdep/s390x.h b/sysdep/s390x.h
new file mode 100644
index 0000000..2c543dc
--- /dev/null
+++ b/sysdep/s390x.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/s390x.h
+ *
+ * System-specific constants for s390x, included from system.h
+ */
+
+/* These constants are appropriate for Linux/s390x */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x27800000000UL)
diff --git a/sysdep/sh.h b/sysdep/sh.h
new file mode 100644
index 0000000..51d2b9b
--- /dev/null
+++ b/sysdep/sh.h
@@ -0,0 +1,25 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/sh.h
+ *
+ * System-specific constants for sh, included from system.h
+ */
+
+/* These constants are appropriate for Linux/sh */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+#define ARENA_ADDRESS ((void *)0x4c000000UL)
diff --git a/sysdep/sparc32.h b/sysdep/sparc32.h
new file mode 100644
index 0000000..7902334
--- /dev/null
+++ b/sysdep/sparc32.h
@@ -0,0 +1,26 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/sparc32.h
+ *
+ * System-specific constants for sparc32, included from system.h
+ */
+
+/* These constants are appropriate for Linux/sparc32 */
+
+#include "sysdep/32bit.h"
+
+/* This is where we map the database file - must be constant */
+/* FIX: I have no idea if this is actually legal... */
+#define ARENA_ADDRESS ((void *)0x70000000UL)
diff --git a/sysdep/sparc64.h b/sysdep/sparc64.h
new file mode 100644
index 0000000..1d30af9
--- /dev/null
+++ b/sysdep/sparc64.h
@@ -0,0 +1,26 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/sparc64.h
+ *
+ * System-specific constants for sparc64, included from system.h
+ */
+
+/* These constants are appropriate for Linux/sparc64 */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+/* FIX: I have no idea if this is actually legal... */
+#define ARENA_ADDRESS ((void *)0x7000000000000000UL)
diff --git a/sysdep/x86_64.h b/sysdep/x86_64.h
new file mode 100644
index 0000000..13efa14
--- /dev/null
+++ b/sysdep/x86_64.h
@@ -0,0 +1,27 @@
+#ident "$Id$"
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2000-2001 H. Peter Anvin - All Rights Reserved
+ *
+ * This program 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, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * sysdep/x86_64.h
+ *
+ * System-specific constants for x86_64, included from system.h
+ */
+
+/* These constants are appropriate for Linux/x86_64 */
+
+#include "sysdep/64bit.h"
+
+/* This is where we map the database file - must be constant */
+/**** FIXME: This is probably going to break when the x86-64 kernel
+ gets a full 47-bit userspace ****/
+#define ARENA_ADDRESS ((void *)0x3f00000000UL)
diff --git a/system.h b/system.h
index 9fcda97..84d2f55 100644
--- a/system.h
+++ b/system.h
@@ -20,10 +20,40 @@
#ifndef SYSTEM_H
#define SYSTEM_H
-#ifdef __i386__
-#include "sysdep/i386.h"
+#if defined(__x86_64__)
+# include "sysdep/x86_64.h"
+#elif defined(__alpha__)
+# include "sysdep/alpha.h"
+#elif defined(__ia64__)
+# include "sysdep/ia64.h"
+#elif defined(__mips64)
+# include "sysdep/mips64.h"
+#elif defined(__sparc_v9__)
+# include "sysdep/sparc64.h"
+#elif defined(__s390x__) /* Correct?? */
+# include "sysdep/s390x.h"
+#elif defined(__i386__)
+# include "sysdep/i386.h"
+#elif defined(__powerpc__)
+# include "sysdep/ppc32.h"
+#elif defined(__sparc__)
+# include "sysdep/sparc32.h"
+#elif defined(__arm__)
+# include "sysdep/arm.h"
+#elif defined(__mc68000__)
+# include "sysdep/m68k.h"
+#elif defined(__mips__)
+# include "sysdep/mips32.h"
+#elif defined(__sh__)
+# include "sysdep/sh.h"
+#elif defined(__hppa__)
+# include "sysdep/parisc.h"
+#elif defined(__cris__) /* Correct?? */
+# include "sysdep/cris.h"
+#elif defined(__s390__) /* Correct?? */
+# include "sysdep/s390.h"
#else
-#error "No sysdep file defined for this machine architecture"
+# error "No sysdep file defined for this machine architecture"
#endif
#endif /* SYSTEM_H */