diff options
| author | Jim Blandy | 1993-05-19 04:56:06 +0000 |
|---|---|---|
| committer | Jim Blandy | 1993-05-19 04:56:06 +0000 |
| commit | 7260e3398aefd55a953c6b208bc6892543e3b9ef (patch) | |
| tree | 36215716335dcc5a28a75c1acd2a4f04397fa26f /src | |
| parent | 4ef37be461045aabe2061b7121b1f5be89af5d24 (diff) | |
| download | emacs-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.h | 5 | ||||
| -rw-r--r-- | src/s/irix5-0.h | 23 | ||||
| -rw-r--r-- | src/unexsgi.c | 5 |
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 |
| 28 | char *_getpty(); | 45 | char *_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 |