summaryrefslogtreecommitdiff
path: root/src/unexelf.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-10-07 22:50:47 +0000
committerRichard M. Stallman <rms@gnu.org>2002-10-07 22:50:47 +0000
commitd4e3d7f27089ee0dfc29e4788de124afc435eaec (patch)
treec09e37acfebf0de3cc9269ff2b2229499752e0c5 /src/unexelf.c
parenta6ce686959bdae6ac006e07f1a72482fa4c3012a (diff)
downloademacs-d4e3d7f27089ee0dfc29e4788de124afc435eaec.tar.gz
Redo 9/16 change, but only if IRIX6_5.
Diffstat (limited to 'src/unexelf.c')
-rw-r--r--src/unexelf.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/unexelf.c b/src/unexelf.c
index cf3fc9d5bcd..d0543dc41c9 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -1012,6 +1012,23 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
".lit4")
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
".lit8")
+ /* The conditional bit below was in Oliva's original code
+ (1999-08-25) and seems to have been dropped by mistake
+ subsequently. It prevents a crash at startup under X in
+ `IRIX64 6.5 6.5.17m' with c_dev 7.3.1.3m. It causes no
+ trouble on the other ELF platforms I could test (Irix
+ 6.5.15m, Solaris 8, Debian Potato x86, Debian Woody
+ SPARC); however, it's reported to cause crashes under
+ some version of GNU/Linux. It's not yet clear what's
+ changed in that Irix version to cause the problem, or why
+ the fix sometimes fails under GNU/Linux. There's
+ probably no good reason to have something Irix-specific
+ here, but this will have to do for now. IRIX6_5 is the
+ most specific macro we have to test. -- fx 2002-10-01 */
+#ifdef IRIX6_5
+ || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
+ ".got")
+#endif
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
".sdata1")
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
@@ -1195,6 +1212,10 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
".lit4")
|| !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
".lit8")
+#ifdef IRIX6_5 /* see above */
+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
+ ".got")
+#endif
|| !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
".sdata1")
|| !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),