openbsd-ports/editors/emacs/patches/patch-src_m_sparc_h

60 lines
1.7 KiB
Plaintext

$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