Bug 123908 - LLInt (no JIT) doesn't build in JITExceptions.cpp
Summary: LLInt (no JIT) doesn't build in JITExceptions.cpp
Status: RESOLVED DUPLICATE of bug 123844
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Michael Saboff
Depends on:
Reported: 2013-11-06 11:44 PST by Ralph T
Modified: 2013-11-20 10:17 PST (History)
1 user (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Ralph T 2013-11-06 11:44:24 PST
FAILED: /usr/bin/c++ ... Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/jit/JITExceptions.cpp.o -MF "Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/jit/JITExceptions.cpp.o.d" -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/jit/JITExceptions.cpp.o -c ../../Source/JavaScriptCore/jit/JITExceptions.cpp
../../Source/JavaScriptCore/jit/JITExceptions.cpp: In function ‘void JSC::genericUnwind(JSC::VM*, JSC::ExecState*, JSC::JSValue)’:
../../Source/JavaScriptCore/jit/JITExceptions.cpp:52:28: error: ‘class JSC::VM’ has no member named ‘getCTIStub’
         catchRoutine = vm->getCTIStub(throwNotCaught).code().executableAddress();
../../Source/JavaScriptCore/jit/JITExceptions.cpp:52:39: error: ‘throwNotCaught’ was not declared in this scope
         catchRoutine = vm->getCTIStub(throwNotCaught).code().executableAddress();
ninja: build stopped: subcommand failed.

This was caused by https://bugs.webkit.org/show_bug.cgi?id=123844 committed in r158751.
Comment 1 Ralph T 2013-11-06 11:50:06 PST
FWIW this allows LLInt to build, no idea if it runs yet or if it's the direction you want to go in, though:

diff --git a/Source/JavaScriptCore/jit/JITExceptions.cpp b/Source/JavaScriptCore/jit/JITExceptions.cpp
index 510f3b1..bac5315 100644
--- a/Source/JavaScriptCore/jit/JITExceptions.cpp
+++ b/Source/JavaScriptCore/jit/JITExceptions.cpp
@@ -48,8 +48,13 @@ void genericUnwind(VM* vm, ExecState* callFrame, JSValue exceptionValue)
     if (handler) {
         catchPCForInterpreter = &callFrame->codeBlock()->instructions()[handler->target];
         catchRoutine = ExecutableBase::catchRoutineFor(handler, catchPCForInterpreter);
-    } else
+    } else {
         catchRoutine = vm->getCTIStub(throwNotCaught).code().executableAddress();
+        catchRoutine = FunctionPtr(LLInt::getCodePtr(ctiOpThrowNotCaught)).value();
+    }
     vm->callFrameForThrow = callFrame;
     vm->targetMachinePCForThrow = catchRoutine;
Comment 2 Michael Saboff 2013-11-20 10:17:59 PST
Fixed as a result of the changes in https://bugs.webkit.org/show_bug.cgi?id=123844 - "Change ctiTrampoline into a thunk" with change set r158751: <http://trac.webkit.org/changeset/158751>.

*** This bug has been marked as a duplicate of bug 123844 ***