aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1993-05-19 04:56:06 +0000
committerJim Blandy1993-05-19 04:56:06 +0000
commit7260e3398aefd55a953c6b208bc6892543e3b9ef (patch)
tree36215716335dcc5a28a75c1acd2a4f04397fa26f /src
parent4ef37be461045aabe2061b7121b1f5be89af5d24 (diff)
downloademacs-7260e3398aefd55a953c6b208bc6892543e3b9ef.tar.gz
emacs-7260e3398aefd55a953c6b208bc6892543e3b9ef.zip
Changes for Silicon Graphics Iris 5D.
* unexelfsgi.c: New file; like unexelf.c, but tolerates program segments above BSS. * m/iris5d.h: New file. * s/irix5-0.h: New file. * process.c [__sgi] (allocate_pty): Give up immediately if pty is inaccessible.
Diffstat (limited to 'src')
-rw-r--r--src/m/iris5d.h5
-rw-r--r--src/s/irix5-0.h23
-rw-r--r--src/unexsgi.c5
3 files changed, 28 insertions, 5 deletions
diff --git a/src/m/iris5d.h b/src/m/iris5d.h
index 1b9cfdfc8f6..dd41d312355 100644
--- a/src/m/iris5d.h
+++ b/src/m/iris5d.h
@@ -120,7 +120,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
120/* This machine requires completely different unexec code 120/* This machine requires completely different unexec code
121 which lives in a separate file. Specify the file name. */ 121 which lives in a separate file. Specify the file name. */
122 122
123#define UNEXEC unexmips.o 123#ifdef UNEXEC
124#undef UNEXEC
125#endif
126#define UNEXEC unexelfsgi.o
124 127
125#define TEXT_START 0x400000 128#define TEXT_START 0x400000
126 129
diff --git a/src/s/irix5-0.h b/src/s/irix5-0.h
index 7f8cb356ee6..fe42458768a 100644
--- a/src/s/irix5-0.h
+++ b/src/s/irix5-0.h
@@ -1,6 +1,17 @@
1#include "irix3-3.h" 1#include "s-usg5-4.h"
2#ifdef LIBS_SYSTEM
3#undef LIBS_SYSTEM
4#endif
5
6#ifdef SYSTEM_TYPE
7#undef SYSTEM_TYPE
8#endif
9#define SYSTEM_TYPE "silicon-graphics-unix"
10
11#ifdef SETUP_SLAVE_PTY
12#undef SETUP_SLAVE_PTY
13#endif
2 14
3#define USG5_3
4 15
5/* Define HAVE_ALLOCA to say that the system provides a properly 16/* Define HAVE_ALLOCA to say that the system provides a properly
6 working alloca function and it should be used. */ 17 working alloca function and it should be used. */
@@ -18,11 +29,17 @@
18 we'll just define WNOHANG right here. 29 we'll just define WNOHANG right here.
19 (An implicit decl is good enough for wait3.) */ 30 (An implicit decl is good enough for wait3.) */
20 31
21#define WNOHANG 0x1 32/* #define WNOHANG 0x1 */
22 33
23/* No need to use sprintf to get the tty name--we get that from _getpty. */ 34/* No need to use sprintf to get the tty name--we get that from _getpty. */
35#ifdef PTY_TTY_NAME_SPRINTF
36#undef PTY_TTY_NAME_SPRINTF
37#endif
24#define PTY_TTY_NAME_SPRINTF 38#define PTY_TTY_NAME_SPRINTF
25/* No need to get the pty name at all. */ 39/* No need to get the pty name at all. */
40#ifdef PTY_NAME_SPRINTF
41#undef PTY_NAME_SPRINTF
42#endif
26#define PTY_NAME_SPRINTF 43#define PTY_NAME_SPRINTF
27#ifdef emacs 44#ifdef emacs
28char *_getpty(); 45char *_getpty();
diff --git a/src/unexsgi.c b/src/unexsgi.c
index b37e09da2f9..67fc20ccf95 100644
--- a/src/unexsgi.c
+++ b/src/unexsgi.c
@@ -630,8 +630,11 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
630 if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment) 630 if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment)
631 alignment = OLD_SECTION_H (old_bss_index).sh_addralign; 631 alignment = OLD_SECTION_H (old_bss_index).sh_addralign;
632 632
633 /* Supposedly this condition is okay for the SGI. */
634#if 0
633 if (NEW_PROGRAM_H(n).p_vaddr + NEW_PROGRAM_H(n).p_filesz > old_bss_addr) 635 if (NEW_PROGRAM_H(n).p_vaddr + NEW_PROGRAM_H(n).p_filesz > old_bss_addr)
634 fatal ("Program segment above .bss in %s\n", old_name, 0); 636 fatal ("Program segment above .bss in %s\n", old_name, 0);
637#endif
635 638
636 if (NEW_PROGRAM_H(n).p_type == PT_LOAD 639 if (NEW_PROGRAM_H(n).p_type == PT_LOAD
637 && (round_up ((NEW_PROGRAM_H (n)).p_vaddr 640 && (round_up ((NEW_PROGRAM_H (n)).p_vaddr
@@ -646,7 +649,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
646 NEW_PROGRAM_H(n).p_filesz += new_data2_size; 649 NEW_PROGRAM_H(n).p_filesz += new_data2_size;
647 NEW_PROGRAM_H(n).p_memsz = NEW_PROGRAM_H(n).p_filesz; 650 NEW_PROGRAM_H(n).p_memsz = NEW_PROGRAM_H(n).p_filesz;
648 651
649#if 0 /* Maybe allow section after data2 - does this ever happen? */ 652#if 1 /* Maybe allow section after data2 - does this ever happen? */
650 for (n = new_file_h->e_phnum - 1; n >= 0; n--) 653 for (n = new_file_h->e_phnum - 1; n >= 0; n--)
651 { 654 {
652 if (NEW_PROGRAM_H(n).p_vaddr 655 if (NEW_PROGRAM_H(n).p_vaddr