#include <scnhdr.h>
#include <sym.h>
-#ifdef IRIS_4D
+#if defined (IRIS_4D) || defined (sony)
#include "getpagesize.h"
+#include <fcntl.h>
#endif
static void fatal_unexec ();
+static void mark_x ();
#define READ(_fd, _buffer, _size, _error_message, _error_arg) \
errno = EEOF; \
&& hdr.fhdr.f_magic != (MIPSELMAGIC | 1)
&& hdr.fhdr.f_magic != (MIPSEBMAGIC | 1))
{
- fprintf(stderr,
- "unexec: input file magic number is %x, not %x, %x, %x or %x.\n",
- hdr.fhdr.f_magic,
- MIPSELMAGIC, MIPSEBMAGIC,
- MIPSELMAGIC | 1, MIPSEBMAGIC | 1);
+ fprintf (stderr,
+ "unexec: input file magic number is %x, not %x, %x, %x or %x.\n",
+ hdr.fhdr.f_magic,
+ MIPSELMAGIC, MIPSEBMAGIC,
+ MIPSELMAGIC | 1, MIPSEBMAGIC | 1);
exit(1);
}
#else /* not MIPS2 */
CHECK_SCNHDR (sdata_section, _SDATA, STYP_SDATA);
CHECK_SCNHDR (sbss_section, _SBSS, STYP_SBSS);
CHECK_SCNHDR (bss_section, _BSS, STYP_BSS);
+#if 0 /* Apparently this error check goes off on irix 3.3,
+ but it doesn't indicate a real problem. */
if (i != hdr.fhdr.f_nscns)
fprintf (stderr, "unexec: %d sections found instead of %d.\n",
i, hdr.fhdr.f_nscns);
+#endif
+
+ text_section->s_scnptr = 0;
pagesize = getpagesize ();
brk = (sbrk (0) + pagesize - 1) & (-pagesize);
/*
* mark_x
*
- * After succesfully building the new a.out, mark it executable
+ * After successfully building the new a.out, mark it executable
*/
-static
+static void
mark_x (name)
char *name;
{