<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>183116</bug_id>
          
          <creation_ts>2018-02-25 20:35:21 -0800</creation_ts>
          <short_desc>[CMake][OpenVR] Linkage errors happen because only OpenVR is compiled with -stdlib=libc++ if Clang is used</short_desc>
          <delta_ts>2018-02-26 00:01:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>145121</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>svillar</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401972</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-02-25 20:35:21 -0800</bug_when>
    <thetext>trunk@228984

&gt; export CC=clang-5.0
&gt; export CXX=clang++-5.0
&gt; ./Tools/Scripts/build-webkit --gtk --release

&gt; FAILED: bin/TestWebKitAPI/WebCore/TestWebCore 
&gt; : &amp;&amp; /usr/bin/clang++-5.0  -fdiagnostics-color=always -fcolor-diagnostics -Wno-parentheses-equality -Wno-noexcept-type -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wextra -Wall  -fno-strict-aliasing -fno-exceptions -std=c++14 -fno-rtti -O3 -DNDEBUG  -L/home/fujii/work/webkit/ga/WebKitBuild/DependenciesGTK/Root/lib -fuse-ld=gold -Wl,--disable-new-dtags   -rdynamic Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/gtk/main.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/glib/UtilitiesGLib.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/TestsController.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/CSSParser.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/ComplexTextController.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/FileMonitor.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/FileSystem.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/GridPosition.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/HTMLParserIdioms.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/LayoutUnit.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/MIMETypeRegistry.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/PublicSuffix.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/SecurityOrigin.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/SharedBuffer.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/SharedBufferTest.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/URL.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/URLParser.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/UserAgentQuirks.cpp.o Tools/TestWebKitAPI/CMakeFiles/TestWebCore.dir/Tests/WebCore/SampleMap.cpp.o  -o bin/TestWebKitAPI/WebCore/TestWebCore  -Wl,-rpath,/home/fujii/work/webkit/ga/WebKitBuild/Release/lib -Wl,--whole-archive lib/libWTFGTK.a -Wl,--no-whole-archive -Wl,--whole-archive lib/libWebCoreGTK.a -Wl,--no-whole-archive -Wl,--whole-archive lib/libgtest.so -Wl,--no-whole-archive -Wl,--whole-archive lib/libWebCorePlatformGTK.a -Wl,--no-whole-archive -Wl,--whole-archive -lgdk-3 -Wl,--no-whole-archive -Wl,--whole-archive -lpangocairo-1.0 -Wl,--no-whole-archive -Wl,--whole-archive -lpango-1.0 -Wl,--no-whole-archive -Wl,--whole-archive -lgdk_pixbuf-2.0 -Wl,--no-whole-archive -Wl,--whole-archive -lcairo-gobject -Wl,--no-whole-archive -Wl,--whole-archive -lcairo -Wl,--no-whole-archive -Wl,--whole-archive -lgobject-2.0 -Wl,--no-whole-archive -Wl,--whole-archive -lglib-2.0 -Wl,--no-whole-archive -Wl,--whole-archive -lgtk-3 -Wl,--no-whole-archive -Wl,--whole-archive -lgdk-3 -Wl,--no-whole-archive -Wl,--whole-archive -lpangocairo-1.0 -Wl,--no-whole-archive -Wl,--whole-archive -lpango-1.0 -Wl,--no-whole-archive -Wl,--whole-archive -latk-1.0 -Wl,--no-whole-archive -Wl,--whole-archive -lcairo-gobject -Wl,--no-whole-archive -Wl,--whole-archive -lcairo -Wl,--no-whole-archive -Wl,--whole-archive -lgdk_pixbuf-2.0 -Wl,--no-whole-archive -Wl,--whole-archive -lgio-2.0 -Wl,--no-whole-archive -Wl,--whole-archive -lgobject-2.0 -Wl,--no-whole-archive -Wl,--whole-archive -lglib-2.0 -Wl,--no-whole-archive lib/libANGLESupport.a -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -latk-1.0 ../DependenciesGTK/Root/lib/libxml2.so /usr/lib/x86_64-linux-gnu/libxslt.so /usr/lib/x86_64-linux-gnu/libsqlite3.so lib/libPAL.a lib/libjavascriptcoregtk-4.0.so.18.7.4 lib/libWTFGTK.a lib/libbmalloc.a -ldl ../DependenciesGTK/Root/lib/libicudata.so ../DependenciesGTK/Root/lib/libicuuc.so -lpthread ../DependenciesGTK/Root/lib/libicui18n.so /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libEGL.so lib/libopenvr_api.a ../DependenciesGTK/Root/lib/libwoff2dec.so lib/libxdgmime.a ../DependenciesGTK/Root/lib/libcairo.so ../DependenciesGTK/Root/lib/libfontconfig.so ../DependenciesGTK/Root/lib/libfreetype.so ../DependenciesGTK/Root/lib/libharfbuzz.so ../DependenciesGTK/Root/lib/libharfbuzz-icu.so ../DependenciesGTK/Root/lib/libgcrypt.so ../DependenciesGTK/Root/lib/libgstapp-1.0.so ../DependenciesGTK/Root/lib/libgstbase-1.0.so ../DependenciesGTK/Root/lib/libgstreamer-1.0.so ../DependenciesGTK/Root/lib/libgstpbutils-1.0.so ../DependenciesGTK/Root/lib/libgstaudio-1.0.so ../DependenciesGTK/Root/lib/libgsttag-1.0.so ../DependenciesGTK/Root/lib/libgstvideo-1.0.so ../DependenciesGTK/Root/lib/libgstgl-1.0.so ../DependenciesGTK/Root/lib/libgstfft-1.0.so /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libwebp.so /usr/lib/x86_64-linux-gnu/libwebpdemux.so ../DependenciesGTK/Root/lib/libatk-1.0.so ../DependenciesGTK/Root/lib/libcairo.so ../DependenciesGTK/Root/lib/libfontconfig.so ../DependenciesGTK/Root/lib/libfreetype.so ../DependenciesGTK/Root/lib/libharfbuzz.so ../DependenciesGTK/Root/lib/libharfbuzz-icu.so ../DependenciesGTK/Root/lib/libgcrypt.so ../DependenciesGTK/Root/lib/libgstapp-1.0.so ../DependenciesGTK/Root/lib/libgstbase-1.0.so ../DependenciesGTK/Root/lib/libgstreamer-1.0.so ../DependenciesGTK/Root/lib/libgstpbutils-1.0.so ../DependenciesGTK/Root/lib/libgstaudio-1.0.so ../DependenciesGTK/Root/lib/libgsttag-1.0.so ../DependenciesGTK/Root/lib/libgstvideo-1.0.so ../DependenciesGTK/Root/lib/libgstgl-1.0.so ../DependenciesGTK/Root/lib/libgstfft-1.0.so /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libwebp.so /usr/lib/x86_64-linux-gnu/libwebpdemux.so ../DependenciesGTK/Root/lib/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libenchant.so ../DependenciesGTK/Root/lib/libgio-2.0.so ../DependenciesGTK/Root/lib/libgmodule-2.0.so ../DependenciesGTK/Root/lib/libgobject-2.0.so ../DependenciesGTK/Root/lib/libglib-2.0.so -lsecret-1 ../DependenciesGTK/Root/lib/libsoup-2.4.so /usr/lib/x86_64-linux-gnu/libtasn1.so /usr/lib/x86_64-linux-gnu/libhyphen.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libXcomposite.so /usr/lib/x86_64-linux-gnu/libXdamage.so /usr/lib/x86_64-linux-gnu/libXrender.so /usr/lib/x86_64-linux-gnu/libXt.so /usr/lib/x86_64-linux-gnu/libz.so -lwayland-server -lwayland-egl -lwayland-client -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 &amp;&amp; :
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function VR_InitInternal2: error: undefined reference to &apos;std::__1::recursive_mutex::lock()&apos;
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function VR_InitInternal2: error: undefined reference to &apos;std::__1::recursive_mutex::unlock()&apos;
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function VR_InitInternal2: error: undefined reference to &apos;std::__1::recursive_mutex::unlock()&apos;
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function vr::VR_LoadHmdSystemInternal(): error: undefined reference to &apos;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;::__init(char const*, unsigned long)&apos;
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function vr::VR_LoadHmdSystemInternal(): error: undefined reference to &apos;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;::__init(char const*, unsigned long)&apos;
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function vr::VR_LoadHmdSystemInternal(): error: undefined reference to &apos;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;::~basic_string()&apos;
&gt; lib/libopenvr_api.a(lib/../Source/ThirdParty/openvr/src/CMakeFiles/openvr_api.dir/openvr_api_public.cpp.o):../../Source/ThirdParty/openvr/src/openvr_api_public.cpp:function vr::VR_LoadHmdSystemInternal(): error: undefined reference to &apos;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;::~basic_string()&apos;

