[Buildroot] [PATCH v2/next 3/4] webkitgtk: update to version 2.20.0

Adrian Perez de Castro aperez at igalia.com
Tue Apr 10 22:06:59 UTC 2018


Hello,

On Tue, 10 Apr 2018 23:22:40 +0200, Thomas Petazzoni <thomas.petazzoni at bootlin.com> 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).

<trivia>
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.
</trivia>

> 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: <http://lists.busybox.net/pipermail/buildroot/attachments/20180410/25e56add/attachment-0002.asc>


More information about the buildroot mailing list