summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Rothe <corsair@gentoo.org>2007-04-29 17:02:08 +0000
committerMarkus Rothe <corsair@gentoo.org>2007-04-29 17:02:08 +0000
commit2a34e49784ecb2d54251f207b6cf84d1347d661d (patch)
tree0c5025d2a7e5a75b470cce59b2e9d1af48491b38 /app-editors
parentversion bump (diff)
downloadgentoo-2-2a34e49784ecb2d54251f207b6cf84d1347d661d.tar.gz
gentoo-2-2a34e49784ecb2d54251f207b6cf84d1347d661d.tar.bz2
gentoo-2-2a34e49784ecb2d54251f207b6cf84d1347d661d.zip
Add patch for ppc64 - thanks ulm; bug #152006. Also add ~ppc64; bug #174884
(Portage version: 2.1.2.2)
Diffstat (limited to 'app-editors')
-rw-r--r--app-editors/emacs/ChangeLog6
-rw-r--r--app-editors/emacs/emacs-21.4-r12.ebuild8
-rw-r--r--app-editors/emacs/files/emacs-21.4-ppc64-fix-unexelf.patch67
3 files changed, 75 insertions, 6 deletions
diff --git a/app-editors/emacs/ChangeLog b/app-editors/emacs/ChangeLog
index 081ad9ce83b0..5b22f8ff2e93 100644
--- a/app-editors/emacs/ChangeLog
+++ b/app-editors/emacs/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for app-editors/emacs
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/ChangeLog,v 1.140 2007/04/26 07:20:08 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/ChangeLog,v 1.141 2007/04/29 17:02:08 corsair Exp $
+
+ 29 Apr 2007; Markus Rothe <corsair@gentoo.org>
+ +files/emacs-21.4-ppc64-fix-unexelf.patch, emacs-21.4-r12.ebuild:
+ Add patch for ppc64 - thanks ulm; bug #152006. Also add ~ppc64; bug #174884
26 Apr 2007; Ulrich Mueller <ulm@gentoo.org> emacs-21.4-r12.ebuild:
Fixed parameter expansion for file name of man pages.
diff --git a/app-editors/emacs/emacs-21.4-r12.ebuild b/app-editors/emacs/emacs-21.4-r12.ebuild
index 357c7448d73e..6bd7ad5298ab 100644
--- a/app-editors/emacs/emacs-21.4-r12.ebuild
+++ b/app-editors/emacs/emacs-21.4-r12.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-21.4-r12.ebuild,v 1.8 2007/04/26 07:20:08 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-21.4-r12.ebuild,v 1.9 2007/04/29 17:02:08 corsair Exp $
WANT_AUTOCONF="2.1"
@@ -13,7 +13,7 @@ SRC_URI="mirror://gnu/emacs/${P}a.tar.gz
LICENSE="GPL-2 FDL-1.1"
SLOT="21"
-KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc64 ~sparc ~x86"
IUSE="X Xaw3d leim lesstif motif nls nosendmail"
RDEPEND="sys-libs/ncurses
@@ -53,6 +53,7 @@ src_unpack() {
epatch "${FILESDIR}/emacs-21.3-hppa.patch"
epatch "${FILESDIR}/emacs-21.2-sh.patch"
epatch "${FILESDIR}/emacs-21.4-libungif-gif-gentoo.patch"
+ epatch "${FILESDIR}/emacs-21.4-ppc64-fix-unexelf.patch"
use ppc64 && epatch "${FILESDIR}/emacs-21.3-ppc64.patch"
@@ -81,9 +82,6 @@ src_compile() {
# ever since GCC 3.2
replace-flags -O[3-9] -O2
- # this fixes bug 152006
- use ppc64 && append-flags -mno-fp-in-toc -mno-sum-in-toc
-
# -march is known to cause signal 6 on some environment
filter-flags "-march=*"
diff --git a/app-editors/emacs/files/emacs-21.4-ppc64-fix-unexelf.patch b/app-editors/emacs/files/emacs-21.4-ppc64-fix-unexelf.patch
new file mode 100644
index 000000000000..e309e7b43125
--- /dev/null
+++ b/app-editors/emacs/files/emacs-21.4-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