Some incremental build failure have been observed on WinCairo BuildBots and EWS. For example, https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/9024 I can reproduce the same incremental build failure with the following steps. 1) Git checkout trunk@225616 (bcbc974a3982284d32449531810406d4a1ccdd8e) 2) Clean Ninja build WinCairo Release 3) Git checkout trunk@225617 (54cbaddd85dba9d8e5cf32e82731524444df142e) Then, same incremental build faiure happens.
There is Assertions.cpp in the error message. > Assertions.cpp.obj : error LNK2001: unresolved external symbol "private: void __cdecl WTF::LockBase::lockSlow(void)" (?lockSlow@LockBase@WTF@@AEAAXXZ) This means that Assertions.cpp was not recompiled by https://trac.webkit.org/changeset/225617/ This is the excerpt result of ninja -t deps > Source/WTF/wtf/CMakeFiles/WTF.dir/Assertions.cpp.obj: #deps 117, deps mtime 534326939 (VALID) > ../../Source/WTF/config.h > ../../WebKitLibraries/win/include/Availability.h > ../../WebKitLibraries/win/include/AvailabilityInternal.h (...) > DerivedSources/ForwardingHeaders/wtf/HashFunctions.h > DerivedSources/ForwardingHeaders/wtf/HashTraits.h > DerivedSources/ForwardingHeaders/wtf/KeyValuePair.h > DerivedSources/ForwardingHeaders/wtf/Lock.h (...) Assertions.cpp depends on DerivedSources/ForwardingHeaders/wtf/Lock.h. WTF shouldn't include its forwarding header.
WTF forwarding headers are generated by using WTF_PRE_BUILD_COMMAND in Source/WTF/wtf/PlatformWin.cmake. But, BYPRODUCTS of add_custom_target is not specified. <https://cmake.org/cmake/help/v3.10/command/add_custom_target.html> So, Ninja doesn't know the build rule of DerivedSources/ForwardingHeaders/wtf/Lock.h.
This is one of problems caused by copied forwarding header (Bug 179814). There seems two options of solution. 1. WTF shouldn't include its forwarding headers. 2. Generate WTF forwarding headers before building WTF.
(In reply to Fujii Hironori from comment #3) > 1. WTF shouldn't include its forwarding headers. 1-a. Reorder include paths to push back forwarding headers directory. 1-b. Use #include "Lock.h" in WTF. (I guess it's tough because WTF forwarding headers should be flattened.) > 2. Generate WTF forwarding headers before building WTF. Bug 180063 Comment 16 sounds a nice approach.
Created attachment 328685 [details] Patch
There is another solution. Windows ports unnecessarily have DerivedSources/ForwardingHeaders as a include path. This patch just removes it.
Comment on attachment 328685 [details] Patch > C:\cygwin\home\buildbot\WebKit\Tools\ImageDiff\cg\PlatformImageCG.cpp(40): fatal error C1083: Cannot open include file: 'wtf/MathExtras.h': No such file or directory Oops. AppleWin EWS fails.
Created attachment 328773 [details] Patch
Comment on attachment 328773 [details] Patch Attachment 328773 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/5538408 New failing tests: fast/text/vertical-rl-rtl-linebreak.html
Created attachment 328787 [details] Archive of layout-test-results from ews104 for mac-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-elcapitan-wk2 Platform: Mac OS X 10.11.6
I filed Bug 180570 for fast/text/vertical-rl-rtl-linebreak.html crash.
Comment on attachment 328773 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=328773&action=review > Tools/ImageDiff/cg/PlatformImageCG.cpp:-40 > -#include <wtf/MathExtras.h> This is probably not important in this particular patch, but please try to submit indepenedent changes as separate patches. It simplifies work for maintainers of non-trunk branches
Thank you for the review. I'm goint to do it in Bug 180578.
Created attachment 328808 [details] Patch
Comment on attachment 328808 [details] Patch Clearing flags on attachment: 328808 Committed r225677: <https://trac.webkit.org/changeset/225677>
All reviewed patches have been landed. Closing bug.
<rdar://problem/35935013>
Still happens. I'll fix it in Bug 180921.