Fix the following linker warnings when building TestWebKitAPI: ld: warning: direct access in TestWebKitAPI::WTF_HashCountedSet_UniquePtrKey_CustomDeleter_Test::TestBody() to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::WTF_HashCountedSet_UniquePtrKey_CustomDeleter_Test::TestBody() to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::WTF_HashCountedSet_UniquePtrKey_CustomDeleter_Test::TestBody() to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::WTF_HashCountedSet_UniquePtrKey_CustomDeleter_Test::TestBody() to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::takeLogStr() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in WTF::HashTable<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int> >, WTF::PtrHash<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashMap<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int, WTF::PtrHash<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashTraits<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashTraits<unsigned int> >::KeyValuePairTraits, WTF::HashTraits<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > > >::deallocateTable(WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int>*, unsigned int) to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::DerivedRefLogger::DerivedRefLogger(char const*) to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in void WTF::HashMapTranslator<WTF::HashMap<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int, WTF::PtrHash<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashTraits<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashTraits<unsigned int> >::KeyValuePairTraits, WTF::PtrHash<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > > >::translate<WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int>, std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, int>(WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int>&, std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >&&, int&&) to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in WTF::HashTable<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int> >, WTF::PtrHash<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashMap<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int, WTF::PtrHash<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashTraits<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > >, WTF::HashTraits<unsigned int> >::KeyValuePairTraits, WTF::HashTraits<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> > > >::reinsert(WTF::KeyValuePair<std::__1::unique_ptr<ConstructorDestructorCounter, DeleterCounter<ConstructorDestructorCounter> >, unsigned int>&&) to global weak symbol DeleterCounter<ConstructorDestructorCounter>::deleterCount means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::ref() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. ld: warning: direct access in TestWebKitAPI::RefLogger::deref() to global weak symbol guard variable for TestWebKitAPI::log()::log means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. 
<rdar://problem/25074141>
Created attachment 273845 [details] Patch v1
Created attachment 273846 [details] Patch v2 Removed section from ChangeLog that was to list linker warnings; there were too many and they were too long to list.
(In reply to comment #3) > Created attachment 273846 [details] > Patch v2 > > Removed section from ChangeLog that was to list linker warnings; there were > too many and they were too long to list. The GTK-WK2 and EFL-WK2 build failures were caused by adding WeakPtr.cpp to CMakeLists.txt in the patch, and then fixed by: Commit r198067: <http://trac.webkit.org/r198067>
Windows build failure is: C:\cygwin\home\buildbot\WebKit\Tools\TestWebKitAPI\PlatformUtilities.h(29): fatal error C1083: Cannot open include file: 'WebKit/WKNativeEvent.h': No such file or directory (compiling source file C:\cygwin\home\buildbot\WebKit\Tools\TestWebKitAPI\Tests\WTF\RunLoop.cpp) [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Tools\TestWebKitAPI\TestWTFLib.vcxproj] <https://webkit-queues.webkit.org/results/967752> It appears that RunLoop.cpp doesn't work on Windows because PlatformUtilities.h assumes the platform provides a WebKit2 implementation, and TestWebKitAPI::Util::run(bool*) is not implemented for Windows.
Created attachment 273853 [details] Patch v3
Comment on attachment 273853 [details] Patch v3 View in context: https://bugs.webkit.org/attachment.cgi?id=273853&action=review > Tools/TestWebKitAPI/Tests/WTF/RefLogger.cpp:28 > +#include "config.h" > + > +#include "RefLogger.h" We normally don’t include a blank line between the config.h line and the main header include. > Tools/TestWebKitAPI/Tests/WTF/RefLogger.h:30 > -inline std::ostringstream& log() > -{ > - static std::ostringstream log; > - return log; > -} > +std::ostringstream& log(); Not sure that changing this to not be inline is the best fix, but for test code where we know it’s not super-performance-critical I suppose it’s a good way to go.
Comment on attachment 273853 [details] Patch v3 Clearing flags on attachment: 273853 Committed r198085: <http://trac.webkit.org/changeset/198085>
All reviewed patches have been landed. Closing bug.
Comment on attachment 273853 [details] Patch v3 This change looks good to me. I assume darin would have r-'d if he felt strongly about the un-inline change. r+ (but please fix the extra newline in RefLogger.cpp. :-)
(In reply to comment #10) > Comment on attachment 273853 [details] > Patch v3 > > This change looks good to me. I assume darin would have r-'d if he felt > strongly about the un-inline change. r+ (but please fix the extra newline in > RefLogger.cpp. :-) Will fix. Also filed: Bug 155445: check-webkit-style: warn when blank lines appear between #include "config.h" and #include "ThisFileName.h" <https://bugs.webkit.org/show_bug.cgi?id=155445>
(In reply to comment #10) > Comment on attachment 273853 [details] > Patch v3 > > This change looks good to me. I assume darin would have r-'d if he felt > strongly about the un-inline change. r+ (but please fix the extra newline in > RefLogger.cpp. :-) Committed r198141: <http://trac.webkit.org/r198141>