Bug 38747

Summary: mingw-w64 and JIT support
Product: WebKit Reporter: vanboxem.ruben
Component: PlatformAssignee: Nobody <webkit-unassigned>
Status: CLOSED FIXED    
Severity: Normal CC: abarth, aroben, benjamin, commit-queue, eric, hausmann, kenneth, laszlo.gombos, loki, ossy, vanboxem.ruben, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows 7   
Bug Depends on:    
Bug Blocks: 35784    
Attachments:
Description Flags
proposed patch none

vanboxem.ruben
Reported 2010-05-07 07:15:20 PDT
Since the recently landed patches for bug https://bugs.webkit.org/show_bug.cgi?id=35607 (which have been introduced in QtWebkit as well), I have stumbled upon a serious issue with mingw-w64 and enabled JIT. The above patches (see bug report) enable JIT for a X86_64 Windows when using mingw-w64. This was a mistake, as even MSVC x64 builds don't enable it and the JIT crashes any webkit program using the build. Without it, everything is perfectly fine. I'm sorry I didn't upload a patch, but there are only two lines to be removed (line 943-944 (trunk) of JavaScriptCore/wtf/Platform.h, those enabling JIT on the x64 Windows builds with mingw-w64). It would of course be better to fix JIT on Win64, but I am in no position (knowledge or otherwise) to do so, and I'm leaving that to more experienced people.
Attachments
proposed patch (1.28 KB, patch)
2010-05-09 13:59 PDT, Laszlo Gombos
no flags
Benjamin Poulain
Comment 1 2010-05-07 07:20:44 PDT
Thanks for adding me in CC. This is blocking for QtWebKit.
vanboxem.ruben
Comment 2 2010-05-09 02:15:11 PDT
Any chance this could still be pushed to 4.7 before release? The true fixing for Win64 JIT can come later...
Kenneth Rohde Christiansen
Comment 3 2010-05-09 09:14:54 PDT
(In reply to comment #2) > Any chance this could still be pushed to 4.7 before release? > > The true fixing for Win64 JIT can come later... It is already blocking on the release bug, so we will have to look at this before the release, yes.
Laszlo Gombos
Comment 4 2010-05-09 13:59:36 PDT
Created attachment 55509 [details] proposed patch
Laszlo Gombos
Comment 5 2010-05-09 14:01:31 PDT
Gabor, any idea what is involved actually fixing JIT for MINGW64 ?
Darin Adler
Comment 6 2010-05-09 19:25:19 PDT
Comment on attachment 55509 [details] proposed patch Seems OK, rs=me
Gabor Loki
Comment 7 2010-05-09 23:20:14 PDT
At first I do not see why it is not working. JSValue64 is enabled, JIT stubs routines are there for GCC. There's nothing missing here. I am going to ask Ossy or someone else to reproduce the error.
WebKit Commit Bot
Comment 8 2010-05-10 06:07:41 PDT
Comment on attachment 55509 [details] proposed patch Clearing flags on attachment: 55509 Committed r59074: <http://trac.webkit.org/changeset/59074>
WebKit Commit Bot
Comment 9 2010-05-10 06:07:49 PDT
All reviewed patches have been landed. Closing bug.
Gabor Loki
Comment 10 2010-05-10 06:23:19 PDT
Unfortunately, we were not able to build QtWebKit with mingw-w64. It would be nice if someone writes a "works-for-me" section for mingw-w64 at http://trac.webkit.org/wiki/BuildingQtOnWindows wiki. Apart from that, no other magic should be needed to fire JIT up with mingw-w64. In additional, the x86_64 based QtWebKit runs fine on linux, see at http://www.sed.hu/webkit/qtbuildbot/builders/x86-64%20Linux%20Qt%20Release. It is red, but the JIT runs (only 3 layout tests fail). The JIT only has the following OS dependent sections: memory allocation, make a mem. range executable, flush a mem. region on some targets, and the function call abi (nothing else). So if this problem is not related to mingw-w64 compiler, the bug should be in ExecutableAllocator or JITStubs (or maybe in privateCompileCTIMachineTrampolines), but they look nice. Well, a good back-trace is essential for efficient debugging. ;) Could someone make a detailed bug report for mingw-w64 JIT?
WebKit Review Bot
Comment 11 2010-05-10 06:37:59 PDT
http://trac.webkit.org/changeset/59074 might have broken Qt Linux ARMv5 Release
vanboxem.ruben
Comment 12 2010-05-10 06:50:39 PDT
By popular demand: https://trac.webkit.org/wiki/BuildingQtOnWindows#AWorksForMeStep-by-StepGuidetobuildingQtWebKitonWindowsusingmingw-w64w32 If it doesn't work, please say so, then I may have missed a step...
Simon Hausmann
Comment 13 2010-05-11 03:22:18 PDT
Revision r59074 cherry-picked into qtwebkit-2.0 with commit dc5821c3df2ef60456d85263160852f5335cf946
Note You need to log in before you can comment on or make changes to this bug.