preece%fang@gswd-vms.gould.com (Scott E. Preece) (02/11/88)
From: "Michael J. Young" <mjy@sdti.uucp> > This happens on many other 80x86 ports as well. Microport (the only 286 > port I'm familiar with) enforces separation between text and data > regions as well. Unfortunately, they don't seem to provide ld(1) > options to override the protection. I received an email reply from T. > Andrews, who said that Xenix/286 provides a service and an ld(1) option > to support this, but I have no personal experience with it. ---------- As far as I can tell, though the System V ld does provide for loader directives to specify that defined areas of memory are flagged for execute or not, the information is not actually propagated into the COFF image or otherwise made available to the executing system. And while shared memory segments do have permission modes attached to them, they are actually supplanted in the System V interface by flags supplied to the shmat(2) call, which only distinguish between read-only and read/write access, so any hardware capability to disable execution is lost. As has been pointed out, what you need is a system call to change the use codes on an area of your address space; there is no standard Unix definition for such a call yet (though the POSIX real-time committee may get there someday). -- scott preece gould/csd - urbana uucp: ihnp4!uiucdcs!ccvaxa!preece arpa: preece@Gould.com