pieces for sparc64 (now it builds, but doesn't work yet), some taken from netbsd

This commit is contained in:
pvalchev 2002-03-23 18:40:02 +00:00
parent 769278a870
commit 88b81fcf9d
2 changed files with 66 additions and 4 deletions

View File

@ -1,10 +1,13 @@
--- configure.orig Fri Oct 20 16:00:28 2000
+++ configure Fri Oct 20 16:01:43 2000
@@ -733,6 +733,7 @@
$OpenBSD: patch-configure,v 1.2 2002/03/23 18:40:02 pvalchev Exp $
--- configure.orig Mon Jun 12 14:05:56 2000
+++ configure Sun Mar 17 20:33:50 2002
@@ -733,7 +733,8 @@ case "${canonical}" in
m68k-*-openbsd*) machine=hp9000s300 ;;
mipsel-*-openbsd*) machine=pmax ;;
ns32k-*-openbsd*) machine=ns32000 ;;
- sparc-*-openbsd*) machine=sparc ;;
+ powerpc-*-openbsd*) machine=macppc ;;
sparc-*-openbsd*) machine=sparc ;;
+ sparc*-*-openbsd*) machine=sparc ;;
vax-*-openbsd*) machine=vax ;;
esac
;;

View File

@ -0,0 +1,59 @@
$OpenBSD: patch-src_m_sparc_h,v 1.1 2002/03/23 18:40:02 pvalchev Exp $
--- src/m/sparc.h.orig Sat Sep 6 12:51:04 1997
+++ src/m/sparc.h Sun Mar 17 22:22:25 2002
@@ -83,9 +83,11 @@ NOTE-END */
/* Must use the system's termcap, if we use any termcap.
It does special things. */
+#if 0 /* not with OpenBSD 2.4 current */
#ifndef TERMINFO
#define LIBS_TERMCAP -ltermcap
#endif
+#endif
/* Mask for address bits within a memory segment */
@@ -117,3 +119,43 @@ NOTE-END */
#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
#endif /* not __NetBSD__ and not __linux__ and not __OpenBSD__ */
+
+#ifdef __arch64__ /* GCC, 64-bit ABI. */
+#define BITS_PER_LONG 64
+#ifdef __sparc64__
+#define UNEXEC unexelf.o
+#endif
+
+#ifdef __arch64__ /* GCC, 64-bit ABI. */
+#define EMACS_INT long
+#define BITS_PER_LONG 64
+#define BITS_PER_EMACS_INT BITS_PER_LONG
+#define EMACS_UINT unsigned long
+#define SPECIAL_EMACS_INT
+
+/* On the 64 bit architecture, we can use 60 bits for addresses */
+
+#define VALBITS 60
+
+/* This definition of MARKBIT is necessary because of the comparison of
+ ARRAY_MARK_FLAG and MARKBIT in an #if in lisp.h, which cpp doesn't like. */
+
+#define MARKBIT 0x8000000000000000L
+
+/* Define XINT and XUINT so that they can take arguments of type int */
+
+#define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS))
+#define XUINT(a) ((long) (a) & VALMASK)
+
+/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
+
+#define XPNTR(a) XUINT (a)
+
+#define PNTR_COMPARISON_TYPE unsigned long
+#ifndef _LP64
+#define _LP64 /* Done on Alpha -- not sure if it
+ should be here. -- fx */
+#endif
+#endif
+
+#endif