aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/21.4/07_ppc64_fix-unexelf.patch')
-rw-r--r--emacs/21.4/07_ppc64_fix-unexelf.patch67
1 files changed, 0 insertions, 67 deletions
diff --git a/emacs/21.4/07_ppc64_fix-unexelf.patch b/emacs/21.4/07_ppc64_fix-unexelf.patch
deleted file mode 100644
index 5a812a9..0000000
--- a/emacs/21.4/07_ppc64_fix-unexelf.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-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