diff options
author | Ulrich Müller <ulm@gentoo.org> | 2007-12-21 21:07:55 +0000 |
---|---|---|
committer | Ulrich Müller <ulm@gentoo.org> | 2007-12-21 21:07:55 +0000 |
commit | ca17a32a019c48b71cd67623e007e6ed5d0c74f2 (patch) | |
tree | f861ede8b4f2493ea6c49ccdb09d5082f15b847f | |
parent | Add patchset for emacs-18.59 (diff) | |
download | emacs-patches-ca17a32a019c48b71cd67623e007e6ed5d0c74f2.tar.gz emacs-patches-ca17a32a019c48b71cd67623e007e6ed5d0c74f2.tar.bz2 emacs-patches-ca17a32a019c48b71cd67623e007e6ed5d0c74f2.zip |
Add patchset for emacs-21.4emacs-21.4-patches-1
-rw-r--r-- | emacs/21.4/01_all_xorg.patch | 12 | ||||
-rw-r--r-- | emacs/21.4/02_all_amd64.patch | 238 | ||||
-rw-r--r-- | emacs/21.4/03_all_hppa.patch | 98 | ||||
-rw-r--r-- | emacs/21.4/04_all_sh.patch | 175 | ||||
-rw-r--r-- | emacs/21.4/05_all_libungif-gif-gentoo.patch | 34 | ||||
-rw-r--r-- | emacs/21.4/06_ppc64_ppc64.patch | 51 | ||||
-rw-r--r-- | emacs/21.4/07_ppc64_fix-unexelf.patch | 67 | ||||
-rw-r--r-- | emacs/21.4/08_all_autosave-tmp.patch | 12 | ||||
-rw-r--r-- | emacs/21.4/09_all_blessmail-build.patch | 22 | ||||
-rw-r--r-- | emacs/21.4/10_all_qa.patch | 92 | ||||
-rw-r--r-- | emacs/21.4/11_all_Xaw3d-headers.patch | 72 | ||||
-rw-r--r-- | emacs/21.4/12_all_freebsd-terminfo.patch | 16 | ||||
-rw-r--r-- | emacs/21.4/13_all_oldxmenu-malloc.patch | 11 | ||||
-rw-r--r-- | emacs/21.4/14_all_gif-image-size.patch | 34 | ||||
-rw-r--r-- | emacs/21.4/15_all_format-int.patch | 11 |
15 files changed, 945 insertions, 0 deletions
diff --git a/emacs/21.4/01_all_xorg.patch b/emacs/21.4/01_all_xorg.patch new file mode 100644 index 0000000..a97bb10 --- /dev/null +++ b/emacs/21.4/01_all_xorg.patch @@ -0,0 +1,12 @@ +diff -Naur emacs-21.3-old/src/xterm.h emacs-21.3/src/xterm.h +--- emacs-21.3-old/src/xterm.h 2002-02-22 11:41:44.000000000 +0100 ++++ emacs-21.3/src/xterm.h 2004-10-30 12:33:12.000000000 +0200 +@@ -21,8 +21,8 @@ + + #include <X11/Xlib.h> + #include <X11/cursorfont.h> +-#include <X11/Xutil.h> + #include <X11/keysym.h> ++#include <X11/Xutil.h> + #include <X11/Xatom.h> + #include <X11/Xresource.h> diff --git a/emacs/21.4/02_all_amd64.patch b/emacs/21.4/02_all_amd64.patch new file mode 100644 index 0000000..9c5f5e2 --- /dev/null +++ b/emacs/21.4/02_all_amd64.patch @@ -0,0 +1,238 @@ +diff -Naur emacs-21.3-old/configure emacs-21.3/configure +--- emacs-21.3-old/configure 2003-12-14 03:34:27.000000000 +0000 ++++ emacs-21.3/configure 2003-12-14 03:35:13.000000000 +0000 +@@ -1632,6 +1632,11 @@ + machine=ia64 opsys=gnu-linux + ;; + ++ ## X86-64 ++ x86_64*-*-linux* ) ++ machine=x86_64 opsys=gnu-linux ++ ;; ++ + ## Intel 386 machines where we don't care about the manufacturer + i[3456]86-*-* ) + machine=intel386 +diff -Naur emacs-21.3-old/configure.in emacs-21.3/configure.in +--- emacs-21.3-old/configure.in 2003-12-14 03:34:27.000000000 +0000 ++++ emacs-21.3/configure.in 2003-12-14 03:35:04.000000000 +0000 +@@ -1006,6 +1006,11 @@ + machine=ia64 opsys=gnu-linux + ;; + ++ ## X86-64 ++ x86_64*-*-linux* ) ++ machine=x86_64 opsys=gnu-linux ++ ;; ++ + ## Intel 386 machines where we don't care about the manufacturer + i[3456]86-*-* ) + machine=intel386 +diff -Naur emacs-21.3-old/src/m/x86_64.h emacs-21.3/src/m/x86_64.h +--- emacs-21.3-old/src/m/x86_64.h 1970-01-01 00:00:00.000000000 +0000 ++++ emacs-21.3/src/m/x86_64.h 2003-12-14 03:35:04.000000000 +0000 +@@ -0,0 +1,175 @@ ++/* machine description file for the X86-64 architecture. ++ Copyright (C) 2000 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 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 EMACS_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. */ ++#if 0 ++#define CANNOT_DUMP ++#endif ++ ++/* 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 ++ ++/* Define the following if GNU malloc and the relocating allocator do ++ not work together with X. */ ++ ++/* #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__ ++#undef UNEXEC ++#define UNEXEC unexelf.o ++#endif ++ ++#define PNTR_COMPARISON_TYPE unsigned long ++ ++/* On the 64 bit architecture, we can use 60 bits for addresses */ ++ ++#define VALBITS 60 ++ ++/* 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) ++ ++/* Declare malloc and realloc in a way that is clean. ++ But not in makefiles! */ ++ ++#ifndef NOT_C_CODE ++/* We need these because pointers are larger than the default ints. */ ++# if !defined(__NetBSD__) && !defined(__OpenBSD__) ++# include <alloca.h> ++# else ++# include <stdlib.h> ++# endif ++ ++/* We need to prototype these for the lib-src programs even if we don't ++ use the system malloc for the Emacs proper. */ ++#ifdef _MALLOC_INTERNAL ++/* These declarations are designed to match the ones in gmalloc.c. */ ++#if defined (__STDC__) && __STDC__ ++extern void *malloc (), *realloc (), *calloc (); ++#else ++extern char *malloc (), *realloc (), *calloc (); ++#endif ++#else /* not _MALLOC_INTERNAL */ ++extern void *malloc (), *realloc (), *calloc (); ++#endif /* not _MALLOC_INTERNAL */ ++ ++#ifdef REL_ALLOC ++#ifndef _MALLOC_INTERNAL ++/* "char *" because ralloc.c defines it that way. gmalloc.c thinks it ++ is allowed to prototype these as "void *" so we don't prototype in ++ that case. You're right: it stinks! */ ++extern char *r_alloc (), *r_re_alloc (); ++extern void r_alloc_free (); ++#endif /* not _MALLOC_INTERNAL */ ++#endif /* REL_ALLOC */ ++ ++#endif /* not NOT_C_CODE */ ++ ++#define HAVE_TEXT_START +diff -Naur emacs-21.3-old/src/s/gnu-linux.h emacs-21.3/src/s/gnu-linux.h +--- emacs-21.3-old/src/s/gnu-linux.h 2003-12-14 03:34:28.000000000 +0000 ++++ emacs-21.3/src/s/gnu-linux.h 2003-12-14 03:35:04.000000000 +0000 +@@ -173,8 +173,12 @@ + /* GNU/Linux usually has crt0.o in a non-standard place */ + #define START_FILES pre-crt0.o /usr/lib/crt0.o + #else ++#if defined(__x86_64) ++#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o ++#else + #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o + #endif ++#endif + + #ifdef __ELF__ + /* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option +@@ -225,8 +229,12 @@ + #else + #undef LIB_GCC + #define LIB_GCC ++#if defined(__x86_64) ++#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o ++#else + #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o + #endif ++#endif + + /* Don't use -g in test compiles in configure. + This is so we will use the same shared libs for that linking diff --git a/emacs/21.4/03_all_hppa.patch b/emacs/21.4/03_all_hppa.patch new file mode 100644 index 0000000..6955f93 --- /dev/null +++ b/emacs/21.4/03_all_hppa.patch @@ -0,0 +1,98 @@ +diff -uNr emacs-21.3.orig/configure emacs-21.3/configure +--- emacs-21.3.orig/configure 2003-12-20 15:03:19.622159984 +0000 ++++ emacs-21.3/configure 2003-12-20 15:13:56.550332184 +0000 +@@ -1179,6 +1179,10 @@ + machine=hp800 opsys=nextstep + ;; + ++ hppa*-*-linux-gnu* ) ++ machine=hp800 psys=gnu-linux ++ ;; ++ + ## Orion machines + orion-orion-bsd* ) + machine=orion opsys=bsd4-2 +diff -uNr emacs-21.3.orig/configure.in emacs-21.3/configure.in +--- emacs-21.3.orig/configure.in 2003-12-20 15:03:19.624159680 +0000 ++++ emacs-21.3/configure.in 2003-12-20 15:15:22.825216408 +0000 +@@ -553,6 +553,10 @@ + machine=hp800 opsys=nextstep + ;; + ++ hppa*-*-linux-gnu* ) ++ machine=hp800 opsys=gnu-linux ++ ;; ++ + ## Orion machines + orion-orion-bsd* ) + machine=orion opsys=bsd4-2 +--- emacs21-21.2.orig/src/m/hp800.h ++++ emacs21-21.2/src/m/hp800.h +@@ -85,7 +85,7 @@ + #define bcmp memcmp + #endif + +-#ifdef __hpux ++#if defined(__hpux) || defined(__linux__) + /* 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, +@@ -94,6 +94,15 @@ + # define hp9000s800 + #endif + ++#ifdef __linux__ ++/* 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) ++#else + /* Data type of load average, as read out of kmem. */ + + #define LOAD_AVE_TYPE double +@@ -101,7 +110,7 @@ + /* Convert that into an integer that is 100 for a load average of 1.0 */ + + #define LOAD_AVE_CVT(x) ((int) (x * 100.0)) +- ++#endif + + /* Define CANNOT_DUMP on machines where unexec does not work. + Then the function dump-emacs will not be defined +@@ -116,6 +125,7 @@ + Otherwise Emacs assumes that text space precedes data space, + numerically. */ + ++#ifdef __hpux + #define VIRT_ADDR_VARIES + + /* Define C_ALLOCA if this machine does not support a true alloca +@@ -134,6 +144,9 @@ + + #define DATA_START 0x40000000 + #define TEXT_START 0x00000000 ++#else ++#define HAVE_ALLOCA ++#endif + + #define STACK_DIRECTION 1 + +@@ -147,6 +160,7 @@ + /* This machine requires completely different unexec code + which lives in a separate file. Specify the file name. */ + ++#ifdef __hpux + #define UNEXEC unexhp9k800.o + + #define LIBS_MACHINE +@@ -179,5 +193,5 @@ + + #define index strchr + #define rindex strrchr +- +-#endif /* __hpux */ ++#endif ++#endif diff --git a/emacs/21.4/04_all_sh.patch b/emacs/21.4/04_all_sh.patch new file mode 100644 index 0000000..254db24 --- /dev/null +++ b/emacs/21.4/04_all_sh.patch @@ -0,0 +1,175 @@ +--- emacs21-21.2.orig/configure.in ++++ emacs21-21.2/configure.in +@@ -1055,6 +1055,16 @@ + machine=mipsel opsys=gnu-linux + ;; + ++ ## SuperH (little endian) Linux-based GNU system ++ sh[34]-*-linux-gnu* ) ++ machine=sh opsys=gnu-linux ++ ;; ++ ++ ## SuperH (big endian) Linux-based GNU system ++ sh[34]eb-*-linux-gnu* ) ++ machine=sheb opsys=gnu-linux ++ ;; ++ + ## UXP/DS + sparc-fujitsu-sysv4* ) + machine=sparc opsys=uxpds +--- emacs21-21.2.orig/src/m/sh.h ++++ emacs21-21.2/src/m/sh.h +@@ -0,0 +1,122 @@ ++/* machine description file for Hitach SuperH. ++ Copyright (C) 2000 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. */ ++ ++ ++/* The following line tells the configuration script what sort of ++ operating system this machine is likely to run. ++ USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ ++ ++/* 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. */ ++ ++#undef 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 */ ++#define SUPERH ++ ++/* 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 ++ ++/* 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. */ ++ ++#undef 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. */ ++ ++#undef 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. */ ++ ++#undef C_ALLOCA ++#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. */ ++ ++#undef 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. ++ */ ++ ++#undef NO_SOCK_SIGIO ++ ++ ++/* After adding support for a new system, modify the large case ++ statement in the `configure' script to recognize reasonable ++ configuration names, and add a description of the system to ++ `etc/MACHINES'. ++ ++ If you've just fixed a problem in an existing configuration file, ++ you should also check `etc/MACHINES' to make sure its descriptions ++ of known problems in that configuration should be updated. */ +only in patch2: +--- emacs21-21.2.orig/src/m/sheb.h ++++ emacs21-21.2/src/m/sheb.h +@@ -0,0 +1,8 @@ ++/* machine description file for sheb (SuperH big endian). */ ++ ++#include "sh.h" ++ ++/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word ++ is the most significant byte. */ ++ ++#define WORDS_BIG_ENDIAN +--- emacs-21.2.orig/configure Fri Mar 15 21:46:09 2002 ++++ emacs-21.2/configure Mon Nov 25 16:30:19 2002 +@@ -1666,6 +1666,16 @@ + machine=mips opsys=gnu-linux + ;; + ++ ## SuperH (little endian) Linux-based GNU system ++ sh[34]-*-linux-gnu* ) ++ machine=sh opsys=gnu-linux ++ ;; ++ ++ ## SuperH (big endian) Linux-based GNU system ++ sh[34]eb-*-linux-gnu* ) ++ machine=sheb opsys=gnu-linux ++ ;; ++ + ## UXP/DS + sparc-fujitsu-sysv4* ) + machine=sparc opsys=uxpds diff --git a/emacs/21.4/05_all_libungif-gif-gentoo.patch b/emacs/21.4/05_all_libungif-gif-gentoo.patch new file mode 100644 index 0000000..abae185 --- /dev/null +++ b/emacs/21.4/05_all_libungif-gif-gentoo.patch @@ -0,0 +1,34 @@ +diff -ur emacs-21.4.orig/configure.in emacs-21.4/configure.in +--- emacs-21.4.orig/configure.in 2003-03-16 16:06:05.000000000 -0600 ++++ emacs-21.4/configure.in 2006-08-12 17:15:44.000000000 -0500 +@@ -1927,7 +1927,7 @@ + AC_CHECK_HEADER(gif_lib.h, + # EGifPutExtensionLast only exists from version libungif-4.1.0b1. + # Earlier versions can crash Emacs. +- AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)) ++ AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes)) + fi + + if test "${HAVE_GIF}" = "yes"; then +@@ -2283,7 +2283,7 @@ + echo " Does Emacs use -lXpm? ${HAVE_XPM}" + echo " Does Emacs use -ljpeg? ${HAVE_JPEG}" + echo " Does Emacs use -ltiff? ${HAVE_TIFF}" +-echo " Does Emacs use -lungif? ${HAVE_GIF}" ++echo " Does Emacs use -lgif? ${HAVE_GIF}" + echo " Does Emacs use -lpng? ${HAVE_PNG}" + echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" + echo +diff -ur emacs-21.4.orig/src/Makefile.in emacs-21.4/src/Makefile.in +--- emacs-21.4.orig/src/Makefile.in 2003-01-23 04:34:06.000000000 -0600 ++++ emacs-21.4/src/Makefile.in 2006-08-12 17:23:30.000000000 -0500 +@@ -402,7 +402,7 @@ + + #if HAVE_GIF + #ifndef LIBGIF +-#define LIBGIF -lungif ++#define LIBGIF -lgif + #endif /* not defined LIBGIF */ + #else /* not HAVE_GIF */ + #define LIBGIF +Only in emacs-21.4/src: Makefile.in~ diff --git a/emacs/21.4/06_ppc64_ppc64.patch b/emacs/21.4/06_ppc64_ppc64.patch new file mode 100644 index 0000000..7572137 --- /dev/null +++ b/emacs/21.4/06_ppc64_ppc64.patch @@ -0,0 +1,51 @@ +--- emacs-21.3/src/m/macppc.h.sopwith 2001-10-23 02:43:33.000000000 -0400 ++++ emacs-21.3/src/m/macppc.h 2003-05-02 09:17:37.000000000 -0400 +@@ -95,11 +95,47 @@ + + #ifdef LINUX + #define LINKER $(CC) -nostdlib +-#define LD_SWITCH_MACHINE -Xlinker -m -Xlinker elf32ppc ++#ifdef __powerpc64__ ++#define LD_SWITCH_MACHINE -m64 -Xlinker -m -Xlinker elf64ppc ++#else ++#define LD_SWITCH_MACHINE -m32 -Xlinker -m -Xlinker elf32ppc ++#endif + /* s/gnu-linux.h defines this to `-z nocombreloc' which does not work here + because prefix-args is not used. */ + #undef LD_SWITCH_SYSTEM_TEMACS + #define LD_SWITCH_MACHINE_TEMACS -Xlinker -znocombreloc ++ ++#ifdef __powerpc64__ ++/* Misc 64-bit fixups, patterned after the x86_64 file */ ++#undef BITS_PER_LONG ++#undef BITS_PER_EMACS_INT ++#undef VALBITS ++#undef PNTR_COMPARISON_TYPE ++#undef MARKBIT ++#undef XINT ++#undef XUINT ++#undef XPNTR ++#undef START_FILES ++#undef LIB_STANDARD ++#undef EMACS_INT ++#undef EMACS_UINT ++#undef SPECIAL_EMACS_INT ++ ++#define BITS_PER_LONG 64 ++#define BITS_PER_EMACS_INT 64 ++#define VALBITS 60 ++#define PNTR_COMPARISON_TYPE unsigned long ++#define MARKBIT 0x8000000000000000L ++ ++#define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS)) ++#define XUINT(a) ((long) (a) & VALMASK) ++#define XPNTR(a) XUINT (a) ++#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o ++#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o ++#define EMACS_INT long ++#define EMACS_UINT unsigned long ++#define SPECIAL_EMACS_INT ++#endif + #endif + + #if 0 /* This breaks things on PPC GNU/Linux ecept for Yellowdog, diff --git a/emacs/21.4/07_ppc64_fix-unexelf.patch b/emacs/21.4/07_ppc64_fix-unexelf.patch new file mode 100644 index 0000000..5a812a9 --- /dev/null +++ b/emacs/21.4/07_ppc64_fix-unexelf.patch @@ -0,0 +1,67 @@ +Fix unexelf.c (unexec) on ppc64, backported from Emacs 22 by Chip Coldwell, +see <http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=183304> +--- emacs-21.4/src/unexelf.c 2002-10-15 10:21:44.000000000 -0400 ++++ emacs-21.4.works/src/unexelf.c 2006-07-26 11:08:05.000000000 -0400 +@@ -697,7 +697,7 @@ unexec (new_name, old_name, data_start, + ElfW(Addr) new_data2_addr; + + int n, nn; +- int old_bss_index, old_sbss_index; ++ int old_bss_index, old_sbss_index, old_plt_index; + int old_data_index, new_data2_index; + int old_mdebug_index; + struct stat stat_buf; +@@ -759,12 +759,31 @@ unexec (new_name, old_name, data_start, + if (OLD_SECTION_H (old_sbss_index).sh_type == SHT_PROGBITS) + old_sbss_index = -1; + +- if (old_sbss_index == -1) ++ /* PowerPC64 has .plt in the BSS section. */ ++ old_plt_index = find_section (".plt", old_section_names, ++ old_name, old_file_h, old_section_h, 1); ++ if (old_plt_index != -1) ++ if (OLD_SECTION_H (old_plt_index).sh_type != SHT_NOBITS) ++ old_plt_index = -1; ++ ++ if (old_sbss_index == -1 && old_plt_index == -1) + { + old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; + old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; + new_data2_index = old_bss_index; + } ++ else if (old_plt_index != -1 ++ && (old_sbss_index == -1 ++ || (OLD_SECTION_H (old_sbss_index).sh_addr ++ > OLD_SECTION_H (old_plt_index).sh_addr))) ++ { ++ old_bss_addr = OLD_SECTION_H (old_plt_index).sh_addr; ++ old_bss_size = OLD_SECTION_H (old_bss_index).sh_size ++ + OLD_SECTION_H (old_plt_index).sh_size; ++ if (old_sbss_index != -1) ++ old_bss_size += OLD_SECTION_H (old_sbss_index).sh_size; ++ new_data2_index = old_plt_index; ++ } + else + { + old_bss_addr = OLD_SECTION_H (old_sbss_index).sh_addr; +@@ -955,7 +974,7 @@ unexec (new_name, old_name, data_start, + if (n == old_bss_index + /* The new bss and sbss section's size is zero, and its file offset + and virtual address should be off by NEW_DATA2_SIZE. */ +- || n == old_sbss_index ++ || n == old_sbss_index || n == old_plt_index + ) + { + /* NN should be `old_s?bss_index + 1' at this point. */ +@@ -986,9 +1005,8 @@ unexec (new_name, old_name, data_start, + >= OLD_SECTION_H (old_bss_index-1).sh_offset) + NEW_SECTION_H (nn).sh_offset += new_data2_size; + #else +- if (round_up (NEW_SECTION_H (nn).sh_offset, +- OLD_SECTION_H (old_bss_index).sh_addralign) +- >= new_data2_offset) ++ if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size ++ > new_data2_offset) + NEW_SECTION_H (nn).sh_offset += new_data2_size; + #endif + /* Any section that was originally placed after the section diff --git a/emacs/21.4/08_all_autosave-tmp.patch b/emacs/21.4/08_all_autosave-tmp.patch new file mode 100644 index 0000000..240439d --- /dev/null +++ b/emacs/21.4/08_all_autosave-tmp.patch @@ -0,0 +1,12 @@ +--- emacs-21.4/lisp/startup.el~ 2003-03-16 23:05:59.000000000 +0100 ++++ emacs-21.4/lisp/startup.el 2007-02-16 11:21:18.000000000 +0100 +@@ -629,6 +629,9 @@ + (setq small-temporary-file-directory + (if (eq system-type 'ms-dos) + (getenv "TMPDIR"))) ++ (setq auto-save-file-name-transforms ++ (list (list (caar auto-save-file-name-transforms) ++ (expand-file-name "\\2" temporary-file-directory)))) + + ;; See if we should import version-control from the environment variable. + (let ((vc (getenv "VERSION_CONTROL"))) diff --git a/emacs/21.4/09_all_blessmail-build.patch b/emacs/21.4/09_all_blessmail-build.patch new file mode 100644 index 0000000..03b0723 --- /dev/null +++ b/emacs/21.4/09_all_blessmail-build.patch @@ -0,0 +1,22 @@ +--- emacs-22.0.93/lib-src/Makefile.in~ 2007-01-17 16:53:20.000000000 +0100 ++++ emacs-22.0.93/lib-src/Makefile.in 2007-02-17 11:29:06.000000000 +0100 +@@ -23,6 +23,10 @@ + # inherited from the environment. + SHELL = /bin/sh + ++# following two lines taken from ../lisp/Makefile.in ++EMACS = ../src/emacs ++EMACSOPT = -batch --no-site-file --multibyte ++ + # ==================== Things `configure' will edit ==================== + + CC=@CC@ +@@ -279,7 +283,7 @@ + + #ifdef MOVEMAIL_NEEDS_BLESSING + blessmail: +- ../src/emacs -batch -l $(srcdir)/../lisp/mail/blessmail.el ++ $(EMACS) $(EMACSOPT) -l $(srcdir)/../lisp/mail/blessmail.el + chmod +x blessmail + #endif + diff --git a/emacs/21.4/10_all_qa.patch b/emacs/21.4/10_all_qa.patch new file mode 100644 index 0000000..d44ddc4 --- /dev/null +++ b/emacs/21.4/10_all_qa.patch @@ -0,0 +1,92 @@ +diff -ur emacs-21.4-orig/lib-src/cvtmail.c emacs-21.4/lib-src/cvtmail.c +--- emacs-21.4-orig/lib-src/cvtmail.c 2002-02-15 13:06:48.000000000 +0100 ++++ emacs-21.4/lib-src/cvtmail.c 2007-03-19 09:02:08.000000000 +0100 +@@ -33,12 +33,15 @@ + * Author: Larry Kolodney, 1985 + */ + ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif + + #include <stdio.h> + +-char *malloc (); +-char *realloc (); ++#ifndef HAVE_STDLIB_H + char *getenv (); ++#endif + + char *xmalloc (); + char *xrealloc (); +diff -ur emacs-21.4-orig/lib-src/yow.c emacs-21.4/lib-src/yow.c +--- emacs-21.4-orig/lib-src/yow.c 1999-02-26 12:37:05.000000000 +0100 ++++ emacs-21.4/lib-src/yow.c 2007-03-19 09:03:50.000000000 +0100 +@@ -10,6 +10,10 @@ + * With dynamic memory allocation. + */ + ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ + #include <stdio.h> + #include <ctype.h> + #include <../src/epaths.h> /* For PATH_DATA. */ +@@ -33,8 +37,6 @@ + &res;}) + #endif + +-char *malloc(), *realloc(); +- + void yow(); + void setup_yow(); + +diff -ur emacs-21.4-orig/src/prefix-args.c emacs-21.4/src/prefix-args.c +--- emacs-21.4-orig/src/prefix-args.c 2001-02-22 02:49:37.000000000 +0100 ++++ emacs-21.4/src/prefix-args.c 2007-03-19 09:20:27.000000000 +0100 +@@ -43,6 +43,10 @@ + If I can't write a completely portable program to do this in C, + I'm quitting and taking up gardening. */ + ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ + #include <stdio.h> + + int +diff -ur emacs-21.4-orig/src/xterm.c emacs-21.4/src/xterm.c +--- emacs-21.4-orig/src/xterm.c 2002-10-15 16:21:45.000000000 +0200 ++++ emacs-21.4/src/xterm.c 2007-03-19 09:13:01.000000000 +0100 +@@ -10899,7 +10899,7 @@ + if (!tool_bar_p) + if (!dpyinfo->x_focus_frame + || f == dpyinfo->x_focus_frame) +- construct_mouse_click (&emacs_event, &event, f); ++ construct_mouse_click (&emacs_event, &event.xbutton, f); + } + else + { +diff -ur emacs-21.4-orig/oldXMenu/ChgPane.c emacs-21.4/oldXMenu/ChgPane.c +--- emacs-21.4-orig/oldXMenu/ChgPane.c 1999-10-03 21:34:53.000000000 +0200 ++++ emacs-21.4/oldXMenu/ChgPane.c 2007-03-19 15:10:00.000000000 +0100 +@@ -13,6 +13,7 @@ + * + */ + ++#include <config.h> + #include "XMenuInt.h" + + int +diff -ur emacs-21.4-orig/oldXMenu/ChgSel.c emacs-21.4/oldXMenu/ChgSel.c +--- emacs-21.4-orig/oldXMenu/ChgSel.c 1999-10-03 21:34:54.000000000 +0200 ++++ emacs-21.4/oldXMenu/ChgSel.c 2007-03-19 15:10:02.000000000 +0100 +@@ -13,6 +13,7 @@ + * + */ + ++#include <config.h> + #include "XMenuInt.h" + + int diff --git a/emacs/21.4/11_all_Xaw3d-headers.patch b/emacs/21.4/11_all_Xaw3d-headers.patch new file mode 100644 index 0000000..26d7a85 --- /dev/null +++ b/emacs/21.4/11_all_Xaw3d-headers.patch @@ -0,0 +1,72 @@ +diff -ur emacs-21.4-orig/src/xfns.c emacs-21.4/src/xfns.c +--- emacs-21.4-orig/src/xfns.c 2002-12-06 18:05:35.000000000 +0100 ++++ emacs-21.4/src/xfns.c 2007-04-19 01:56:40.000000000 +0200 +@@ -69,8 +69,13 @@ + #include <X11/Shell.h> + + #ifndef USE_MOTIF ++#ifdef HAVE_XAW3D ++#include <X11/Xaw3d/Paned.h> ++#include <X11/Xaw3d/Label.h> ++#else /* !HAVE_XAW3D */ + #include <X11/Xaw/Paned.h> + #include <X11/Xaw/Label.h> ++#endif /* HAVE_XAW3D */ + #endif /* USE_MOTIF */ + + #ifdef USG +diff -ur emacs-21.4-orig/src/xmenu.c emacs-21.4/src/xmenu.c +--- emacs-21.4-orig/src/xmenu.c 2002-01-06 07:18:19.000000000 +0100 ++++ emacs-21.4/src/xmenu.c 2007-04-19 01:56:40.000000000 +0200 +@@ -73,7 +73,11 @@ + #include <X11/StringDefs.h> + #include <X11/Shell.h> + #ifdef USE_LUCID ++#ifdef HAVE_XAW3D ++#include <X11/Xaw3d/Paned.h> ++#else /* !HAVE_XAW3D */ + #include <X11/Xaw/Paned.h> ++#endif /* HAVE_XAW3D */ + #endif /* USE_LUCID */ + #include "../lwlib/lwlib.h" + #else /* not USE_X_TOOLKIT */ +diff -ur emacs-21.4-orig/lwlib/lwlib.c emacs-21.4/lwlib/lwlib.c +--- emacs-21.4-orig/lwlib/lwlib.c 2000-09-30 19:03:27.000000000 +0200 ++++ emacs-21.4/lwlib/lwlib.c 2007-04-19 01:56:40.000000000 +0200 +@@ -49,7 +49,11 @@ + #include "lwlib-Xol.h" + #endif + #if defined (USE_XAW) ++#ifdef HAVE_XAW3D ++#include <X11/Xaw3d/Paned.h> ++#else /* !HAVE_XAW3D */ + #include <X11/Xaw/Paned.h> ++#endif /* HAVE_XAW3D */ + #include "lwlib-Xaw.h" + #endif + +diff -ur emacs-21.4-orig/lwlib/lwlib-Xaw.c emacs-21.4/lwlib/lwlib-Xaw.c +--- emacs-21.4-orig/lwlib/lwlib-Xaw.c 2001-02-28 15:55:17.000000000 +0100 ++++ emacs-21.4/lwlib/lwlib-Xaw.c 2007-04-19 01:56:40.000000000 +0200 +@@ -31,12 +31,21 @@ + #include <X11/CoreP.h> + #include <X11/Shell.h> + ++#ifdef HAVE_XAW3D ++#include <X11/Xaw3d/Scrollbar.h> ++#include <X11/Xaw3d/Paned.h> ++#include <X11/Xaw3d/Dialog.h> ++#include <X11/Xaw3d/Form.h> ++#include <X11/Xaw3d/Command.h> ++#include <X11/Xaw3d/Label.h> ++#else /* !HAVE_XAW3D */ + #include <X11/Xaw/Scrollbar.h> + #include <X11/Xaw/Paned.h> + #include <X11/Xaw/Dialog.h> + #include <X11/Xaw/Form.h> + #include <X11/Xaw/Command.h> + #include <X11/Xaw/Label.h> ++#endif /* HAVE_XAW3D */ + + #include <X11/Xatom.h> + diff --git a/emacs/21.4/12_all_freebsd-terminfo.patch b/emacs/21.4/12_all_freebsd-terminfo.patch new file mode 100644 index 0000000..0741dbe --- /dev/null +++ b/emacs/21.4/12_all_freebsd-terminfo.patch @@ -0,0 +1,16 @@ +Taken from FreeBSD Ports + +--- src/s/freebsd.h.orig Tue Feb 20 19:52:17 2001 ++++ src/s/freebsd.h Mon Feb 18 11:51:50 2002 +@@ -68,6 +68,11 @@ + #define LIBS_SYSTEM -lutil + #if __FreeBSD_version < 400000 + #define LIBS_TERMCAP -ltermcap ++#else ++#ifdef HAVE_LIBNCURSES ++#define TERMINFO ++#define LIBS_TERMCAP -lncurses ++#endif + #endif + + #define SYSV_SYSTEM_DIR diff --git a/emacs/21.4/13_all_oldxmenu-malloc.patch b/emacs/21.4/13_all_oldxmenu-malloc.patch new file mode 100644 index 0000000..c7d45e6 --- /dev/null +++ b/emacs/21.4/13_all_oldxmenu-malloc.patch @@ -0,0 +1,11 @@ +--- emacs-21.4/oldXMenu/XMakeAssoc.c~ 1999-10-03 21:35:22.000000000 +0200 ++++ emacs-21.4/oldXMenu/XMakeAssoc.c 2007-05-28 22:21:57.000000000 +0200 +@@ -91,7 +91,7 @@ + /* If we are here then the new entry should be inserted just */ + /* before the current value of "Entry". */ + /* Create a new XAssoc and load it with new provided data. */ +- new_entry = (XAssoc *) xmalloc(sizeof(XAssoc)); ++ new_entry = (XAssoc *) malloc(sizeof(XAssoc)); + new_entry->display = dpy; + new_entry->x_id = x_id; + new_entry->data = data; diff --git a/emacs/21.4/14_all_gif-image-size.patch b/emacs/21.4/14_all_gif-image-size.patch new file mode 100644 index 0000000..506e310 --- /dev/null +++ b/emacs/21.4/14_all_gif-image-size.patch @@ -0,0 +1,34 @@ +--- emacs21-21.4a+1.orig/src/xfns.c ++++ emacs21-21.4a+1/src/xfns.c +@@ -9805,8 +9805,17 @@ + return 0; + } + +- width = img->width = max (gif->SWidth, gif->Image.Left + gif->Image.Width); +- height = img->height = max (gif->SHeight, gif->Image.Top + gif->Image.Height); ++ image_top = gif->SavedImages[ino].ImageDesc.Top; ++ image_left = gif->SavedImages[ino].ImageDesc.Left; ++ image_width = gif->SavedImages[ino].ImageDesc.Width; ++ image_height = gif->SavedImages[ino].ImageDesc.Height; ++ ++ width = img->width = max (gif->SWidth, ++ max (gif->Image.Left + gif->Image.Width, ++ image_left + image_width)); ++ height = img->height = max (gif->SHeight, ++ max (gif->Image.Top + gif->Image.Height, ++ image_top + image_height)); + + /* Create the X image and pixmap. */ + if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap)) +@@ -9839,11 +9848,6 @@ + requires more than can be done here (see the gif89 spec, + disposal methods). Let's simply assume that the part + not covered by a sub-image is in the frame's background color. */ +- image_top = gif->SavedImages[ino].ImageDesc.Top; +- image_left = gif->SavedImages[ino].ImageDesc.Left; +- image_width = gif->SavedImages[ino].ImageDesc.Width; +- image_height = gif->SavedImages[ino].ImageDesc.Height; +- + for (y = 0; y < image_top; ++y) + for (x = 0; x < width; ++x) + XPutPixel (ximg, x, y, FRAME_BACKGROUND_PIXEL (f)); diff --git a/emacs/21.4/15_all_format-int.patch b/emacs/21.4/15_all_format-int.patch new file mode 100644 index 0000000..b825031 --- /dev/null +++ b/emacs/21.4/15_all_format-int.patch @@ -0,0 +1,11 @@ +--- emacs-21.4-orig/src/editfns.c 2003-01-20 12:03:33.000000000 +0100 ++++ emacs-21.4/src/editfns.c 2007-11-25 17:02:54.000000000 +0100 +@@ -3266,7 +3266,7 @@ + && *format != 'i' && *format != 'X' && *format != 'c') + error ("Invalid format operation %%%c", *format); + +- thissize = 30; ++ thissize = 30 + (precision > 0 ? precision : 0); + if (*format == 'c' + && (! SINGLE_BYTE_CHAR_P (XINT (args[n])) + || XINT (args[n]) == 0)) |