On Fri, Oct 16, 2015 at 12:03 PM, Landry Breuil <lan...@openbsd.org> wrote: > On Fri, Oct 16, 2015 at 11:57:40AM +0200, Landry Breuil wrote: >> On Fri, Oct 16, 2015 at 10:43:53AM +0200, David Coppa wrote: >> > On Sat, 13 Jun 2015, Ted Unangst wrote: >> > >> > > So I was supposed to be working on making the JIT engine conform to W^X >> > > a few >> > > months ago. It took a bit longer than expected, but I had a mostly >> > > working >> > > patch. Then I disappeared from OpenBSD for a bit and took my patch with >> > > me. >> > > Last week I was just starting to feed that patch upstream to firefox, >> > > when I >> > > found out about another developer who had already done similar work. >> > > Sigh. >> > > >> > > The official firefox patch seems likely to ship in some future version, >> > > which >> > > is good news for everyone. It's quite similar to the patch I had (though >> > > more >> > > polished). To make it available sooner for OpenBSD, here's a backport to >> > > the >> > > Firefox in ports. >> > > >> > > I haven't been able to test this very much, as I'm still at BSDCan, but >> > > when I >> > > get back next week I hope to be able to devote more time to finalizing >> > > this >> > > patch. Posting now to let people know it's coming and to give a preview >> > > if >> > > you're interested. >> > >> > Hi! >> > >> > The official patch is now in. >> > >> > I don't know why it's enabled exclusively for iOS (maybe because it's >> > the only platform that has been thoroughly tested? Or because major >> > linux distros are not yet ready), probably Landry can shed some light >> > on this... >> > >> > Btw, my firefox-41.0.1 (rebuilt with the patch below) still hasn't >> > exploded during my tests: routinary browsing, GMail, Google Maps, >> > Twitter, etc... >> > >> > Comments? Opinions? >> >> Bring this upstream first :) > > And for the rationale of having it only on iOS, see > https://bugzilla.mozilla.org/show_bug.cgi?id=977805. From quickly > skimming through comments there, apparently it conflicts with asm.js. > Hence, discuss it upstream. > > Landry
So, the only downside seems to be performance related. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1215479 <<iOS requires it (because it doesn't allow allocating RWX memory), but it's not enabled elsewhere because it's a performance hit (we should remeasure how much though). This is because we have to toggle pages from executable to writable and back whenever we patch JIT code>> What about enabling it in our port and see how it will end up? We can always re-disable it at any time if people complain... Ciao! David -- "If you try a few times and give up, you'll never get there. But if you keep at it... There's a lot of problems in the world which can really be solved by applying two or three times the persistence that other people will." -- Stewart Nelson