#include <stdio.h>
#include <a.out.h>
+/* NetBSD needs this bit, but SunOS does not have it. */
+#ifndef MAP_FILE
+#define MAP_FILE 0
+#endif
+
+
/*
* for programs other than emacs
* define data_start + initialized here, and make sure
char *new_name, *a_name;
unsigned bndry, bss_start, entry;
{
- char buf[PAGSIZ];
int fd, new;
char *old;
struct exec ohdr; /* Allocate on the stack, not needed in the next life */
exit (1);
}
- old = (char *)mmap (0, stat.st_size, PROT_READ, MAP_SHARED, fd, 0);
+ old = (char *)mmap (0, stat.st_size, PROT_READ, MAP_FILE|MAP_SHARED, fd, 0);
if (old == (char *)-1)
{
fprintf (stderr, "%s: ", a_name);
* addresses in the data segment not part of __DYNAMIC
*/
mmap (data_start, rd_only_len, PROT_READ | PROT_EXEC,
- MAP_SHARED | MAP_FIXED, fd,
+ MAP_FILE | MAP_SHARED | MAP_FIXED, fd,
N_DATOFF (hdr) + data_start - N_DATADDR (hdr));
close (fd);
return 1;