Bug 162056
Summary: | REGRESSION(r206000): Build broken with GCC < 5 | ||
---|---|---|---|
Product: | WebKit | Reporter: | Carlos Garcia Campos <cgarcia> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | andersca, beidson, bugs-noreply, gyuyoung.kim, mcatanzaro, ossy |
Priority: | P2 | Keywords: | Gtk |
Version: | WebKit Local Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
See Also: | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60511 |
Carlos Garcia Campos
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<T, WTF::EnumValues<E, e, es ...> >::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<T, WTF::EnumValues<E, e, es ...> >::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<std::is_enum<_Tp>::value, bool> WTF::isValidEnum(T) [with E = WebCore::HasInsecureContent; T = long unsigned int; std::enable_if_t<std::is_enum<_Tp>::value, bool> = bool]’
../../Source/WebKit2/Platform/IPC/Decoder.h:93:34: required from ‘std::enable_if_t<std::is_enum<_Tp>::value, bool> IPC::Decoder::decode(E&) [with E = WebCore::HasInsecureContent; std::enable_if_t<std::is_enum<_Tp>::value, bool> = bool]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:135:13: required from ‘static bool IPC::TupleCoder<index, Elements>::decode(IPC::Decoder&, std::tuple<_Elements ...>&) [with long unsigned int index = 1ul; Elements = {WebCore::HasInsecureContent&}]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:161:83: required from ‘static bool IPC::ArgumentCoder<std::tuple<_Elements ...> >::decode(IPC::Decoder&, std::tuple<_Elements ...>&) [with Elements = {WebCore::HasInsecureContent&}]’
../../Source/WebKit2/Platform/IPC/Decoder.h:126:49: required from ‘std::enable_if_t<(! std::is_enum<_Tp>::value), bool> IPC::Decoder::decode(T&) [with T = std::tuple<WebCore::HasInsecureContent&>; std::enable_if_t<(! std::is_enum<_Tp>::value), bool> = bool]’
../../Source/WebKit2/Platform/IPC/Connection.h:389:38: required from ‘bool IPC::Connection::sendSync(T&&, typename T::Reply&&, uint64_t, std::chrono::milliseconds, WTF::OptionSet<IPC::SendSyncOption>) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple<WebCore::HasInsecureContent&>; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration<long int, std::ratio<1l, 1000l> >]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:65:125: required from ‘bool IPC::MessageSender::sendSync(T&&, typename T::Reply&&, uint64_t, std::chrono::milliseconds, WTF::OptionSet<IPC::SendSyncOption>) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple<WebCore::HasInsecureContent&>; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration<long int, std::ratio<1l, 1000l> >]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:57:121: required from ‘bool IPC::MessageSender::sendSync(T&&, typename T::Reply&&, std::chrono::milliseconds, WTF::OptionSet<IPC::SendSyncOption>) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple<WebCore::HasInsecureContent&>; std::chrono::milliseconds = std::chrono::duration<long int, std::ratio<1l, 1000l> >]’
../../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<T, WTF::EnumValues<E, e, es ...> >::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<T, WTF::EnumValues<E, e, es ...> >::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<std::is_enum<_Tp>::value, bool> WTF::isValidEnum(T) [with E = WebCore::HasInsecureContent; T = long unsigned int; std::enable_if_t<std::is_enum<_Tp>::value, bool> = bool]’
../../Source/WebKit2/Platform/IPC/Decoder.h:93:34: required from ‘std::enable_if_t<std::is_enum<_Tp>::value, bool> IPC::Decoder::decode(E&) [with E = WebCore::HasInsecureContent; std::enable_if_t<std::is_enum<_Tp>::value, bool> = bool]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:135:13: required from ‘static bool IPC::TupleCoder<index, Elements>::decode(IPC::Decoder&, std::tuple<_Elements ...>&) [with long unsigned int index = 1ul; Elements = {WebCore::HasInsecureContent&}]’
../../Source/WebKit2/Platform/IPC/ArgumentCoders.h:161:83: required from ‘static bool IPC::ArgumentCoder<std::tuple<_Elements ...> >::decode(IPC::Decoder&, std::tuple<_Elements ...>&) [with Elements = {WebCore::HasInsecureContent&}]’
../../Source/WebKit2/Platform/IPC/Decoder.h:126:49: required from ‘std::enable_if_t<(! std::is_enum<_Tp>::value), bool> IPC::Decoder::decode(T&) [with T = std::tuple<WebCore::HasInsecureContent&>; std::enable_if_t<(! std::is_enum<_Tp>::value), bool> = bool]’
../../Source/WebKit2/Platform/IPC/Connection.h:389:38: required from ‘bool IPC::Connection::sendSync(T&&, typename T::Reply&&, uint64_t, std::chrono::milliseconds, WTF::OptionSet<IPC::SendSyncOption>) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple<WebCore::HasInsecureContent&>; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration<long int, std::ratio<1l, 1000l> >]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:65:125: required from ‘bool IPC::MessageSender::sendSync(T&&, typename T::Reply&&, uint64_t, std::chrono::milliseconds, WTF::OptionSet<IPC::SendSyncOption>) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple<WebCore::HasInsecureContent&>; uint64_t = long unsigned int; std::chrono::milliseconds = std::chrono::duration<long int, std::ratio<1l, 1000l> >]’
../../Source/WebKit2/Platform/IPC/MessageSender.h:57:121: required from ‘bool IPC::MessageSender::sendSync(T&&, typename T::Reply&&, std::chrono::milliseconds, WTF::OptionSet<IPC::SendSyncOption>) [with T = Messages::WebPageProxy::HasInsecureContent; typename T::Reply = std::tuple<WebCore::HasInsecureContent&>; std::chrono::milliseconds = std::chrono::duration<long int, std::ratio<1l, 1000l> >]’
../../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<T, WTF::EnumValues<E, e, es ...> >::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
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Carlos Garcia Campos
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
Michael Catanzaro
(In reply to comment #0)
> Changes introduced in r206000 are not supported by GCC 4.9. We need to find
> 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'll have to roll it out.
Michael Catanzaro
I created a wiki page for it last week: http://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy
Brady Eidson
This rollout was not okay.
206006 relied on it, for example.
Brady Eidson
Looks like Anders came along a reimplemented in 206030/206031
Carlos Garcia Campos
(In reply to comment #2)
> (In reply to comment #0)
> > Changes introduced in r206000 are not supported by GCC 4.9. We need to find
> > 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'll have to roll it out.
Our deps policy is for runtime dependencies, not build time ones.