fix: emacs build failure due to high memory consumption on ppc64 (#1356919)
Resolves: #1356919
This commit is contained in:
parent
eeaeaa9284
commit
47162ef150
62
emacs-ppc64.patch
Normal file
62
emacs-ppc64.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
commit ff3fc21e24edffccce0d42065833e852a6792bd2
|
||||||
|
Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
Date: Tue Jul 19 15:23:14 2016 +0200
|
||||||
|
|
||||||
|
Port to glibc 2.24 (pre-release) + ppc64
|
||||||
|
|
||||||
|
Backport from master (Bug#24033).
|
||||||
|
Inspired by a suggestion by Florian Weimer in:
|
||||||
|
https://sourceware.org/ml/libc-alpha/2016-07/msg00425.html
|
||||||
|
* src/emacs.c (main) [__PPC64__]:
|
||||||
|
Special case for __PPC64__, which needs ASLR disabled in
|
||||||
|
dumped Emacs too.
|
||||||
|
|
||||||
|
diff --git a/src/emacs.c b/src/emacs.c
|
||||||
|
index 5c187e7..2480dfc 100644
|
||||||
|
--- a/src/emacs.c
|
||||||
|
+++ b/src/emacs.c
|
||||||
|
@@ -674,6 +674,26 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
|
stack_base = &dummy;
|
||||||
|
|
||||||
|
+#if defined HAVE_PERSONALITY_LINUX32 && defined __PPC64__
|
||||||
|
+ /* This code partly duplicates the HAVE_PERSONALITY_LINUX32 code
|
||||||
|
+ below. This duplication is planned to be fixed in a later
|
||||||
|
+ Emacs release. */
|
||||||
|
+# define ADD_NO_RANDOMIZE 0x0040000
|
||||||
|
+ int pers = personality (0xffffffff);
|
||||||
|
+ if (! (pers & ADD_NO_RANDOMIZE)
|
||||||
|
+ && 0 <= personality (pers | ADD_NO_RANDOMIZE))
|
||||||
|
+ {
|
||||||
|
+ /* Address randomization was enabled, but is now disabled.
|
||||||
|
+ Re-execute Emacs to get a clean slate. */
|
||||||
|
+ execvp (argv[0], argv);
|
||||||
|
+
|
||||||
|
+ /* If the exec fails, warn the user and then try without a
|
||||||
|
+ clean slate. */
|
||||||
|
+ perror (argv[0]);
|
||||||
|
+ }
|
||||||
|
+# undef ADD_NO_RANDOMIZE
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifndef CANNOT_DUMP
|
||||||
|
might_dump = !initialized;
|
||||||
|
#endif
|
||||||
|
@@ -784,7 +804,7 @@ main (int argc, char **argv)
|
||||||
|
dumping = !initialized && (strcmp (argv[argc - 1], "dump") == 0
|
||||||
|
|| strcmp (argv[argc - 1], "bootstrap") == 0);
|
||||||
|
|
||||||
|
-#ifdef HAVE_PERSONALITY_LINUX32
|
||||||
|
+#if defined HAVE_PERSONALITY_LINUX32 && !defined __PPC64__
|
||||||
|
if (dumping && ! getenv ("EMACS_HEAP_EXEC"))
|
||||||
|
{
|
||||||
|
/* Set this so we only do this once. */
|
||||||
|
@@ -801,7 +821,7 @@ main (int argc, char **argv)
|
||||||
|
/* If the exec fails, try to dump anyway. */
|
||||||
|
emacs_perror (argv[0]);
|
||||||
|
}
|
||||||
|
-#endif /* HAVE_PERSONALITY_LINUX32 */
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK) && !defined (CYGWIN)
|
||||||
|
/* Extend the stack space available. Don't do that if dumping,
|
16
emacs.spec
16
emacs.spec
@ -5,7 +5,7 @@ Summary: GNU Emacs text editor
|
|||||||
Name: emacs
|
Name: emacs
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 25.0.95
|
Version: 25.0.95
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
License: GPLv3+ and CC0-1.0
|
License: GPLv3+ and CC0-1.0
|
||||||
URL: http://www.gnu.org/software/emacs/
|
URL: http://www.gnu.org/software/emacs/
|
||||||
Group: Applications/Editors
|
Group: Applications/Editors
|
||||||
@ -25,6 +25,7 @@ Patch1: emacs-spellchecker.patch
|
|||||||
# Fix for default PDF viewer bug #971162
|
# Fix for default PDF viewer bug #971162
|
||||||
Patch2: emacs-pdf-default.patch
|
Patch2: emacs-pdf-default.patch
|
||||||
Patch3: emacs-system-crypto-policies.patch
|
Patch3: emacs-system-crypto-policies.patch
|
||||||
|
Patch4: emacs-ppc64.patch
|
||||||
|
|
||||||
BuildRequires: atk-devel
|
BuildRequires: atk-devel
|
||||||
BuildRequires: cairo-devel
|
BuildRequires: cairo-devel
|
||||||
@ -69,7 +70,7 @@ BuildRequires: webkitgtk3-devel
|
|||||||
BuildRequires: python2-devel
|
BuildRequires: python2-devel
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
|
|
||||||
%ifarch %{ix86} %{power64}
|
%ifarch %{ix86}
|
||||||
BuildRequires: util-linux
|
BuildRequires: util-linux
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -167,6 +168,7 @@ packages that add functionality to Emacs.
|
|||||||
%patch1 -p1 -b .spellchecker
|
%patch1 -p1 -b .spellchecker
|
||||||
%patch2 -p1 -b .pdf-default.patch
|
%patch2 -p1 -b .pdf-default.patch
|
||||||
%patch3 -p1 -b .system-crypto-policies
|
%patch3 -p1 -b .system-crypto-policies
|
||||||
|
%patch4 -p1 -b .ppc64
|
||||||
autoconf
|
autoconf
|
||||||
|
|
||||||
# We prefer our emacs.desktop file
|
# We prefer our emacs.desktop file
|
||||||
@ -220,12 +222,7 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS;
|
|||||||
%configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \
|
%configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \
|
||||||
--with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3 --with-gpm=no \
|
--with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3 --with-gpm=no \
|
||||||
--with-xwidgets
|
--with-xwidgets
|
||||||
%ifarch %{power64}
|
make bootstrap
|
||||||
# Temporary workaround for #1356919. Remove when Emacs has been fixed properly.
|
|
||||||
setarch %{_arch} -R make bootstrap
|
|
||||||
%else
|
|
||||||
make bootstrap
|
|
||||||
%endif
|
|
||||||
%{setarch} make %{?_smp_mflags}
|
%{setarch} make %{?_smp_mflags}
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
@ -451,6 +448,9 @@ update-desktop-database &> /dev/null || :
|
|||||||
%dir %{_datadir}/emacs/site-lisp/site-start.d
|
%dir %{_datadir}/emacs/site-lisp/site-start.d
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jul 22 2016 Jan Synáček <jsynacek@redhat.com> - 1:25.0.95-4
|
||||||
|
- fix: emacs build failure due to high memory consumption on ppc64 (#1356919)
|
||||||
|
|
||||||
* Mon Jul 18 2016 Jan Synáček <jsynacek@redhat.com> - 1:25.0.95-3
|
* Mon Jul 18 2016 Jan Synáček <jsynacek@redhat.com> - 1:25.0.95-3
|
||||||
- workaround: emacs build failure due to high memory consumption on ppc64 (#1356919)
|
- workaround: emacs build failure due to high memory consumption on ppc64 (#1356919)
|
||||||
(patch provided by Sinny Kumari)
|
(patch provided by Sinny Kumari)
|
||||||
|
Loading…
Reference in New Issue
Block a user