Subject: Re: Non executable mappings and compatibility options bugs
To: Emmanuel Dreyfus <manu@netbsd.org>
From: Chuck Silvers <chuq@chuq.com>
List: tech-kern
Date: 06/20/2004 15:15:18
On Mon, Jun 21, 2004 at 12:11:25AM +0200, Emmanuel Dreyfus wrote:
> Chuck Silvers <chuq@chuq.com> wrote:
> 
> > oh...  you're looking at this as a per-process flag, I was thinking it
> > would be a per-emulation flag.  having it be per-process would work too.
> > 
> > but it occurs to me that the problem is a little different than I was
> > thinking.  in order to faithfully emulate the behaviour of another OS
> > we'll need to know exactly in which cases that OS maps things executable
> > when they "should" be non-executable.  I would guess that it probably
> > goes beyond just what's going on during execve(), and that usually
> > we'll find that an OS that doesn't do everything correctly will be
> > making *all* mappings executable, even mmap() mappings without PROT_EXEC.
> > so in this case, the vmcmd_* functions are too high-level... we would
> > really want to change the behaviour of pmap_enter().  so on powerpc,
> > this would mean that if the per-process flag is set then we'll just
> > never set the SR_NOEXEC flag in the hardware.
> 
> But this problem also exist if we have a per-emulation flag, right?

right, that comment is unrelated to the per-process vs. per-emulation one.

-Chuck