aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy <[email protected]>1993-05-19 04:56:06 +0000
committerJim Blandy <[email protected]>1993-05-19 04:56:06 +0000
commit7260e3398aefd55a953c6b208bc6892543e3b9ef (patch)
tree36215716335dcc5a28a75c1acd2a4f04397fa26f /src
parent4ef37be461045aabe2061b7121b1f5be89af5d24 (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.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 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