# --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # Please add additional copyright information _after_ the line containing # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # # ROCK Linux: rock-src/package/rene/emacs/arch-powerpc-ptr-hack.patch-disabled # ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf # # This program 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 of the License, or # (at your option) any later version. A copy of the GNU General Public # License can be found at Documentation/COPYING. # # Many people helped and are helping developing ROCK Linux. Please # have a look at http://www.rocklinux.org/ and the Documentation/TEAM # file for details. # # --- ROCK-COPYRIGHT-NOTE-END --- See the comments prior to each patch piece. Primarily, the load address was changed in gcc-2.95 for PowerPC Linux, which broke Emacs's pointer handling. The two important patches to fix that problem are DATA_SEG_BITS and EXPLICIT_SIGN_EXTEND. Most of these patches originated with the RedHat and LinuxPPC distributions. This file patches the headers for the Macintosh and IBM RS-6000 machines. -- goo (goo@radek.org) *** src/m/macppc.h.old Wed Nov 29 16:39:18 2000 --- src/m/macppc.h Wed Nov 29 17:08:08 2000 *************** *** 1,4 **** ! /* machine description file For the powerpc Macintosh. Copyright (C) 1994 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,4 ---- ! /* machine description file for the PowerPC Macintosh. Copyright (C) 1994 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 28,33 **** --- 28,44 ---- #define NO_ARG_ARRAY + #if defined(__linux__) && (__GNUC__ - 0 == 2) && (__GNUC_MINOR__ >= 95) + /* gcc-2.95 on Linux/PPC changed the load address to 0x10000000 */ + # define DATA_SEG_BITS 0x10000000 + #endif + + /* Say this machine is a PowerPC Reference Platform */ + + #ifndef prep + # define prep + #endif + /* Define WORD_MACHINE if addresses and such have * to be corrected before they can be used as byte counts. */ *************** *** 38,48 **** --- 49,66 ---- Ones defined so far include vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and many others */ + /* This level of optimization is reported to work. */ + #define C_OPTIMIZE_SWITCH -O2 + /* Use type EMACS_INT rather than a union, to represent Lisp_Object */ /* This is desirable for most machines. */ #define NO_UNION_TYPE + /* XINT must explicitly sign-extend */ + + #define EXPLICIT_SIGN_EXTEND + /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long *************** *** 59,64 **** --- 77,87 ---- in the file alloca.s should be used. */ #define HAVE_ALLOCA + #ifndef NOT_C_CODE + # if __GNUC__ < 2 /* Modern versions of GCC handle alloca directly. */ + # include + # endif + #endif /* Some really obscure 4.2-based systems (like Sequent DYNIX) * do not support asynchronous I/O (using SIGIO) on sockets, *************** *** 75,81 **** /* #define NO_SOCK_SIGIO */ #if defined(__NetBSD__) || defined(__OpenBSD__) ! #define ORDINARY_LINK #endif #define UNEXEC unexelf.o --- 98,104 ---- /* #define NO_SOCK_SIGIO */ #if defined(__NetBSD__) || defined(__OpenBSD__) ! # define ORDINARY_LINK #endif #define UNEXEC unexelf.o *************** *** 83,91 **** #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 --- 106,117 ---- #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 + + /* Avoid .sbss, which causes undump to fail for some reason. */ + #define LD_SWITCH_MACHINE -G0 *** src/m/ibmrs6000.h.old Wed Nov 29 16:49:59 2000 --- src/m/ibmrs6000.h Wed Nov 29 16:58:40 2000 *************** *** 42,51 **** #define IBMR2AIX ! /* Use type int rather than a union, to represent Lisp_Object */ /* This is desirable for most machines. */ #define NO_UNION_TYPE /* Define CANNOT_DUMP on machines where unexec does not work. Then the function dump-emacs will not be defined --- 42,59 ---- #define IBMR2AIX ! /* This level of optimization is reported to work. */ ! #define C_OPTIMIZE_SWITCH -O2 ! ! /* Use type EMACS_INT rather than a union, to represent Lisp_Object */ /* This is desirable for most machines. */ #define NO_UNION_TYPE + + /* XINT must explicitly sign-extend */ + + #define EXPLICIT_SIGN_EXTEND + /* Define CANNOT_DUMP on machines where unexec does not work. Then the function dump-emacs will not be defined *************** *** 74,82 **** we always lose the high bits. We must tell XPNTR to add them back. */ #ifndef USG5_4 ! #define DATA_SEG_BITS 0x20000000 #else ! #define DATA_SEG_BITS 0 #endif #ifdef CANNOT_DUMP --- 82,100 ---- we always lose the high bits. We must tell XPNTR to add them back. */ #ifndef USG5_4 ! # define DATA_SEG_BITS 0x20000000 #else ! # if defined(__linux__) && (__GNUC__ - 0 == 2) && (__GNUC_MINOR__ >= 95) ! /* gcc-2.95 on Linux/PPC changed the load address to 0x10000000 */ ! # define DATA_SEG_BITS 0x10000000 ! # else ! # define DATA_SEG_BITS 0 ! # endif /* newer gcc */ ! #endif ! ! /* Say this machine is a PowerPC Reference Platform */ ! #ifndef prep ! # define prep #endif #ifdef CANNOT_DUMP