diff options
author | Jim Blandy <[email protected]> | 1993-05-19 04:56:06 +0000 |
---|---|---|
committer | Jim Blandy <[email protected]> | 1993-05-19 04:56:06 +0000 |
commit | 7260e3398aefd55a953c6b208bc6892543e3b9ef (patch) | |
tree | 36215716335dcc5a28a75c1acd2a4f04397fa26f /src | |
parent | 4ef37be461045aabe2061b7121b1f5be89af5d24 (diff) |
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 1b9cfdfc8f..dd41d31235 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. */ /* This machine requires completely different unexec code which lives in a separate file. Specify the file name. */ -#define UNEXEC unexmips.o +#ifdef UNEXEC +#undef UNEXEC +#endif +#define UNEXEC unexelfsgi.o #define TEXT_START 0x400000 diff --git a/src/s/irix5-0.h b/src/s/irix5-0.h index 7f8cb356ee..fe42458768 100644 --- a/src/s/irix5-0.h +++ b/src/s/irix5-0.h @@ -1,6 +1,17 @@ -#include "irix3-3.h" +#include "s-usg5-4.h" +#ifdef LIBS_SYSTEM +#undef LIBS_SYSTEM +#endif + +#ifdef SYSTEM_TYPE +#undef SYSTEM_TYPE +#endif +#define SYSTEM_TYPE "silicon-graphics-unix" + +#ifdef SETUP_SLAVE_PTY +#undef SETUP_SLAVE_PTY +#endif -#define USG5_3 /* Define HAVE_ALLOCA to say that the system provides a properly working alloca function and it should be used. */ @@ -18,11 +29,17 @@ we'll just define WNOHANG right here. (An implicit decl is good enough for wait3.) */ -#define WNOHANG 0x1 +/* #define WNOHANG 0x1 */ /* No need to use sprintf to get the tty name--we get that from _getpty. */ +#ifdef PTY_TTY_NAME_SPRINTF +#undef PTY_TTY_NAME_SPRINTF +#endif #define PTY_TTY_NAME_SPRINTF /* No need to get the pty name at all. */ +#ifdef PTY_NAME_SPRINTF +#undef PTY_NAME_SPRINTF +#endif #define PTY_NAME_SPRINTF #ifdef emacs char *_getpty(); diff --git a/src/unexsgi.c b/src/unexsgi.c index b37e09da2f..67fc20ccf9 100644 --- a/src/unexsgi.c +++ b/src/unexsgi.c @@ -630,8 +630,11 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment) alignment = OLD_SECTION_H (old_bss_index).sh_addralign; + /* Supposedly this condition is okay for the SGI. */ +#if 0 if (NEW_PROGRAM_H(n).p_vaddr + NEW_PROGRAM_H(n).p_filesz > old_bss_addr) fatal ("Program segment above .bss in %s\n", old_name, 0); +#endif if (NEW_PROGRAM_H(n).p_type == PT_LOAD && (round_up ((NEW_PROGRAM_H (n)).p_vaddr @@ -646,7 +649,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) NEW_PROGRAM_H(n).p_filesz += new_data2_size; NEW_PROGRAM_H(n).p_memsz = NEW_PROGRAM_H(n).p_filesz; -#if 0 /* Maybe allow section after data2 - does this ever happen? */ +#if 1 /* Maybe allow section after data2 - does this ever happen? */ for (n = new_file_h->e_phnum - 1; n >= 0; n--) { if (NEW_PROGRAM_H(n).p_vaddr |