diff options
author | mycroft <mycroft> | 1999-06-04 03:42:35 +0000 |
---|---|---|
committer | mycroft <mycroft> | 1999-06-04 03:42:35 +0000 |
commit | afe2d47d113c7d950cbaad0540257a1186e94d77 (patch) | |
tree | b65e17cc9dd2995981a9f85eb6577677f05d1cfe /editors/emacs | |
parent | 25f86aeefba3996cfb63f720b2e0106b88a02c7d (diff) | |
download | pkgsrc-afe2d47d113c7d950cbaad0540257a1186e94d77.tar.gz |
I'm not going to pretend to fully grok the ELF magick, but this makes Emacs
work on the macppc port.
Diffstat (limited to 'editors/emacs')
-rw-r--r-- | editors/emacs/patches/patch-ab | 121 | ||||
-rw-r--r-- | editors/emacs/patches/patch-az | 27 | ||||
-rw-r--r-- | editors/emacs/patches/patch-bd | 161 | ||||
-rw-r--r-- | editors/emacs/patches/patch-be | 102 |
4 files changed, 285 insertions, 126 deletions
diff --git a/editors/emacs/patches/patch-ab b/editors/emacs/patches/patch-ab index 286dc8a834d..61cf5f00e56 100644 --- a/editors/emacs/patches/patch-ab +++ b/editors/emacs/patches/patch-ab @@ -1,112 +1,19 @@ -$NetBSD: patch-ab,v 1.6 1998/09/04 02:28:53 tron Exp $ +$NetBSD: patch-ab,v 1.7 1999/06/04 03:42:35 mycroft Exp $ ---- ./configure.orig Fri Aug 28 13:38:44 1998 -+++ ./configure Sun Aug 16 03:48:36 1998 -@@ -759,6 +748,7 @@ +--- configure.orig Mon Jul 27 04:17:07 1998 ++++ configure Thu Jun 3 22:49:02 1999 +@@ -751,12 +751,14 @@ + opsys=netbsd + case "${canonical}" in + alpha*-*-netbsd*) machine=alpha ;; ++ arm*-*-netbsd*) machine=arm ;; + i[3456]86-*-netbsd*) machine=intel386 ;; + m68k-*-netbsd*) + # This is somewhat bogus. + machine=hp9000s300 ;; + mips-*-netbsd*) machine=pmax ;; ns32k-*-netbsd*) machine=ns32000 ;; ++ powerpc-*-netbsd*) machine=powerpc ;; sparc-*-netbsd*) machine=sparc ;; vax-*-netbsd*) machine=vax ;; -+ arm*-*-netbsd*) machine=arm ;; esac - ;; - ---- /dev/null Fri Aug 28 13:20:16 1998 -+++ ./src/m/arm.h Sun Aug 16 03:48:25 1998 -@@ -0,0 +1,97 @@ -+/* Machine description file for Acorn RISCiX machines. -+ Copyright (C) 1994 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. */ -+ -+ -+ -+/* 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. We can't -+ * do this on the arm with gcc, since the first 4 args are in registers. */ -+ -+#ifdef __GNUC__ -+#define NO_ARG_ARRAY -+#else -+#undef NO_ARG_ARRAY -+#endif -+ -+/* Define WORD_MACHINE if addresses and such have -+ * to be corrected before they can be used as byte counts. */ -+ -+#undef WORD_MACHINE -+ -+/* Define how to take a char and sign-extend into an int. -+ On machines where char is signed, this is a no-op. */ -+ -+/* ARM note - The RISCiX Norcroft C Compiler has ALL -+ non-32-bit types as unsigned */ -+ -+#define SIGN_EXTEND_CHAR(c) (((int)(c) << 24) >> 24) -+ -+/* 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 */ -+ -+/* ARM note - this is done by the Norcroft compiler - symbol is `__arm' */ -+ -+/* Use type int rather than a union, to represent Lisp_Object */ -+/* This is desirable for most machines. */ -+ -+#define NO_UNION_TYPE -+ -+/* 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 -+ -+/* 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. */ -+ -+#undef CANNOT_DUMP -+ -+#ifdef __GNUC__ -+ -+/* Use builtin alloca. Also be sure that no other ones are tried out. */ -+#define alloca __builtin_alloca -+#define HAVE_ALLOCA -+ -+#else -+#define C_ALLOCA -+#undef HAVE_ALLOCA -+#endif /* __GNUC__ */ -+ -+/* 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 -+ -+ -+/* For the portable alloca */ -+#define STACK_DIRECTION -1 diff --git a/editors/emacs/patches/patch-az b/editors/emacs/patches/patch-az index e77462a1600..8566f4318bd 100644 --- a/editors/emacs/patches/patch-az +++ b/editors/emacs/patches/patch-az @@ -1,7 +1,7 @@ -$NetBSD: patch-az,v 1.1 1999/02/04 14:54:25 frueauf Exp $ +$NetBSD: patch-az,v 1.2 1999/06/04 03:42:35 mycroft Exp $ ---- src/unexelf.c.orig Mon Aug 10 04:33:12 1998 -+++ src/unexelf.c Thu Feb 4 12:46:44 1999 +--- unexelf.c.orig Sun Aug 9 22:33:12 1998 ++++ unexelf.c Thu Jun 3 23:31:50 1999 @@ -501,9 +501,16 @@ # include <sys/exec_ecoff.h> # define HDRR struct ecoff_symhdr @@ -28,7 +28,7 @@ $NetBSD: patch-az,v 1.1 1999/02/04 14:54:25 frueauf Exp $ +# define HAVE_MIPS_SBSS +#endif + -+#if defined (__mips__) && (defined(__NetBSD__) || defined(__OpenBSD__)) ++#if (defined (__mips__) || defined (__powerpc__)) && (defined(__NetBSD__) || defined(__OpenBSD__)) +# define HAVE_MIPS_SBSS +#endif + @@ -244,7 +244,7 @@ $NetBSD: patch-az,v 1.1 1999/02/04 14:54:25 frueauf Exp $ || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".data1")) src = (caddr_t) OLD_SECTION_H (n).sh_addr; -@@ -993,22 +1077,11 @@ +@@ -993,18 +1077,7 @@ == 0) { pHDRR symhdr = (pHDRR) (NEW_SECTION_H (nn).sh_offset + new_base); @@ -264,12 +264,7 @@ $NetBSD: patch-az,v 1.1 1999/02/04 14:54:25 frueauf Exp $ } #endif /* __alpha__ */ --#if defined (__sony_news) && defined (_SYSTYPE_SYSV) -+#ifdef HAVE_MIPS_SBSS - if (NEW_SECTION_H (nn).sh_type == SHT_MIPS_DEBUG && old_mdebug_index) - { - int diff = NEW_SECTION_H(nn).sh_offset -@@ -1017,20 +1090,17 @@ +@@ -1017,20 +1090,11 @@ if (diff) { @@ -284,18 +279,12 @@ $NetBSD: patch-az,v 1.1 1999/02/04 14:54:25 frueauf Exp $ - phdr->cbFdOffset += diff; - phdr->cbRfdOffset += diff; - phdr->cbExtOffset += diff; -+#if defined ( __sony_news) && defined (_SYSTYPE_SYSV) + relocate_ecoff_symhdr(phdr, diff); -+#else -+ /* xxxBSD with GNU binutils has .mdebug, but not ecoff(???) */ -+#ifdef DEBUG -+ printf("Dont know how to relocate mdebug syms by %0x\n", diff); -+#endif -+#endif } } -#endif /* __sony_news && _SYSTYPE_SYSV */ -+#endif /* HAVE_MIPS_SBSS */ ++#endif /* __sony_news and systype_sysv */ ++ /* If it is the symbol table, its st_shndx field needs to be patched. */ if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB || NEW_SECTION_H (nn).sh_type == SHT_DYNSYM) diff --git a/editors/emacs/patches/patch-bd b/editors/emacs/patches/patch-bd new file mode 100644 index 00000000000..5e404a96c90 --- /dev/null +++ b/editors/emacs/patches/patch-bd @@ -0,0 +1,161 @@ +$NetBSD: patch-bd,v 1.1 1999/06/04 03:42:35 mycroft Exp $ + +--- /dev/null Thu Jun 3 22:42:46 1999 ++++ powerpc.h Thu Jun 3 23:04:00 1999 +@@ -0,0 +1,156 @@ ++/* machine description file For the PowerPC chip. ++ Copyright (C) 1994, 1997 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 1, 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. */ ++ ++/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word ++ is the most significant byte. */ ++ ++#define 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 */ ++ ++/* __powerpc__ defined automatically */ ++ ++ ++/* Use type EMACS_INT rather than a union, to represent Lisp_Object */ ++/* This is desirable for most machines. */ ++ ++#define NO_UNION_TYPE ++ ++/* 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 */ ++ ++/* 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 HAVE_ALLOCA ++ ++/* GNU malloc and the relocating allocator do not work together ++ with X. [Who wrote that?] */ ++ ++/* May 1995: reportedly [Rainer Schoepf <schoepf@uni-mainz.de>] both the ++ system and the gnu malloc system work with "alpha-dec-osf3.0" and ++ "alpha-dec-osf3.2". */ ++ ++/* May 1995: it seems to me [Morten Welinder <terra@diku.dk>] that both ++ mallocs work with "alpha-dec-osf2.0", but I daren't break anything ++ right now. Feel free to play if you want. */ ++ ++/* #define SYSTEM_MALLOC */ ++ ++/* 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 ++ ++/* Some really obscure 4.2-based systems (like Sequent DYNIX) ++ * do not support asynchronous I/O (using SIGIO) on sockets, ++ * even though it works fine on tty's. If you have one of ++ * these systems, define the following, and then use it in ++ * config.h (or elsewhere) to decide when (not) to use SIGIO. ++ * ++ * You'd think this would go in an operating-system description file, ++ * but since it only occurs on some, but not all, BSD systems, the ++ * reasonable place to select for it is in the machine description ++ * file. ++ */ ++ ++/* #define NO_SOCK_SIGIO */ ++ ++ ++#ifdef __ELF__ ++/* With ELF, make sure that all common symbols get allocated to in the ++ data section. Otherwise, the dump of temacs may miss variables in ++ the shared library that have been initialized. For example, with ++ GNU libc, __malloc_initialized would normally be resolved to the ++ shared library's .bss section, which is fatal. */ ++# ifdef __GNUC__ ++# define C_SWITCH_MACHINE -fno-common ++# else ++# error What gives? Fix me if DEC Unix supports ELF now. ++# endif ++#endif ++ ++#if defined(__NetBSD__) || defined(__OpenBSD__) ++#define ORDINARY_LINK ++#endif ++ ++#ifdef __ELF__ ++#undef UNEXEC ++#define UNEXEC unexelf.o ++#endif ++ ++/* On the Alpha it's best to avoid including TERMIO since struct ++ termio and struct termios are mutually incompatible. */ ++#define NO_TERMIO ++ ++#if defined (LINUX) || defined (__NetBSD__) || defined (__OpenBSD__) ++# define TEXT_END ({ extern int _etext; &_etext; }) ++#endif ++ ++#if (defined (__NetBSD__) || defined (__OpenBSD__)) && defined (__ELF__) ++#define HAVE_TEXT_START ++#endif diff --git a/editors/emacs/patches/patch-be b/editors/emacs/patches/patch-be new file mode 100644 index 00000000000..8cbf0320fb5 --- /dev/null +++ b/editors/emacs/patches/patch-be @@ -0,0 +1,102 @@ +$NetBSD: patch-be,v 1.1 1999/06/04 03:42:35 mycroft Exp $ + +--- /dev/null Fri Aug 28 13:20:16 1998 ++++ ./src/m/arm.h Sun Aug 16 03:48:25 1998 +@@ -0,0 +1,97 @@ ++/* Machine description file for Acorn RISCiX machines. ++ Copyright (C) 1994 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. */ ++ ++ ++ ++/* 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. We can't ++ * do this on the arm with gcc, since the first 4 args are in registers. */ ++ ++#ifdef __GNUC__ ++#define NO_ARG_ARRAY ++#else ++#undef NO_ARG_ARRAY ++#endif ++ ++/* Define WORD_MACHINE if addresses and such have ++ * to be corrected before they can be used as byte counts. */ ++ ++#undef WORD_MACHINE ++ ++/* Define how to take a char and sign-extend into an int. ++ On machines where char is signed, this is a no-op. */ ++ ++/* ARM note - The RISCiX Norcroft C Compiler has ALL ++ non-32-bit types as unsigned */ ++ ++#define SIGN_EXTEND_CHAR(c) (((int)(c) << 24) >> 24) ++ ++/* 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 */ ++ ++/* ARM note - this is done by the Norcroft compiler - symbol is `__arm' */ ++ ++/* Use type int rather than a union, to represent Lisp_Object */ ++/* This is desirable for most machines. */ ++ ++#define NO_UNION_TYPE ++ ++/* 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 ++ ++/* 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. */ ++ ++#undef CANNOT_DUMP ++ ++#ifdef __GNUC__ ++ ++/* Use builtin alloca. Also be sure that no other ones are tried out. */ ++#define alloca __builtin_alloca ++#define HAVE_ALLOCA ++ ++#else ++#define C_ALLOCA ++#undef HAVE_ALLOCA ++#endif /* __GNUC__ */ ++ ++/* 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 ++ ++ ++/* For the portable alloca */ ++#define STACK_DIRECTION -1 |