<?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>187744</bug_id>
          
          <creation_ts>2018-07-17 18:36:06 -0700</creation_ts>
          <short_desc>Switch CMake ports back to C++ 14</short_desc>
          <delta_ts>2018-07-19 03:18:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=187669</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jfbastien</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1442878</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-07-17 18:36:06 -0700</bug_when>
    <thetext>A few months ago, we switched CMake ports from C++ 14 to C++ 17. There have been some problems. Notably, we have not yet addressed the situation with std::optional. Misuse of std::optional that causes a runtime crash on GTK/WPE, when built with GCC 7 or 8, is still just a debug assert on Mac, bug #187669. This has been an ongoing problem for several months. I propose switching back to C++ 14 until this is resolved.

It&apos;s also worth pointing out that stuck supporting the GCC 5 libstdc++ for the foreseeable future, even though we require GCC 6 for actually compiling WebKit. This severely limits the benefit of using C++ 17 since we can&apos;t rely on any of the standard library features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442890</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-07-17 19:18:54 -0700</bug_when>
    <thetext>This turned out to be easy. It seems we are not using any C++ 17 features anywhere in the codebase. I guess it&apos;s not too surprising, since the XCode build is apparently still on C++ 14.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442891</commentid>
    <comment_count>2</comment_count>
      <attachid>345218</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-07-17 19:22:31 -0700</bug_when>
    <thetext>Created attachment 345218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442995</commentid>
    <comment_count>3</comment_count>
      <attachid>345218</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-18 07:43:57 -0700</bug_when>
    <thetext>Comment on attachment 345218
Patch

Clearing flags on attachment: 345218

Committed r233912: &lt;https://trac.webkit.org/changeset/233912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442996</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-18 07:43:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442997</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-18 07:44:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/42334051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443006</commentid>
    <comment_count>6</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-07-18 08:00:47 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; A few months ago, we switched CMake ports from C++ 14 to C++ 17. There have
&gt; been some problems. Notably, we have not yet addressed the situation with
&gt; std::optional. Misuse of std::optional that causes a runtime crash on
&gt; GTK/WPE, when built with GCC 7 or 8, is still just a debug assert on Mac,
&gt; bug #187669. This has been an ongoing problem for several months. I propose
&gt; switching back to C++ 14 until this is resolved.

What are the associated bugs for this?

&gt; It&apos;s also worth pointing out that stuck supporting the GCC 5 libstdc++ for
&gt; the foreseeable future, even though we require GCC 6 for actually compiling
&gt; WebKit. This severely limits the benefit of using C++ 17 since we can&apos;t rely
&gt; on any of the standard library features.

What is the issue precisely? You can compiler with a newer libstdc++ and use the ABI compatibility macro to support older distros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443018</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-07-18 08:56:30 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #6)
&gt; (In reply to Michael Catanzaro from comment #0)
&gt; &gt; A few months ago, we switched CMake ports from C++ 14 to C++ 17. There have
&gt; &gt; been some problems. Notably, we have not yet addressed the situation with
&gt; &gt; std::optional. Misuse of std::optional that causes a runtime crash on
&gt; &gt; GTK/WPE, when built with GCC 7 or 8, is still just a debug assert on Mac,
&gt; &gt; bug #187669. This has been an ongoing problem for several months. I propose
&gt; &gt; switching back to C++ 14 until this is resolved.
&gt; 
&gt; What are the associated bugs for this?

Currently bug #187669, but for motivation, see also: bug #186536, bug #185159, bug #187672, bug #186189, bug #186535, bug #186752, bug #186753, bug #187139, bug #187145, bug #187243, bug #187382.

I think we can switch back to C++ 17 when bug #187669 is fixed, but I don&apos;t expect that to happen soon. Also, it&apos;d be good to switch XCode at the same time.

&gt; What is the issue precisely? You can compiler with a newer libstdc++ and use
&gt; the ABI compatibility macro to support older distros.

That&apos;s what I had hoped, but sadly, the application will still be linked to the older system libstdc++, and apparently you can&apos;t static link to a newer libstdc++ and also dynamic link to the system version at the same time. At least, I&apos;ve never seen anyone successfully accomplish this. So we have to treat libstdc++ as a runtime dependency. Under our current dependencies policy, we&apos;d drop support for libstdc++ for GCC 5 one year after bumping the compiler requirement, i.e. April next year. But that will screw over Ubuntu 16.04, the first version of Ubuntu to provide security support for WebKit, which is supposed to be supported another two years after that. So we&apos;ll have to figure out what we are going to do here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345218</attachid>
            <date>2018-07-17 19:22:31 -0700</date>
            <delta_ts>2018-07-18 07:43:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187744-20180717212231.patch</filename>
            <type>text/plain</type>
            <size>3687</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2NDgwN2UzYjgyZThjY2JlYzA3MDJm
Nzg5YmY1ODdhODdhNmFjNjQuLmExYzUxNzA5MmVhZTEyMGJmNDY3ZDA1ZDNhYjJmZTU3NzdjZjQ4
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDctMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFN3aXRjaCBDTWFrZSBwb3J0cyBiYWNr
IHRvIEMrKyAxNAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg3NzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWx3YXlzIHVzZSBXVEYncyBpbnRlcm5hbCBzdGQ6Om9wdGlvbmFsIGltcGxlbWVudGF0aW9u
LCBzaW5jZSBzdGQ6Om9wdGlvbmFsIGlzIG5vdCBwYXJ0IG9mCisgICAgICAgIEMrKyAxNC4KKwor
ICAgICAgICAqIHd0Zi9PcHRpb25hbC5oOgorCiAyMDE4LTA3LTE0ICBLb2NzZW4gQ2h1bmcgIDxr
b2NzZW5fY2h1bmdAYXBwbGUuY29tPgogCiAgICAgICAgIEVuc3VyZSBXZWJLaXQgc3RhY2sgaXMg
YWQtaG9jIHNpZ25lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaCBiL1Nv
dXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggZTY0YTgwYTVkNmQ3NGJjNGIzMjMyYzZhZTZi
MWU5ZTgzZTA5NGViMC4uYTc2MzQwMWYzNzk4NTFmMTEyZTk1YjdjMDNlZjk2ZWFlMTU3YzNkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9PcHRpb25hbC5oCkBAIC00NywxMCArNDcsNiBAQAogIyBpbmNsdWRlIDx3dGYvQ29tcGlsZXIu
aD4KICMgaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCi0jaWYgIUNPTVBJTEVSKE1TVkMp
ICYmICFQTEFURk9STShDT0NPQSkgJiYgX19oYXNfaW5jbHVkZSg8b3B0aW9uYWw+KQotIyBpbmNs
dWRlIDxvcHRpb25hbD4KLSNlbHNlCi0KICMgZGVmaW5lIFRSMl9PUFRJT05BTF9SRVFVSVJFUygu
Li4pIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPF9fVkFfQVJHU19fOjp2YWx1ZSwgYm9vbD46OnR5
cGUgPSBmYWxzZQogCiAjIGlmIGRlZmluZWQgX19HTlVDX18gLy8gTk9URTogR05VQyBpcyBhbHNv
IGRlZmluZWQgZm9yIENsYW5nCkBAIC0xMDM0LDggKzEwMzAsNiBAQCBuYW1lc3BhY2Ugc3RkCiAK
ICMgdW5kZWYgVFIyX09QVElPTkFMX1JFUVVJUkVTCiAKLSNlbmRpZiAvLyBkZWZpbmVkKF9fY3Bw
X2xpYl9vcHRpb25hbCkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIC0tIFdlYktpdCBBZGRpdGlv
bnMgLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtl
IGIvU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVyRmxhZ3MuY21ha2UKaW5kZXggNTUxMmFhN2Rm
ZTA3YTAxYTRkN2Y0ZTI3ZmE2YjgxNDEyMGRmY2NhMC4uYWYwNGU4ZDhkYjljMmIwNmYwODllYzE4
NTc0ZTJlOGNhM2NkMDU5MSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVy
RmxhZ3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVyRmxhZ3MuY21ha2UK
QEAgLTEwNCwxNiArMTA0LDExIEBAIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCiAgICAg
ICAgIFdFQktJVF9BUFBFTkRfR0xPQkFMX0NPTVBJTEVSX0ZMQUdTKC1mbm8tZXhjZXB0aW9ucykK
ICAgICAgICAgV0VCS0lUX0FQUEVORF9HTE9CQUxfQ1hYX0ZMQUdTKC1mbm8tcnR0aSkKIAotICAg
ICAgICBjaGVja19jeHhfY29tcGlsZXJfZmxhZygiLXN0ZD1jKysxNyIgQ1hYX0NPTVBJTEVSX1NV
UFBPUlRTX0NYWDE3KQotICAgICAgICBpZiAoQ1hYX0NPTVBJTEVSX1NVUFBPUlRTX0NYWDE3KQot
ICAgICAgICAgICAgV0VCS0lUX0FQUEVORF9HTE9CQUxfQ1hYX0ZMQUdTKC1zdGQ9YysrMTcpCisg
ICAgICAgIGNoZWNrX2N4eF9jb21waWxlcl9mbGFnKCItc3RkPWMrKzE0IiBDWFhfQ09NUElMRVJf
U1VQUE9SVFNfQ1hYMTQpCisgICAgICAgIGlmIChDWFhfQ09NUElMRVJfU1VQUE9SVFNfQ1hYMTQp
CisgICAgICAgICAgICBXRUJLSVRfQVBQRU5EX0dMT0JBTF9DWFhfRkxBR1MoLXN0ZD1jKysxNCkK
ICAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgY2hlY2tfY3h4X2NvbXBpbGVyX2ZsYWcoIi1z
dGQ9YysrMXoiIENYWF9DT01QSUxFUl9TVVBQT1JUU19DWFgxWikKLSAgICAgICAgICAgIGlmIChD
WFhfQ09NUElMRVJfU1VQUE9SVFNfQ1hYMVopCi0gICAgICAgICAgICAgICAgV0VCS0lUX0FQUEVO
RF9HTE9CQUxfQ1hYX0ZMQUdTKC1zdGQ9YysrMXopCi0gICAgICAgICAgICBlbHNlICgpCi0gICAg
ICAgICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ29tcGlsZXIgd2l0aCBDKysxNyBzdXBw
b3J0IGlzIHJlcXVpcmVkIikKLSAgICAgICAgICAgIGVuZGlmICgpCisgICAgICAgICAgICBtZXNz
YWdlKEZBVEFMX0VSUk9SICJDb21waWxlciB3aXRoIEMrKzE0IHN1cHBvcnQgaXMgcmVxdWlyZWQi
KQogICAgICAgICBlbmRpZiAoKQogCiAgICAgICAgIGlmIChXSU4zMikKZGlmZiAtLWdpdCBhL0No
YW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiZjg4Yzc4MDA2OWM5YTc5YzZlY2JkYzVkM2NjZWEy
Njc0MDFlMTNjLi44MWQwNzU5OTE2NmRjMDNlM2Y4N2I2MGQ3MjcyMDU3YmIwOGY0OWQ0IDEwMDY0
NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgt
MDctMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIFN3aXRjaCBDTWFrZSBwb3J0cyBiYWNrIHRvIEMrKyAxNAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NzQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFhDb2RlIGJ1aWxkIGlzIHN0aWxsIG5v
dCB1c2luZyBDKysgMTcsIGl0J3MgYmVlbiBzZXZlcmFsIG1vbnRocyBzaW5jZSBDTWFrZSBwb3J0
cworICAgICAgICBzd2l0Y2hlZCwgZXZlcnl0aGluZyBidWlsZHMgZmluZSB3aXRob3V0IGNoYW5n
ZXMgaWYgd2Ugc3dpdGNoIGJhY2ssIGFuZCB0aGVyZSBoYXZlIGJlZW4gc29tZQorICAgICAgICB1
bmZpeGVkIHByb2JsZW1zLiBMZXQncyBnbyBiYWNrIHRvIEMrKyAxNCBmb3Igbm93LiBXZSBjYW4g
c3dpdGNoIGJhY2sgdG8gQysrIDE3IHdoZW5ldmVyIHdlCisgICAgICAgIGFyZSByZWFkeSB0byBz
d2l0Y2ggb3ZlciBYQ29kZSBhdCB0aGUgc2FtZSB0aW1lLCB0byBlbnN1cmUgd2UgZG9uJ3Qgd2lu
ZCB1cCB3aXRoIGRpdmVyZ2VudAorICAgICAgICBiZWhhdmlvciBmb3Igc3RkOjpvcHRpb25hbC4K
KworICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlOgorCiAy
MDE4LTA3LTAyICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0NNYWtlXSBVc2UgSk9CX1BPT0xTIHRvIGF2b2lkIG1lbW9yeS1odW5ncnkgbGlu
a2VyIHByb2Nlc3NlcyBydW5uaW5nIGF0IHRoZSBzYW1lIHRpbWUK
</data>

          </attachment>
      

    </bug>

</bugzilla>