Full build log: https://gist.github.com/fujii/fcf073f8648fac237d4fe38a3ee408f1

-stdlib=libc++ is given only when Clang is used.
https://trac.webkit.org/browser/webkit/trunk/Source/ThirdParty/openvr/CMakeLists.txt?rev=227518#L46</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401973</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-02-25 20:46:15 -0800</bug_when>
    <thetext>This is configurable by the option USE_LIBCXX.

https://trac.webkit.org/browser/webkit/trunk/Source/ThirdParty/openvr/CMakeLists.txt?rev=227518#L7

&gt; option(USE_LIBCXX &quot;Uses libc++ instead of libstdc++&quot; ON)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401974</commentid>
    <comment_count>2</comment_count>
      <attachid>334590</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-02-25 21:14:31 -0800</bug_when>
    <thetext>Created attachment 334590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401980</commentid>
    <comment_count>3</comment_count>
      <attachid>334590</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-02-25 23:37:12 -0800</bug_when>
    <thetext>Comment on attachment 334590
Patch

LGTM. I guess the whole &quot;Enable some properties&quot; section could be removed in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401983</commentid>
    <comment_count>4</comment_count>
      <attachid>334590</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-26 00:01:17 -0800</bug_when>
    <thetext>Comment on attachment 334590
Patch

Clearing flags on attachment: 334590

Committed r228985: &lt;https://trac.webkit.org/changeset/228985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401984</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-26 00:01:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334590</attachid>
            <date>2018-02-25 21:14:31 -0800</date>
            <delta_ts>2018-02-26 00:01:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183116-20180225211417.patch</filename>
            <type>text/plain</type>
            <size>1290</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKaW5kZXggMTQwYmYwYmQ0NDI0NDIyMDg2MDkx
NDkzOTQwYzBmZWQ3ZGQ1ZGRhNC4uNzMxZTI0NmZkZGJhZDEzNzRiMWYxM2FmYmZmZjcxZGM3MzVi
NTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTgsNiArMTgsOSBAQCBpZiAoRU5BQkxFX0FQSV9URVNUUykKIGVuZGlm
ICgpCiAKIGlmIChVU0VfT1BFTlZSKQorICAgICMgT3BlblZSIGlzIGNvbXBpbGVkIHdpdGggLXN0
ZGxpYj1saWJjKysgYXMgZGVmYXVsdCBpZiBDbGFuZyBpcyB1c2VkLgorICAgICMgRGlzYWJsZSBV
U0VfTElCQ1hYIG5vdCB0byB1c2UgLXN0ZGxpYj1saWJjKysuCisgICAgb3B0aW9uKFVTRV9MSUJD
WFggIlVzZXMgbGliYysrIGluc3RlYWQgb2YgbGlic3RkYysrIiBPRkYpCiAgICAgYWRkX3N1YmRp
cmVjdG9yeShUaGlyZFBhcnR5L29wZW52cikKIGVuZGlmICgpCiAKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzODZlNWNiNWI4NTk5NGFhYTRkZmI2NDZiMWJjZDZkZjcy
ZDcyZDAzLi5hYWNmNjBhMDAyNDgxMTg5ODY2ZjQ2YWQ0YjJiNWJlMzFhZmVkZTNlIDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDIt
MjUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAg
W0NNYWtlXVtPcGVuVlJdIExpbmthZ2UgZXJyb3JzIGhhcHBlbiBiZWNhdXNlIG9ubHkgT3BlblZS
IGlzIGNvbXBpbGVkIHdpdGggLXN0ZGxpYj1saWJjKysgaWYgQ2xhbmcgaXMgdXNlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTE2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3BlblZSIGhhcyBhIG9w
dGlvbiBVU0VfTElCQ1hYIHRvIGVuYWJsZS9kaXNhYmxlIHRoYXQgYmVoYXZpb3IuIExldCdzIGRp
c2FibGUgaXQuCisKKyAgICAgICAgKiBTb3VyY2UvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGEgb3B0
aW9uIGNvbW1hbmQgZm9yIFVTRV9MSUJDWFggdG8gc2V0IE9GRiBhcyBkZWZhdWx0LgorCiAyMDE4
LTAyLTIxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAg
W0NNYWtlXSBFeHBvc2UgSEFWRSBtYWNyb3MgZ2xvYmFsbHkK
</data>

          </attachment>
      

    </bug>

</bugzilla>