From 689ab834af837b4f4c5af035e651f103a282fd7f Mon Sep 17 00:00:00 2001 From: ryoon Date: Tue, 20 Dec 2011 18:33:40 +0000 Subject: Try to support NetBSD/amd64. It progress to temacs segfault on NetBSD/amd64 5.99.56. * Import src/m/amd64.h from editors/emacs20. --- editors/mule/distinfo | 5 +- editors/mule/patches/patch-ad | 12 +-- editors/mule/patches/patch-src_m_amd64.h | 146 +++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+), 7 deletions(-) create mode 100644 editors/mule/patches/patch-src_m_amd64.h (limited to 'editors/mule') diff --git a/editors/mule/distinfo b/editors/mule/distinfo index 12cdab64f58..d088c41c2d1 100644 --- a/editors/mule/distinfo +++ b/editors/mule/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.9 2011/12/19 21:36:07 ryoon Exp $ +$NetBSD: distinfo,v 1.10 2011/12/20 18:33:40 ryoon Exp $ SHA1 (mule-2.3.tar.gz) = 52737767955caf2fde34b994f367a89c5d8a045f RMD160 (mule-2.3.tar.gz) = 52b93e746a7a796549a44104ab1898954df044bf @@ -6,7 +6,7 @@ Size (mule-2.3.tar.gz) = 10240256 bytes SHA1 (patch-aa) = 927ec514204ef97101fb3f4ab77eec1c71af23f1 SHA1 (patch-ab) = ffb7afcac57932cfe477b87daa5579b54aea3672 SHA1 (patch-ac) = 170fa4f6c17c805dd32a90e8bfb3e38c48a9fc20 -SHA1 (patch-ad) = 70f4a983aab2bd7c6255a448992ac717f5e962ac +SHA1 (patch-ad) = 7a52802cd614441320221f450cf97d4e30f40f2b SHA1 (patch-ae) = 1f020aaeb75cd7dd2b827ab34382e472add09719 SHA1 (patch-af) = 2672b9c724cfed135218a76e857fd26ebe3676ac SHA1 (patch-ag) = 590fe919b44722f7ba1e390cf7fecbc20eeeba06 @@ -65,3 +65,4 @@ SHA1 (patch-cg) = 2fbe0de8a502a2fe083379a39aaf126148d0ded3 SHA1 (patch-ch) = f5314755074b7301ee36825c82d15763b1d3f062 SHA1 (patch-ci) = b172fe40cccba2aa622a5522fffa421cbcd299a5 SHA1 (patch-cj) = 19b158106f4fbe382084dc8e6ddd6545e506e30d +SHA1 (patch-src_m_amd64.h) = c99d0e5c2fe4780735581354534a545a5ed44702 diff --git a/editors/mule/patches/patch-ad b/editors/mule/patches/patch-ad index 251f0262771..4fb9141a9bf 100644 --- a/editors/mule/patches/patch-ad +++ b/editors/mule/patches/patch-ad @@ -1,10 +1,10 @@ -$NetBSD: patch-ad,v 1.5 2011/12/19 21:36:07 ryoon Exp $ +$NetBSD: patch-ad,v 1.6 2011/12/20 18:33:40 ryoon Exp $ * "Should be one line" test is for gcc 4.5's cpp from emacs20's patch-ab. --- configure.orig 1995-06-05 01:11:38.000000000 +0000 +++ configure -@@ -581,12 +581,14 @@ case "${canonical}" in +@@ -581,13 +581,16 @@ case "${canonical}" in *-*-netbsd* ) opsys=netbsd case "${canonical}" in @@ -17,9 +17,11 @@ $NetBSD: patch-ad,v 1.5 2011/12/19 21:36:07 ryoon Exp $ ns32k-*-netbsd*) machine=ns32000 ;; + powerpc-*-netbsd*) machine=powerpc ;; sparc-*-netbsd*) machine=sparc ;; ++ x86_64-*-netbsd*) machine=amd64 ;; esac ;; -@@ -1177,6 +1179,7 @@ case "${canonical}" in + +@@ -1177,6 +1180,7 @@ case "${canonical}" in *-bsd386* | *-bsdi* ) opsys=bsd386 ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; @@ -27,7 +29,7 @@ $NetBSD: patch-ad,v 1.5 2011/12/19 21:36:07 ryoon Exp $ *-nextstep* ) opsys=mach2 ;; ## Otherwise, we'll fall through to the generic opsys code at the bottom. esac -@@ -1384,10 +1387,13 @@ if test -z "$CPP"; then +@@ -1384,10 +1388,13 @@ if test -z "$CPP"; then #include "confdefs.h" #include Syntax Error @@ -42,7 +44,7 @@ $NetBSD: patch-ad,v 1.5 2011/12/19 21:36:07 ryoon Exp $ if test -z "$ac_err"; then : else -@@ -1397,10 +1403,13 @@ else +@@ -1397,10 +1404,13 @@ else #include "confdefs.h" #include Syntax Error diff --git a/editors/mule/patches/patch-src_m_amd64.h b/editors/mule/patches/patch-src_m_amd64.h new file mode 100644 index 00000000000..e5c12840a25 --- /dev/null +++ b/editors/mule/patches/patch-src_m_amd64.h @@ -0,0 +1,146 @@ +$NetBSD: patch-src_m_amd64.h,v 1.1 2011/12/20 18:33:40 ryoon Exp $ + +--- src/m/amd64.h.orig 2011-12-20 18:27:24.000000000 +0000 ++++ src/m/amd64.h +@@ -0,0 +1,141 @@ ++/* machine description file for AMD x86-64. ++ Copyright (C) 2002 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 2, 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; see the file COPYING. If not, write to ++the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* Linux defines these in , but they can't be used in #if's */ ++#undef SHORTBITS ++#undef INTBITS ++#undef LONGBITS ++ ++#define SHORTBITS 16 /* Number of bits in a short */ ++ ++#define INTBITS 32 /* Number of bits in an int */ ++ ++#define LONGBITS 64 /* Number of bits in a long */ ++ ++/* The following line tells the configuration script what sort of ++ operating system this machine is likely to run. ++ USUAL-OPSYS="linux" */ ++ ++#define BITS_PER_LONG 64 ++#define BITS_PER_EMACS_INT 64 ++ ++/* Define WORDS_BIG_ENDIAN iff 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 ++ ++/* Define WORD_MACHINE if addresses and such have ++ * to be corrected before they can be used as byte counts. */ ++ ++/* #define WORD_MACHINE */ ++ ++/* Now define a symbol for the cpu type, if your compiler ++ does not define it automatically: ++ Ones defined so far include vax, m68000, ns16000, pyramid, ++ orion, tahoe, APOLLO and many others */ ++/* __x86_64 defined automatically. */ ++ ++/* Use type int rather than a union, to represent Lisp_Object */ ++/* This is desirable for most machines. */ ++ ++#define NO_UNION_TYPE ++ ++/* Define the type to use. */ ++#define EMACS_INT long ++#define EMACS_UINT unsigned long ++#define SPECIAL_EMACS_INT ++ ++/* 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. ++ ++ If you use NO_UNION_TYPE, this flag does not matter. */ ++ ++#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. */ ++ ++/* #define 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 /* XXX */ ++ ++/* Define C_ALLOCA if this machine does not support a true alloca ++ and the one written in C should be used instead. ++ Define HAVE_ALLOCA to say that the system provides a properly ++ working alloca function and it should be used. ++ Define neither one if an assembler-language alloca ++ in the file alloca.s should be used. */ ++ ++/* #define C_ALLOCA */ /* XXX */ ++#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 /* XXX */ ++ ++#define PNTR_COMPARISON_TYPE unsigned long ++ ++/* 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) ++ ++/* #undef START_FILES */ /* XXX */ ++/* #define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o */ /* XXX */ ++ ++/* #undef LIB_STANDARD */ /* XXX */ ++/* #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o */ /* XXX */ -- cgit v1.2.3