Bug 125186 - [Win] Cannot build 64-bit with ENABLE_LLINT but without ENABLE_JIT
Summary: [Win] Cannot build 64-bit with ENABLE_LLINT but without ENABLE_JIT
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC All
: P2 Normal
Assignee: Mark Lam
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-03 14:31 PST by Brent Fulgham
Modified: 2013-12-03 17:16 PST (History)
0 users

See Also:


Attachments
the patch. (6.56 KB, patch)
2013-12-03 17:04 PST, Mark Lam
msaboff: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Brent Fulgham 2013-12-03 14:31:32 PST
Attempting to create a 64-bit build on Windows with ENABLE_JIT undefined results in the following build error:

7>C:\Projects\WebKit\OpenSource\WebKitBuild\Release\obj64\JavaScriptCore\DerivedSources\LLIntAssembly.h(5): error C2065: 'callToJavaScript' : undeclared identifier
7>C:\Projects\WebKit\OpenSource\WebKitBuild\Release\obj64\JavaScriptCore\DerivedSources\LLIntAssembly.h(5): error C2051: case expression not constant
7>C:\Projects\WebKit\OpenSource\WebKitBuild\Release\obj64\JavaScriptCore\DerivedSources\LLIntAssembly.h(17): error C2065: 'returnFromJavaScript' : undeclared identifier
7>C:\Projects\WebKit\OpenSource\WebKitBuild\Release\obj64\JavaScriptCore\DerivedSources\LLIntAssembly.h(17): error C2051: case expression not constant

The 64-bit build automatically activates ENABLE_LLINT, which may be the problem.

"callToJavaScript" and "returnFromJavaScript" are implemented in assembly code (see JITStubsMSVC64.asm).  However, I don't think the declarations are visible to LowLevelInterpreter.cpp when building without ENABLE_JIT.

If I add declarations for those methods, I still encounter the "case expression not constant" error, since it is attempting to use a method declaration as a label.
Comment 1 Mark Lam 2013-12-03 17:04:12 PST
Created attachment 218364 [details]
the patch.
Comment 2 Mark Lam 2013-12-03 17:05:35 PST
Comment on attachment 218364 [details]
the patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=218364&action=review

> Source/JavaScriptCore/ChangeLog:12
> +        - Win64 will build JITStubMSVC64.asm even when !WNABLE(JIT). This results

typo: WNABLE ==> ENABLE.  Will fix before landing.
Comment 3 Michael Saboff 2013-12-03 17:12:42 PST
Comment on attachment 218364 [details]
the patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=218364&action=review

> Source/JavaScriptCore/jit/JITOperationsMSVC64.cpp:35
> +// The following is a workaround that is only needed because JITStubsMSVC64.asm is built

Please add a FIXME:
Comment 4 Mark Lam 2013-12-03 17:16:20 PST
Thanks for the review.  Landed in r160062: <http://trac.webkit.org/r160062>.