From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adrian Perez de Castro Date: Tue, 10 Apr 2018 23:06:59 +0100 Subject: [Buildroot] [PATCH v2/next 3/4] webkitgtk: update to version 2.20.0 In-Reply-To: <20180410232240.615a6dc3@windsurf> References: <20180323185942.60252-1-aperez@igalia.com> <20180323185942.60252-4-aperez@igalia.com> <87po3t21cy.fsf@dell.be.48ers.dk> <20180410095327.59c0e9d8@windsurf> <20180410165409.GD19381@momiji> <20180410175738.40345498@windsurf> <20180410171826.GF19381@momiji> <20180410205516.0b7958bd@windsurf> <20180410201830.GH19381@momiji> <20180410232240.615a6dc3@windsurf> Message-ID: <20180410230659.GJ19381@momiji> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Hello, On Tue, 10 Apr 2018 23:22:40 +0200, Thomas Petazzoni wrote: > On Tue, 10 Apr 2018 20:18:30 +0100, Adrian Perez de Castro wrote: > > > > OK, thanks for the clarification. > > > > Also, I have found out from one of my test builds that in both 2.20.x releases > > we have an ugly regression of the JSC JIT support on 32-bit MIPS and ARM when > > using the softfp ABI. > > > > A patch for this is at https://bugs.webkit.org/show_bug.cgi?id=183786 but we > > (the WebKitGTK upstream) haven't decided yet whether it will be in the next > > 2.20.x release. Some of us think it is worth a try, so I am in the middle of > > backporting the patch (and a few other patches needed by it) on top of 2.20.1, > > to include them in Buildroot, which is a good way of trying getting to try > > them on top of 2.20.1 and decide if they will go in a release as well. > > > > If you think it would be better to first disable JIT for 32-bit ARM and MIPS > > when doing the webkitgtk package version bump, and later on re-enabling it > > with the backpoted changes, please let me know. > > Since I don't know what is the extent of the breakage, and I have a > limited understanding of WebkitGtk anyway, I'll let you decide what is > best. On certain situations, the code generated by the JavaScriptCore JIT compiler may contain calls to C++ functions which are part of the runtime. The JIT compiler has to generate those calls using the same ABI conventions as the C/C++ compiler. Any code generating calls into the runtime will either crash or behave in unpredictable ways. The patch is non-trivial, but fortunately it's just a backport of an existing fix so there are decent chances that I may have it ready and tested by next week. > By "softfp ABI", are you talking soft-float (i.e the hardware has no > FPU at all) or about -mfloat-abi=softfp on ARM, which means that the > FPU may be used, but that integer registers are used to pass floating > point arguments ? I mean using ?-mfloat-abi=softfp? (FPU may be used, integer regs used). The JavaScriptCore JIT does not run on soft-float hardware at all, and can emit NEON code, so the build recipe includes a check on BR2_ARM_CPU_HAS_NEON. There is a mode that does not use NEON, but instead it won't use Thumb2 either, just traditional ARM 32-bit instructions... but the traditional-ARM configuration has been bitrotting for quite some time. Anyway, nowadays most ARM processors with enough power to run WebKit decently all have NEON support, so probably not a big deal. > In either case, it would mean that ARM EABIhf is not broken, and > therefore JIT should be not be disabled for all ARM configurations, but > only the ones using softfp. That is correct: ARM EABIhf (including AArch64) works well. If I don't manage to have the patch working on top of 2.20.1 in the next few days I will submit patch set to update to 2.20.1 with JIT support disabled for ARM when using softfp. As for MIPS, currently the webkitgtk recipe never enables the JIT support. With patch backported it will be possible to also enable it for 32-bit MIPS (and possibly for 64-bit as well, but I don't dare to do that because I lack hardware to run tests.) Cheers, -- Adri?n ? -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 195 bytes Desc: not available URL: