I only did one 64-bit build with VS2015RC and I did not run into this crash. Please file another bug. It’s definitely worth looking into. My change to CSSPrimitiveValue.h in https://bugs.webkit.org/show_bug.cgi?id=146579 <https://bugs.webkit.org/show_bug.cgi?id=146579> is a hack that should not be committed, but it’s sure nice to be able to link successfully while doing experimental work.
> On Jul 14, 2015, at 5:20 PM, Vienneau, Christopher <[email protected]> wrote: > > Using the changes in the patch you provided, I made progress but I have some > observations to report: > I didn’t find the changes in ConsoleClient.cpp to be necessary, actually with > my version of webkit they didn’t build as is, I removed them. I think that > the change to CSSPrimitiveValue.h is actually the part I was missing to fix > the linking error. > > When attempting to run with my test application I’m finding that most > websites, facebook.com <http://facebook.com/> for example, are crashing in > LowLevelInterpreterWin.asm code identified by LowLevelInterpreter.asm:476: > _offlineasm_doCall__177_loadConstantOrVariable__done: > cmp rbx, rcx ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1798 > jne _offlineasm_doCall__opCallSlow > movsxd rbx, dword ptr [32 + r8 + rsi * 8] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:114 > sal ebx, 3 ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1800 > neg rbx ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1801 > add rbx, rbp ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1802 > mov qword ptr [24 + rbx], rcx ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1803 > movsxd rcx, dword ptr [24 + r8 + rsi * 8] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:114 > mov dword ptr [36 + rbp], esi ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1805 > mov dword ptr [32 + rbx], ecx ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1806 > add rbx, 16 ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:1807 > mov rsp, rbx ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:472 > call qword ptr [32 + rdx] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:476 > mov rcx, qword ptr [16 + rbp] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:461 > mov edi, dword ptr [56 + rcx] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:449 > sal rdi, 3 ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:450 > add rdi, 64 ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:451 > mov rsp, rbp ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:456 > sub rsp, rdi > mov esi, dword ptr [36 + rbp] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:45 > mov r8, qword ptr [16 + rbp] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:46 > mov r8, qword ptr [104 + r8] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:47 > movsxd rdx, dword ptr [8 + r8 + rsi * 8] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:114 > mov qword ptr [0 + rbp + rdx * 8], rax ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:49 > mov rcx, qword ptr [64 + r8 + rsi * 8] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint\LowLevelInterpreter.asm:118 > mov qword ptr [16 + rcx], rax ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:491 > add rsi, 9 ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:31 > jmp qword ptr [0 + r8 + rsi * 8] ; > ..\..\JavaScriptCore\local\JavaScriptCore\llint/LowLevelInterpreter64.asm:27 > > I tried regenerating the asm files but still have the issue. I expect that > some updates need to be done to the asm generator for vs2015. Have you found > this issue too? Or have any suggestion on how to correct the crash? > > Chris > > From: Vienneau, Christopher > Sent: Friday, July 10, 2015 4:36 PM > To: 'Brent Fulgham' > Cc: Webkit Development List > Subject: RE: [webkit-dev] Compilation issue with VS2015RC > > A brief look at your patch shows similar changes that I have done, I’ll > investigate the additional changes which seem to relate to the linker error. > I’ll keep my eye on this bug now. > > Many Thanks > > From: Brent Fulgham [mailto:[email protected] <mailto:[email protected]>] > Sent: Friday, July 10, 2015 4:30 PM > To: Vienneau, Christopher > Cc: Webkit Development List > Subject: Re: [webkit-dev] Compilation issue with VS2015RC > > Hi Chris, > > We noticed the same thing. Please see > <https://bugs.webkit.org/show_bug.cgi?id=146579 > <https://bugs.webkit.org/show_bug.cgi?id=146579>>, where we are discussing > how to move forward. > > Thanks! > > -Brent > > On Jul 10, 2015, at 4:05 PM, Vienneau, Christopher <[email protected] > <mailto:[email protected]>> wrote: > > Hello, > > Recently we’ve been attempting to move our code base to build with VS2015 RC > since this provides us with some support that we’ll be needing in the future > for our products. The changes for compilation with the new compiler haven’t > been too bad, and I have everything building with the exception of one line: > > FILE: JSCSSValueCustom.cpp > Line95: > 67 JSValue toJS(ExecState*, JSDOMGlobalObject* globalObject, > CSSValue* value) > 68 { > 69 if (!value) > 70 return jsNull(); > 71 > 72 // Scripts should only ever see cloned CSSValues, never the > internal ones. > 73 ASSERT(value->isCSSOMSafe()); > 74 > 75 // If we're here under erroneous circumstances, prefer > returning null over a potentially insecure value. > 76 if (!value->isCSSOMSafe()) > 77 return jsNull(); > 78 > 79 JSObject* wrapper = getCachedWrapper(globalObject->world(), > value); > 80 > 81 if (wrapper) > 82 return wrapper; > 83 > 84 if (value->isWebKitCSSTransformValue()) > 85 wrapper = CREATE_DOM_WRAPPER(globalObject, > WebKitCSSTransformValue, value); > 86 else if (value->isWebKitCSSFilterValue()) > 87 wrapper = CREATE_DOM_WRAPPER(globalObject, > WebKitCSSFilterValue, value); > 88 else if (value->isValueList()) > 89 wrapper = CREATE_DOM_WRAPPER(globalObject, CSSValueList, > value); > 90 else if (value->isSVGPaint()) > 91 wrapper = CREATE_DOM_WRAPPER(globalObject, SVGPaint, > value); > 92 else if (value->isSVGColor()) > 93 wrapper = CREATE_DOM_WRAPPER(globalObject, SVGColor, > value); > 94 else if (value->isPrimitiveValue()) > 95 wrapper = CREATE_DOM_WRAPPER(globalObject, > CSSPrimitiveValue, value); > 96 else > 97 wrapper = CREATE_DOM_WRAPPER(globalObject, CSSValue, > value); > 98 > 99 return wrapper; > 100 } > > It produces the linker error: > JSBindingsAllInOne.obj : error LNK2019: unresolved external symbol "public: > __thiscall WebCore::CSSPrimitiveValue::operator<class WTF::Ref<class > WebCore::CSSPrimitiveValue> > class WTF::Ref<class > WebCore::CSSPrimitiveValue>(void)const " > (??$?BV?$Ref@VCSSPrimitiveValue@WebCore@@@WTF@@@CSSPrimitiveValue@WebCore@@QBE?AV?$Ref@VCSSPrimitiveValue@WebCore@@@WTF@@XZ) > referenced in function "class WebCore::JSDOMWrapper * __cdecl > WebCore::createWrapper<class WebCore::JSCSSPrimitiveValue,class > WebCore::CSSPrimitiveValue>(class WebCore::JSDOMGlobalObject *,class > WebCore::CSSPrimitiveValue *)" > (??$createWrapper@VJSCSSPrimitiveValue@WebCore@@VCSSPrimitiveValue@2@@WebCore@@YAPAVJSDOMWrapper@0@PAVJSDOMGlobalObject@0@PAVCSSPrimitiveValue@0@@Z) > > As you can see there are many other similar code lines in the area, none of > which cause a problem. Despite my many attempts I can’t seem to satisfy the > linker by providing it the definition it needs. > · I’ve attempted manually adding the copy constructor definition (I > believe that is what it is describing): > o CSSPrimitiveValue::CSSPrimitiveValue(ClassType classType, const > CSSPrimitiveValue& cloneFrom) > o CSSPrimitiveValue::CSSPrimitiveValue(const CSSPrimitiveValue& cloneFrom) > · I’ve tried removing the usage of the “AllInOne” file, thinking that > it may be causing some issue. > · I’ve attempted to debug the code when the offending line is > commented out, hoping to see better how the other lines function. Though I’m > not sure what path would cause it to execute, I haven’t hit it in my limited > testing. > · One of my colleagues reached out the MS on the issue, but it > behaves as expect on their end (small sample code does not find a bug in the > compiler). > https://social.msdn.microsoft.com/Forums/en-US/6b9787f3-62bd-473a-8aa1-5f6cd85ed87b/breaking-change-in-visual-studio-2015-rc?forum=vcgeneral > > <https://social.msdn.microsoft.com/Forums/en-US/6b9787f3-62bd-473a-8aa1-5f6cd85ed87b/breaking-change-in-visual-studio-2015-rc?forum=vcgeneral> > > > Any suggestions would be much appreciated > > Thanks > > Chris > > > > _______________________________________________ > webkit-dev mailing list > [email protected] <mailto:[email protected]> > https://lists.webkit.org/mailman/listinfo/webkit-dev > <https://lists.webkit.org/mailman/listinfo/webkit-dev> > > _______________________________________________ > webkit-dev mailing list > [email protected] > https://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________ webkit-dev mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-dev

