Date: Thu, 13 Oct 2011 21:20:25 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Marcel Moolenaar <marcel@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r226343 - head/sys/vm Message-ID: <20111013182025.GK1511@deviant.kiev.zoral.com.ua> In-Reply-To: <201110131620.p9DGKAM2022926@svn.freebsd.org> References: <201110131620.p9DGKAM2022926@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--ywvyGaV92PjvegkV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Oct 13, 2011 at 04:20:10PM +0000, Marcel Moolenaar wrote: > Author: marcel > Date: Thu Oct 13 16:20:10 2011 > New Revision: 226343 > URL: http://svn.freebsd.org/changeset/base/226343 >=20 > Log: > In sys_obreak() and when compiling for amd64 or ia64, when the process > is ILP32 (i.e. i386) grant execute permissions by default. The JDK 1.4.x > depends on being able to execute from the heap on i386. >=20 > Modified: > head/sys/vm/vm_unix.c >=20 > Modified: head/sys/vm/vm_unix.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/vm/vm_unix.c Thu Oct 13 16:16:46 2011 (r226342) > +++ head/sys/vm/vm_unix.c Thu Oct 13 16:20:10 2011 (r226343) > @@ -36,6 +36,8 @@ > * @(#)vm_unix.c 8.1 (Berkeley) 6/11/93 > */ > =20 > +#include "opt_compat.h" > + > /* > * Traditional sbrk/grow interface to VM > */ > @@ -49,6 +51,7 @@ __FBSDID("$FreeBSD$"); > #include <sys/proc.h> > #include <sys/racct.h> > #include <sys/resourcevar.h> > +#include <sys/sysent.h> > #include <sys/sysproto.h> > #include <sys/systm.h> > =20 > @@ -75,7 +78,7 @@ sys_obreak(td, uap) > struct vmspace *vm =3D td->td_proc->p_vmspace; > vm_offset_t new, old, base; > rlim_t datalim, vmemlim; > - int rv; > + int prot, rv; > int error =3D 0; > boolean_t do_map_wirefuture; > =20 > @@ -135,8 +138,15 @@ sys_obreak(td, uap) > } > PROC_UNLOCK(td->td_proc); > #endif > + prot =3D VM_PROT_RW; > +#ifdef COMPAT_FREEBSD32 > +#if defined(__amd64__) || defined(__ia64__) > + if (SV_PROC_FLAG(td->td_proc, SV_ILP32)) > + prot |=3D VM_PROT_EXECUTE; > +#endif > +#endif > rv =3D vm_map_insert(&vm->vm_map, NULL, 0, old, new, > - VM_PROT_RW, VM_PROT_ALL, 0); > + prot, VM_PROT_ALL, 0); > if (rv !=3D KERN_SUCCESS) { > #ifdef RACCT > PROC_LOCK(td->td_proc); The two commits removed NX support for .data/.bss for 32bit binaries on amd= 64. This is too unfortunate. Can we claim that only old binaries need this hack= ? If yes, could you, please, conditionalize the hack on curproc->p_osrel being, say, 4.x ? --ywvyGaV92PjvegkV Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk6XK+gACgkQC3+MBN1Mb4iR+gCePAhKnyEsWSbiOUzsOcsm66Cy P8EAoL0A40cus5B5TkizjrgU2CBk3ewr =fFqb -----END PGP SIGNATURE----- --ywvyGaV92PjvegkV--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111013182025.GK1511>