]> code.delx.au - gnu-emacs/commitdiff
Redo 9/16 change, but only if IRIX6_5.
authorRichard M. Stallman <rms@gnu.org>
Mon, 7 Oct 2002 22:50:47 +0000 (22:50 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 7 Oct 2002 22:50:47 +0000 (22:50 +0000)
src/unexelf.c

index cf3fc9d5bcd23839292f6b891affbce8a3890e54..d0543dc41c910c8ce457f1c73eb590694ba83c3e 100644 (file)
@@ -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),