Browse Source

fixed emacs for powerpc (and removed already disabled patch)

git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@1513 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc
rocklinux
Rene Rebe 21 years ago
parent
commit
f3ae32eba8
4 changed files with 64 additions and 204 deletions
  1. +1
    -0
      Documentation/Developers/CHANGELOG-RENE
  2. +0
    -204
      package/rene/emacs/arch-powerpc-ptr-hack.patch-disabled
  3. +58
    -0
      package/rene/emacs/ppc-oddity.patch
  4. +5
    -0
      package/rene/xemacs/ppc-oddity.patch

+ 1
- 0
Documentation/Developers/CHANGELOG-RENE

@ -19,6 +19,7 @@
- Michael Obster: praenti/ddd version update (3.3.7)
- updated pbbuttons and xemacs
- Mathieu: updated bittorrent (3.3)
- fixed emacs for powerpc (and removed already disabled patch)
*) 2003-09-24 (2.0.0-rc1 - 2.0.0-rc2)

+ 0
- 204
package/rene/emacs/arch-powerpc-ptr-hack.patch-disabled

@ -1,204 +0,0 @@
# --- 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 <alloca.h>
+ # 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

+ 58
- 0
package/rene/emacs/ppc-oddity.patch

@ -0,0 +1,58 @@
# --- 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/ppc-oddity.patch
# 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 ---
To be able to build and run Emacs on PowerPC we need to wipe some strange
outdated ... assumptions ...
- Rene Rebe <rene@rocklinux.org>
diff -u emacs-21.3/src/m/macppc.h src.emacs.1064607046.7811.3222618932/emacs-21.3/src/m/macppc.h
--- emacs-21.3/src/m/macppc.h 2001-10-23 08:43:33.000000000 +0200
+++ src.emacs.1064607046.7811.3222618932/emacs-21.3/src/m/macppc.h 2003-09-26 22:26:59.000000000 +0200
@@ -90,26 +90,9 @@
#define HAVE_TEXT_START
#endif
-/* NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says this is needed
- For MkLinux/LinuxPPC. */
-#ifdef LINUX
-#define LINKER $(CC) -nostdlib
-#define LD_SWITCH_MACHINE -Xlinker -m -Xlinker elf32ppc
-/* 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
-#endif
-
-#if 0 /* This breaks things on PPC GNU/Linux ecept for Yellowdog,
- even with identical GCC, as, ld. Let's take it out until we
- know what's really going on here. */
-/* GCC 2.95 and newer on GNU/Linux PPC changed the load address to
- 0x10000000. */
#if defined __linux__
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
#define DATA_SEG_BITS 0x10000000
#endif
-#endif
#endif /* 0 */

+ 5
- 0
package/rene/xemacs/ppc-oddity.patch

@ -20,6 +20,11 @@
#
# --- ROCK-COPYRIGHT-NOTE-END ---
To be able to build and run XEmacs on PowerPC we need to wipe some strange
outdated ... assumptions ...
- Rene Rebe <rene@rocklinux.org>
--- xemacs-21.4.13/configure.orig 2003-06-03 18:42:59.000000000 +0200
+++ xemacs-21.4.13/configure 2003-06-03 18:43:06.000000000 +0200
@@ -2974,8 +2974,6 @@

Loading…
Cancel
Save