set of 10 patches to avoid emacs build error for ppc64le arch with new binutils 2.28 as per comments in https://build.opensuse.org/request/show/356500 OBS-URL: https://build.opensuse.org/request/show/357463 OBS-URL: https://build.opensuse.org/package/show/editors/emacs?expand=0&rev=189
70 lines
2.9 KiB
Diff
70 lines
2.9 KiB
Diff
From 0a97fb1992c8cc3612a2358f576f774ea1f36777 Mon Sep 17 00:00:00 2001
|
|
From: Alan Modra <amodra@gmail.com>
|
|
Date: Sun, 8 Nov 2015 09:28:59 -0800
|
|
Subject: ELF unexec: Correct section header index
|
|
|
|
Emacs should build on ppc64el. A problem with the bss has been fixed.
|
|
|
|
This upstream patch has been added [1/10]:
|
|
|
|
ELF unexec: Correct section header index
|
|
|
|
First a small fix. The code incorrectly uses "NEW_SECTION_H (n)" when
|
|
it should have been using "NEW_SECTION_H (nn)" to find the name of the
|
|
section currently being processed. Of course, before the bss
|
|
sections, n and nn have the same value, so this doesn't matter except
|
|
in the case of .sbss. For .sbss this probably meant .bss (most likely
|
|
the next section) was copied from memory. A later patch removes the
|
|
bogus .sbss handling anyway.
|
|
|
|
* unexelf.c (unexec): Use correct index to look up names.
|
|
|
|
Origin: upstream, commit: 0bcd08ef052bca9b8d08696068c2a0c387d0dd56
|
|
Bug: http://debbugs.gnu.org/20614
|
|
Bug-Debian: http://bugs.debian.org/808347
|
|
Added-by: Rob Browning <rlb@defaultvalue.org>
|
|
---
|
|
src/unexelf.c | 16 ++++++++--------
|
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/src/unexelf.c b/src/unexelf.c
|
|
index 59e2725..d4a36f8 100644
|
|
--- a/src/unexelf.c
|
|
+++ b/src/unexelf.c
|
|
@@ -1016,12 +1016,12 @@ temacs:
|
|
/* Write out the sections. .data and .data1 (and data2, called
|
|
".data" in the strings table) get copied from the current process
|
|
instead of the old file. */
|
|
- if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data")
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data")
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".sdata")
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".lit4")
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".lit8")
|
|
/* The conditional bit below was in Oliva's original code
|
|
(1999-08-25) and seems to have been dropped by mistake
|
|
@@ -1044,14 +1044,14 @@ temacs:
|
|
loader, but I never got anywhere with an SGI support call
|
|
seeking clues. -- fx 2002-11-29. */
|
|
#ifdef IRIX6_5
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".got")
|
|
#endif
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".sdata1")
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".data1")
|
|
- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
|
|
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
|
|
".sbss"))
|
|
src = (caddr_t) OLD_SECTION_H (n).sh_addr;
|
|
else
|