WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
162056
REGRESSION(
r206000
): Build broken with GCC < 5
https://bugs.webkit.org/show_bug.cgi?id=162056
Summary
REGRESSION(r206000): Build broken with GCC < 5
Carlos Garcia Campos
Reported
2016-09-16 01:15:17 PDT
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
Comment 1
2016-09-16 03:12:23 PDT
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
Comment 2
2016-09-16 10:02:19 PDT
(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
Comment 3
2016-09-16 10:05:03 PDT
I created a wiki page for it last week:
http://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy
Brady Eidson
Comment 4
2016-09-16 11:07:36 PDT
This rollout was not okay. 206006 relied on it, for example.
Brady Eidson
Comment 5
2016-09-16 11:17:23 PDT
Looks like Anders came along a reimplemented in 206030/206031
Carlos Garcia Campos
Comment 6
2016-09-17 01:27:33 PDT
(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.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug