WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
196845
WebKit should build successfully even with -DENABLE_UNIFIED_BUILDS=OFF
https://bugs.webkit.org/show_bug.cgi?id=196845
Summary
WebKit should build successfully even with -DENABLE_UNIFIED_BUILDS=OFF
Ross Kirsling
Reported
2019-04-11 18:20:46 PDT
WebKit should build successfully even with -DENABLE_UNIFIED_BUILDS=OFF
Attachments
Patch (with linking errors for Tools on WinCairo)
(33.54 KB, patch)
2019-04-11 18:22 PDT
,
Ross Kirsling
no flags
Details
Formatted Diff
Diff
Patch (fails to link Tools on WinCairo)
(32.96 KB, patch)
2019-04-11 18:30 PDT
,
Ross Kirsling
no flags
Details
Formatted Diff
Diff
Patch for landing
(33.43 KB, patch)
2019-04-12 10:37 PDT
,
Ross Kirsling
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Ross Kirsling
Comment 1
2019-04-11 18:22:23 PDT
Comment hidden (obsolete)
Created
attachment 367273
[details]
Patch (with linking errors for Tools on WinCairo)
Ross Kirsling
Comment 2
2019-04-11 18:27:40 PDT
Confirmed that this patch builds successfully on GTK. Yay! Using lld as a linker, this patch almost builds successfully on WinCairo, but some strange linking errors occur at the very end:
> lld-link.exe: error: undefined symbol: __imp_?toJS@WebCore@@YA?AVJSValue@JSC@@PEAVExecState@
3@PEAVJSDOMGlobalObject@1@AEAVTextTrackCueGeneric@1@@Z
> >>> referenced by C:\GitHub\neko\WebKitBuild\Release\DerivedSources\WebCore\JSInternals.cpp:6803 > >>> WebCoreTestSupport.lib(JSInternals.cpp.obj):(?jsInternalsPrototypeFunctionCreateGenericCue@WebCore@@YA_JPEAVExecState@JSC@@@Z) > > > lld-link.exe: error: undefined symbol: ?notifyNetworkStateChange@ServiceWorkerThreadProxy@WebCore@@QEAAX_N@Z > >>> referenced by C:\GitHub\neko\WebKitBuild\Release\WTF\Headers\wtf\Function.h:102 > >>> WebCoreTestSupport.lib(ServiceWorkerInternals.cpp.obj):(?call@?$CallableWrapper@V<lambda_0>@?0??setOnline@ServiceWorkerInternals@WebCore@@QEAAX_N@Z@@?$Function@$$A6AXXZ@WTF@@UEAAXXZ) > > > lld-link.exe: error: undefined symbol: __imp_?parseHEVCCodecParameters@WebCore@@YA?AV?$Optional@UHEVCParameterSet@WebCore@@@WTF@@AEBVString@
3@@Z
> >>> referenced by C:\GitHub\neko\Source\WebCore\testing\Internals.cpp:4962 > >>> WebCoreTestSupport.lib(Internals.cpp.obj):(?parseHEVCCodecParameters@Internals@WebCore@@QEAA?AV?$Optional@UHEVCParameterSet@WebCore@@@WTF@@AEBVString@
4@@Z
) > > > lld-link.exe: error: undefined symbol: __imp_?doDispatchMessageOnFrontendPage@InspectorClient@WebCore@@SAXPEAVPage@
2@AEBVString@WTF@@@Z
> >>> referenced by C:\GitHub\neko\Source\WebCore\testing\Internals.cpp:372 > >>> WebCoreTestSupport.lib(Internals.cpp.obj):(?sendMessageToFrontend@InspectorStubFrontend@WebCore@@EEAAXAEBVString@WTF@@@Z)
I spent the entire afternoon trying to understand how these are possible but I remain confounded.
Ross Kirsling
Comment 3
2019-04-11 18:30:47 PDT
Created
attachment 367274
[details]
Patch (fails to link Tools on WinCairo)
Ryosuke Niwa
Comment 4
2019-04-11 18:55:01 PDT
Comment on
attachment 367274
[details]
Patch (fails to link Tools on WinCairo) View in context:
https://bugs.webkit.org/attachment.cgi?id=367274&action=review
> Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:325 > -inline void CanvasRenderingContext2DBase::FontProxy::initialize(FontSelector& fontSelector, const RenderStyle& newStyle) > +void CanvasRenderingContext2DBase::FontProxy::initialize(FontSelector& fontSelector, const RenderStyle& newStyle)
Why are you removing inline keywords here? That seems unrelated.
> Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h:29 > +#include <wtf/Forward.h>
Why do we need Forward.h?
Ross Kirsling
Comment 5
2019-04-11 19:07:28 PDT
(In reply to Ryosuke Niwa from
comment #4
)
> Comment on
attachment 367274
[details]
> Patch (fails to link Tools on WinCairo) > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=367274&action=review
> > > Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:325 > > -inline void CanvasRenderingContext2DBase::FontProxy::initialize(FontSelector& fontSelector, const RenderStyle& newStyle) > > +void CanvasRenderingContext2DBase::FontProxy::initialize(FontSelector& fontSelector, const RenderStyle& newStyle) > > Why are you removing inline keywords here? That seems unrelated.
All of them are demanded by linking errors like this: lib/libWebCoreGTK.a(lib/../Source/WebCore/CMakeFiles/WebCore.dir/html/canvas/CanvasRenderingContext2D.cpp.o):CanvasRenderingContext2D.cpp:function WebCore::CanvasRenderingContext2D::font() const: error: undefined reference to 'WebCore::CanvasRenderingContext2DBase::FontProxy::fontDescription() const' Seems that an inline specifier in an .cpp file interferes with the creation of a symbol.
> > Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h:29 > > +#include <wtf/Forward.h> > > Why do we need Forward.h?
We need forward declarations for String and CompletionHandler -- I thought this was the preferred style?
Ryosuke Niwa
Comment 6
2019-04-11 19:12:07 PDT
(In reply to Ross Kirsling from
comment #5
)
> (In reply to Ryosuke Niwa from
comment #4
) > > Comment on
attachment 367274
[details]
> > Patch (fails to link Tools on WinCairo) > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=367274&action=review
> > > > > Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:325 > > > -inline void CanvasRenderingContext2DBase::FontProxy::initialize(FontSelector& fontSelector, const RenderStyle& newStyle) > > > +void CanvasRenderingContext2DBase::FontProxy::initialize(FontSelector& fontSelector, const RenderStyle& newStyle) > > > > Why are you removing inline keywords here? That seems unrelated. > > All of them are demanded by linking errors like this: > > lib/libWebCoreGTK.a(lib/../Source/WebCore/CMakeFiles/WebCore.dir/html/canvas/ > CanvasRenderingContext2D.cpp.o):CanvasRenderingContext2D.cpp:function > WebCore::CanvasRenderingContext2D::font() const: error: undefined reference > to 'WebCore::CanvasRenderingContext2DBase::FontProxy::fontDescription() > const' > > Seems that an inline specifier in an .cpp file interferes with the creation > of a symbol.
I see.
> > > Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h:29 > > > +#include <wtf/Forward.h> > > > > Why do we need Forward.h? > > We need forward declarations for String and CompletionHandler -- I thought > this was the preferred style?
Okay. I just wanted the clarification as to why it's needed. I think a comment explaining why in the change log helps.
Ross Kirsling
Comment 7
2019-04-11 19:17:43 PDT
Absolutely, I'll make the ChangeLog more informative before landing. Thanks!
Ross Kirsling
Comment 8
2019-04-12 10:25:24 PDT
Opened
bug 196866
to track the issue mentioned in
comment 2
.
Ross Kirsling
Comment 9
2019-04-12 10:37:52 PDT
Created
attachment 367331
[details]
Patch for landing
WebKit Commit Bot
Comment 10
2019-04-12 11:18:31 PDT
Comment on
attachment 367331
[details]
Patch for landing Clearing flags on attachment: 367331 Committed
r244225
: <
https://trac.webkit.org/changeset/244225
>
WebKit Commit Bot
Comment 11
2019-04-12 11:18:33 PDT
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 12
2019-04-12 11:19:21 PDT
<
rdar://problem/49857545
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug