<?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>162056</bug_id>
          
          <creation_ts>2016-09-16 01:15:17 -0700</creation_ts>
          <short_desc>REGRESSION(r206000): Build broken with GCC &lt; 5</short_desc>
          <delta_ts>2016-09-17 01:27:33 -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>WebKitGTK</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60511</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1230348</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-09-16 01:15:17 -0700</bug_when>
    <thetext>Changes introduced in r206000 are not supported by GCC 4.9. We need to find a workaround or simply bump GCC requirements to 5.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60511

In file included from ../../Source/WebKit2/Platform/IPC/Decoder.h:31:0,
                 from ../../Source/WebKit2/NetworkProcess/Downloads/DownloadID.h:30,
                 from ../../Source/WebKit2/NetworkProcess/NetworkSession.h:34,
                 from ../../Source/WebKit2/Shared/Authentication/AuthenticationManager.h:31,
                 from ../../Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:29:
../../Source/WTF/wtf/EnumTraits.h: In instantiation of ‘static constexpr bool WTF::EnumValueChecker&lt;T, WTF::EnumValues&lt;E, e, es ...&gt; &gt;::isValidEnum(T) [with T = long unsigned int; E = WebCore::HasInsecureContent; E e = (WebCore::HasInsecureContent)0; E ...es = {}]’:
../../Source/WTF/wtf/EnumTraits.h:45:72:   required from ‘static constexpr bool WTF::EnumValueChecker&lt;T, WTF::EnumValues&lt;E, e, es ...&gt; &gt;::isValidEnum(T) [with T = long unsigned int; E = WebCore::HasInsecureContent; E e = (WebCore::HasInsecureContent)1; E ...es = {(WebCore::HasInsecureContent)0}]’
../../Source/WTF/wtf/EnumTraits.h:62:78:   required from ‘constexpr std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; WTF::isValidEnum(T) [with E = WebCore::HasInsecureContent; T = long unsigned int; std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; = bool]’
../../Source/WebKit2/Platform/IPC/Decoder.h:93:34:   required from ‘std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; IPC::Decoder::decode(E&amp;) [with E = WebCore::HasInsecureContent; std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; = bool]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:135:13:   required from ‘static bool IPC::TupleCoder&lt;index, Elements&gt;::decode(IPC::Decoder&amp;, std::tuple&lt;_Elements ...&gt;&amp;) [with long unsigned int index = 1ul; Elements = {WebCore::HasInsecureContent&amp;}]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:161:83:   required from ‘static bool IPC::ArgumentCoder&lt;std::tuple&lt;_Elements ...&gt; &gt;::decode(IPC::Decoder&amp;, std::tuple&lt;_Elements ...&gt;&amp;) [with Elements = {WebCore::HasInsecureContent&amp;}]’
../../Source/WebKit2/Platform/IPC/Decoder.h:126:49:   required from ‘std::enable_if_t&lt;(! std::is_enum&lt;_Tp&gt;::value), bool&gt; IPC::Decoder::decode(T&amp;) [with T = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; std::enable_if_t&lt;(! std::is_enum&lt;_Tp&gt;::value), bool&gt; = bool]’
../../Source/WebKit2/Platform/IPC/Connection.h:389:38:   required from ‘bool IPC::Connection::sendSync(T&amp;&amp;, typename T::Reply&amp;&amp;, uint64_t, std::chrono::milliseconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration&lt;long int, std::ratio&lt;1l, 1000l&gt; &gt;]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:65:125:   required from ‘bool IPC::MessageSender::sendSync(T&amp;&amp;, typename T::Reply&amp;&amp;, uint64_t, std::chrono::milliseconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration&lt;long int, std::ratio&lt;1l, 1000l&gt; &gt;]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:57:121:   required from ‘bool IPC::MessageSender::sendSync(T&amp;&amp;, typename T::Reply&amp;&amp;, std::chrono::milliseconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; std::chrono::milliseconds = std::chrono::duration&lt;long int, std::ratio&lt;1l, 1000l&gt; &gt;]’
../../Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1291:142:   required from here
../../Source/WTF/wtf/EnumTraits.h:46:5: error: body of constexpr function ‘static constexpr bool WTF::EnumValueChecker&lt;T, WTF::EnumValues&lt;E, e, es ...&gt; &gt;::isValidEnum(T) [with T = long unsigned int; E = WebCore::HasInsecureContent; E e = (WebCore::HasInsecureContent)0; E ...es = {}]’ not a return-statement
     }
     ^
../../Source/WTF/wtf/EnumTraits.h: In instantiation of ‘static constexpr bool WTF::EnumValueChecker&lt;T, WTF::EnumValues&lt;E, e, es ...&gt; &gt;::isValidEnum(T) [with T = long unsigned int; E = WebCore::HasInsecureContent; E e = (WebCore::HasInsecureContent)1; E ...es = {(WebCore::HasInsecureContent)0}]’:
../../Source/WTF/wtf/EnumTraits.h:62:78:   required from ‘constexpr std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; WTF::isValidEnum(T) [with E = WebCore::HasInsecureContent; T = long unsigned int; std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; = bool]’
../../Source/WebKit2/Platform/IPC/Decoder.h:93:34:   required from ‘std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; IPC::Decoder::decode(E&amp;) [with E = WebCore::HasInsecureContent; std::enable_if_t&lt;std::is_enum&lt;_Tp&gt;::value, bool&gt; = bool]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:135:13:   required from ‘static bool IPC::TupleCoder&lt;index, Elements&gt;::decode(IPC::Decoder&amp;, std::tuple&lt;_Elements ...&gt;&amp;) [with long unsigned int index = 1ul; Elements = {WebCore::HasInsecureContent&amp;}]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:161:83:   required from ‘static bool IPC::ArgumentCoder&lt;std::tuple&lt;_Elements ...&gt; &gt;::decode(IPC::Decoder&amp;, std::tuple&lt;_Elements ...&gt;&amp;) [with Elements = {WebCore::HasInsecureContent&amp;}]’
../../Source/WebKit2/Platform/IPC/Decoder.h:126:49:   required from ‘std::enable_if_t&lt;(! std::is_enum&lt;_Tp&gt;::value), bool&gt; IPC::Decoder::decode(T&amp;) [with T = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; std::enable_if_t&lt;(! std::is_enum&lt;_Tp&gt;::value), bool&gt; = bool]’
../../Source/WebKit2/Platform/IPC/Connection.h:389:38:   required from ‘bool IPC::Connection::sendSync(T&amp;&amp;, typename T::Reply&amp;&amp;, uint64_t, std::chrono::milliseconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration&lt;long int, std::ratio&lt;1l, 1000l&gt; &gt;]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:65:125:   required from ‘bool IPC::MessageSender::sendSync(T&amp;&amp;, typename T::Reply&amp;&amp;, uint64_t, std::chrono::milliseconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration&lt;long int, std::ratio&lt;1l, 1000l&gt; &gt;]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:57:121:   required from ‘bool IPC::MessageSender::sendSync(T&amp;&amp;, typename T::Reply&amp;&amp;, std::chrono::milliseconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple&lt;WebCore::HasInsecureContent&amp;&gt;; std::chrono::milliseconds = std::chrono::duration&lt;long int, std::ratio&lt;1l, 1000l&gt; &gt;]’
../../Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1291:142:   required from here
../../Source/WTF/wtf/EnumTraits.h:46:5: error: body of constexpr function ‘static constexpr bool WTF::EnumValueChecker&lt;T, WTF::EnumValues&lt;E, e, es ...&gt; &gt;::isValidEnum(T) [with T = long unsigned int; E = WebCore::HasInsecureContent; E e = (WebCore::HasInsecureContent)1; E ...es = {(WebCore::HasInsecureContent)0}]’ not a return-statement
[5473/6080] Building CXX object Source/WebKit2/CMakeFiles/WebKit2.dir/WebProcess/WebPage/WebPage.cpp.o</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230367</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-09-16 03:12:23 -0700</bug_when>
    <thetext>Renaming since this is not specific to GTK+, all ports require GCC 4.9, so we are all affected. EFL bots are building fine, so I guess they are using GCC 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230431</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-16 10:02:19 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Changes introduced in r206000 are not supported by GCC 4.9. We need to find
&gt; a workaround or simply bump GCC requirements to 5.

Fortunately we just agreed on a new dependency policy, under which we have to support GCC 4.9 for Ubuntu 14.04 until April 2017, and for Debian Jessie until roughly spring/summer 2018. So no, we&apos;ll have to roll it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230432</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-16 10:05:03 -0700</bug_when>
    <thetext>I created a wiki page for it last week: http://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230485</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-09-16 11:07:36 -0700</bug_when>
    <thetext>This rollout was not okay. 

206006 relied on it, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230495</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-09-16 11:17:23 -0700</bug_when>
    <thetext>Looks like Anders came along a reimplemented in 206030/206031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230779</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-09-17 01:27:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #0)
&gt; &gt; Changes introduced in r206000 are not supported by GCC 4.9. We need to find
&gt; &gt; a workaround or simply bump GCC requirements to 5.
&gt; 
&gt; Fortunately we just agreed on a new dependency policy, under which we have
&gt; to support GCC 4.9 for Ubuntu 14.04 until April 2017, and for Debian Jessie
&gt; until roughly spring/summer 2018. So no, we&apos;ll have to roll it out.

Our deps policy is for runtime dependencies, not build time ones.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>