svn commit: r226343 - head/sys/vm

Marcel Moolenaar marcel at xcllnt.net
Thu Oct 13 20:13:14 UTC 2011


On Oct 13, 2011, at 12:09 PM, Kostik Belousov wrote:

> On Thu, Oct 13, 2011 at 11:30:12AM -0700, Marcel Moolenaar wrote:
>> 
>> On Oct 13, 2011, at 11:20 AM, Kostik Belousov wrote:
>> 
>>> The two commits removed NX support for .data/.bss for 32bit binaries
>>> Thon amd64. is is too unfortunate. Can we claim that only old
>>> Thbinaries need this hack ?
>> 
>> I don't know. When did our ABI for i386 change to have NX by default?
> I think it changed de-facto when NX appears to be supported by hardware.
> In other words, PF_R->PF_X was always considered a coincident, and not
> a promise.

That's really besides the point. ABI changes are made deliberately
and ABIs must be well-documented for anyone to adhere to it. You
can't post hoc wave your hand and say that at some unspecified time
in the past the ABI changed: at what precise time does "supported
by hardware mean" and how does that tie to a major FreeBSD version?

Point in case: the JDK 1.4.x still works on FreeBSD 9.x (i386), so
the ABI really hasn't changed at all in that respect.

> I think we can claim that the moment FreeBSD gained PAE support, it happen.

We cannot make that claim at at.

> I would suggest to add a sysctl, say kern.elf32.readable_nx, with
> the values:
> 0 - strictly follow segment permissions
> 1 - PF_R implies PF_X if p_osrel < 600000
> 2 - PF_R always implied PF_X
> for 32bit binaries.

A sysctl is a good idea, but I would just give it a 0/1 value.
Adding a "p_osrel < 600000" case is entirely without grounds.

-- 
Marcel Moolenaar
marcel at xcllnt.net




More information about the svn-src-all mailing list