WebKit Bugzilla
Attachment 340303 Details for
Bug 185198
: [GTK] REGRESSION(r231170) Build broken with Clang 5.0
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-185198-20180514113618.patch (text/plain), 12.13 KB, created by
Zan Dobersek
on 2018-05-14 02:36:19 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
Zan Dobersek
Created:
2018-05-14 02:36:19 PDT
Size:
12.13 KB
patch
obsolete
>Subversion Revision: 231744 >diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog >index 1f0fbb428e1f1fe7e80eb43284a53c851a314f1a..49f5e3fef43c16b8be992e4aad91dfeb409907b0 100644 >--- a/Source/WTF/ChangeLog >+++ b/Source/WTF/ChangeLog >@@ -1,3 +1,18 @@ >+2018-05-14 Zan Dobersek <zdobersek@igalia.com> >+ >+ [GTK] REGRESSION(r231170) Build broken with Clang 5.0 >+ https://bugs.webkit.org/show_bug.cgi?id=185198 >+ >+ Reviewed by Michael Catanzaro. >+ >+ * wtf/Compiler.h: >+ * wtf/Forward.h: Delete the std::optional forward declaration that is >+ potentially incompatible with definition provided by the standard library. >+ * wtf/Hasher.h: >+ * wtf/StdLibExtras.h: In addition to the remaining C++14 configurations, >+ also use custom std::in_place_t implementation when compiling with >+ libstdc++ 6.x, which doesn't provide its own. >+ > 2018-05-13 Filip Pizlo <fpizlo@apple.com> > > Disable pointer poisoning >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index cf540aec2a73503bea3bb0d3d9ba349723b88337..5900c9ebb3f4ade6f86c32738e937d1cf995bc0e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,23 @@ >+2018-05-14 Zan Dobersek <zdobersek@igalia.com> >+ >+ [GTK] REGRESSION(r231170) Build broken with Clang 5.0 >+ https://bugs.webkit.org/show_bug.cgi?id=185198 >+ >+ Reviewed by Michael Catanzaro. >+ >+ Avoid gperf files using the register keyword which has been made >+ reserved and as such unusable in C++17. >+ >+ * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: >+ * css/makeSelectorPseudoElementsMap.py: >+ * css/makeprop.pl: >+ * css/makevalues.pl: >+ * platform/ColorData.gperf: >+ * platform/ReferrerPolicy.h: With std::optional forward declaration >+ gone, explicitly include the WTF Optional.h header. >+ * platform/Theme.h: Ditto. >+ * platform/network/create-http-header-name-table: >+ > 2018-05-13 Dirk Schulze <krit@webkit.org> > > Implement SVGGeometryElement's isPointInFill and isPointInStroke >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 06d62a4046247736fe55e92cc5797c552fa67a39..03d53386e60b8d972ae9e1b74261c3cad231140d 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,13 @@ >+2018-05-14 Zan Dobersek <zdobersek@igalia.com> >+ >+ [GTK] REGRESSION(r231170) Build broken with Clang 5.0 >+ https://bugs.webkit.org/show_bug.cgi?id=185198 >+ >+ Reviewed by Michael Catanzaro. >+ >+ * Shared/RTCNetwork.h: With std::optional forward declaration gone, >+ explicitly include the WTF Optional.h header. >+ > 2018-05-13 Dean Jackson <dino@apple.com> > > WebKit2_Sim-7606.1.17.4 introduced dep cycle >diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h >index 1391eadf8ed1cfa280dfcdf5a3612097d73abe33..31c2936911ffb96fbb003d4a27b6996ccf804682 100644 >--- a/Source/WTF/wtf/Compiler.h >+++ b/Source/WTF/wtf/Compiler.h >@@ -74,6 +74,8 @@ > #define WTF_CPP_STD_VER 11 > #elif __cplusplus <= 201402L > #define WTF_CPP_STD_VER 14 >+#elif __cplusplus <= 201703L >+#define WTF_CPP_STD_VER 17 > #endif > #endif > >diff --git a/Source/WTF/wtf/Forward.h b/Source/WTF/wtf/Forward.h >index 81938fce41d6138f3de362a5f89c5dbfbd2d701f..dde7ec030b76f020f82dcbb5e884a4634fabd9a9 100644 >--- a/Source/WTF/wtf/Forward.h >+++ b/Source/WTF/wtf/Forward.h >@@ -22,10 +22,6 @@ > > #include <stddef.h> > >-namespace std { >-template<typename T> class optional; >-} >- > namespace WTF { > > class AtomicString; >diff --git a/Source/WTF/wtf/Hasher.h b/Source/WTF/wtf/Hasher.h >index 1439391cd52020a8ce98b28311e342dd8e3098cc..e3496e6d33bec652bfd0822247c0e3de9896c54e 100644 >--- a/Source/WTF/wtf/Hasher.h >+++ b/Source/WTF/wtf/Hasher.h >@@ -21,6 +21,7 @@ > #pragma once > > #include <wtf/Forward.h> >+#include <wtf/Optional.h> > #include <wtf/StdLibExtras.h> > #include <wtf/text/StringHasher.h> > >diff --git a/Source/WTF/wtf/StdLibExtras.h b/Source/WTF/wtf/StdLibExtras.h >index 765f43281df0915721d8f4aa4f95adb7b12fe52f..638389290b6b2fafc5742a1b8a0f3289226a2722 100644 >--- a/Source/WTF/wtf/StdLibExtras.h >+++ b/Source/WTF/wtf/StdLibExtras.h >@@ -543,7 +543,9 @@ template<class B0, class B1, class B2, class... Bn> struct wtf_conjunction_impl< > template<class... _Args> struct conjunction : wtf_conjunction_impl<_Args...> { }; > #endif > >-#if __cplusplus < 201703L >+// Provide in_place_t when not building with -std=c++17, or when building with libstdc++ 6 >+// (which doesn't define the _GLIBCXX_RELEASE macro that's been introduced in libstdc++ 7). >+#if __cplusplus < 201703L || (defined(__GLIBCXX__) && !defined(_GLIBCXX_RELEASE)) > > // These are inline variable for C++17 and later. > #define __IN_PLACE_INLINE_VARIABLE static const >diff --git a/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py b/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py >index 0c300876da75ec93cc519245d3156c8518122f53..b34e617b146d329fb1bc32a0bb70c7cbba49991a 100644 >--- a/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py >+++ b/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py >@@ -97,10 +97,12 @@ output_file.write(""" > #if defined(__clang__) > #pragma clang diagnostic push > #pragma clang diagnostic ignored "-Wunknown-pragmas" >-#pragma clang diagnostic ignored "-Wdeprecated-register" > #pragma clang diagnostic ignored "-Wimplicit-fallthrough" > #endif > >+// Older versions of gperf like to use the `register` keyword. >+#define register >+ > namespace WebCore { > > struct SelectorPseudoClassOrCompatibilityPseudoElementEntry { >diff --git a/Source/WebCore/css/makeSelectorPseudoElementsMap.py b/Source/WebCore/css/makeSelectorPseudoElementsMap.py >index 2c9276c981e109d8956367f7f4bb891d2e8fe91b..201826ed513894d4ff7f3af0513ad7238692af88 100644 >--- a/Source/WebCore/css/makeSelectorPseudoElementsMap.py >+++ b/Source/WebCore/css/makeSelectorPseudoElementsMap.py >@@ -95,10 +95,12 @@ output_file.write(""" > #if defined(__clang__) > #pragma clang diagnostic push > #pragma clang diagnostic ignored "-Wunknown-pragmas" >-#pragma clang diagnostic ignored "-Wdeprecated-register" > #pragma clang diagnostic ignored "-Wimplicit-fallthrough" > #endif > >+// Older versions of gperf like to use the `register` keyword. >+#define register >+ > namespace WebCore { > > struct SelectorPseudoTypeEntry { >diff --git a/Source/WebCore/css/makeprop.pl b/Source/WebCore/css/makeprop.pl >index 3af6952e8b081219528010d9ec57dd9dfc31a404..8b3d1df8d05fdafeef5d2e07b6185ed58e220a42 100755 >--- a/Source/WebCore/css/makeprop.pl >+++ b/Source/WebCore/css/makeprop.pl >@@ -252,10 +252,12 @@ print GPERF << "EOF"; > #if defined(__clang__) > #pragma clang diagnostic push > #pragma clang diagnostic ignored \"-Wunknown-pragmas\" >-#pragma clang diagnostic ignored \"-Wdeprecated-register\" > #pragma clang diagnostic ignored \"-Wimplicit-fallthrough\" > #endif > >+// Older versions of gperf like to use the `register` keyword. >+#define register >+ > namespace WebCore { > > // Using std::numeric_limits<uint16_t>::max() here would be cleaner, >diff --git a/Source/WebCore/css/makevalues.pl b/Source/WebCore/css/makevalues.pl >index 55c4e75097a7fa54a4ab6a126e39ba43398ba55f..9b090eac4f44180ff1334446fabab47d5043e35c 100755 >--- a/Source/WebCore/css/makevalues.pl >+++ b/Source/WebCore/css/makevalues.pl >@@ -76,10 +76,12 @@ print GPERF << "EOF"; > #if defined(__clang__) > #pragma clang diagnostic push > #pragma clang diagnostic ignored \"-Wunknown-pragmas\" >-#pragma clang diagnostic ignored \"-Wdeprecated-register\" > #pragma clang diagnostic ignored \"-Wimplicit-fallthrough\" > #endif > >+// Older versions of gperf like to use the `register` keyword. >+#define register >+ > namespace WebCore { > %} > %struct-type >diff --git a/Source/WebCore/platform/ColorData.gperf b/Source/WebCore/platform/ColorData.gperf >index 39123419a385990c6da022f31ae2a45a6c3e0bdb..0ac28d3ba9c2f271ee197657151b582867fec43d 100644 >--- a/Source/WebCore/platform/ColorData.gperf >+++ b/Source/WebCore/platform/ColorData.gperf >@@ -5,10 +5,12 @@ > #if defined(__clang__) > #pragma clang diagnostic push > #pragma clang diagnostic ignored "-Wunknown-pragmas" >-#pragma clang diagnostic ignored "-Wdeprecated-register" > #pragma clang diagnostic ignored "-Wimplicit-fallthrough" > #endif > >+// Older versions of gperf like to use the `register` keyword. >+#define register >+ > namespace WebCore { > %} > %struct-type >diff --git a/Source/WebCore/platform/ReferrerPolicy.h b/Source/WebCore/platform/ReferrerPolicy.h >index bbec77ffe0f8def9f1a13777aa5a3145f0f047c0..4b4c03b992af7131ccb4d9c2ab4cde9bc834696c 100644 >--- a/Source/WebCore/platform/ReferrerPolicy.h >+++ b/Source/WebCore/platform/ReferrerPolicy.h >@@ -34,6 +34,7 @@ > > #include <wtf/EnumTraits.h> > #include <wtf/Forward.h> >+#include <wtf/Optional.h> > > namespace WebCore { > >diff --git a/Source/WebCore/platform/Theme.h b/Source/WebCore/platform/Theme.h >index 1513dd0f86a887ea36cd404fb81d739ed1ba20b5..03fb8e53b0f6d7a97ae5cd34aa908924b668648f 100644 >--- a/Source/WebCore/platform/Theme.h >+++ b/Source/WebCore/platform/Theme.h >@@ -27,6 +27,7 @@ > > #include "ThemeTypes.h" > #include <wtf/Forward.h> >+#include <wtf/Optional.h> > > namespace WebCore { > >diff --git a/Source/WebCore/platform/network/create-http-header-name-table b/Source/WebCore/platform/network/create-http-header-name-table >index 1d4ebcaebd733cd86444325f1e8710ae9dbaea43..ea2b74336483b050638713fd5173a6b09b8d6070 100755 >--- a/Source/WebCore/platform/network/create-http-header-name-table >+++ b/Source/WebCore/platform/network/create-http-header-name-table >@@ -93,10 +93,12 @@ gperf_file.write(''' > #if defined(__clang__) > #pragma clang diagnostic push > #pragma clang diagnostic ignored "-Wunknown-pragmas" >-#pragma clang diagnostic ignored "-Wdeprecated-register" > #pragma clang diagnostic ignored "-Wimplicit-fallthrough" > #endif > >+// Older versions of gperf like to use the `register` keyword. >+#define register >+ > namespace WebCore { > > static const struct HeaderNameString { >diff --git a/Source/WebKit/Shared/RTCNetwork.h b/Source/WebKit/Shared/RTCNetwork.h >index b9f2f5a20f29fa232fefe35ae72323ba794795b0..eca1dfd8163bfb66ebb022ecb670aed390f40339 100644 >--- a/Source/WebKit/Shared/RTCNetwork.h >+++ b/Source/WebKit/Shared/RTCNetwork.h >@@ -29,7 +29,7 @@ > > #include <WebCore/LibWebRTCMacros.h> > #include <webrtc/rtc_base/network.h> >-#include <wtf/Forward.h> >+#include <wtf/Optional.h> > > namespace IPC { > class Decoder; >diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake >index 79cae5ff001bf76ba16f091e6daf29cc7dd8f82d..12b7bc8ef45789141005468f480a7b6a8dd6fa1e 100644 >--- a/Source/cmake/WebKitCompilerFlags.cmake >+++ b/Source/cmake/WebKitCompilerFlags.cmake >@@ -102,8 +102,19 @@ if (COMPILER_IS_GCC_OR_CLANG) > -Wno-unknown-argument) > else () > WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-fno-exceptions) >- WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-std=c++17 >- -fno-rtti) >+ WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-fno-rtti) >+ >+ check_cxx_compiler_flag("-std=c++17" CXX_COMPILER_SUPPORTS_CXX17) >+ if (CXX_COMPILER_SUPPORTS_CXX17) >+ WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-std=c++17) >+ else () >+ check_cxx_compiler_flag("-std=c++1z" CXX_COMPILER_SUPPORTS_CXX1Z) >+ if (CXX_COMPILER_SUPPORTS_CXX1Z) >+ WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-std=c++1z) >+ else () >+ message(FATAL_ERROR "Compiler with C++17 support is required") >+ endif () >+ endif () > > if (WIN32) > WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-mno-ms-bitfields) >diff --git a/ChangeLog b/ChangeLog >index 7c71b33c6f62f14f8d7252477f3694f9a8018815..3067fc2bebd438c031cdd261573dfb7df084d688 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,14 @@ >+2018-05-14 Zan Dobersek <zdobersek@igalia.com> >+ >+ [GTK] REGRESSION(r231170) Build broken with Clang 5.0 >+ https://bugs.webkit.org/show_bug.cgi?id=185198 >+ >+ Reviewed by Michael Catanzaro. >+ >+ * Source/cmake/WebKitCompilerFlags.cmake: Fall back to the -std=c++1z >+ compiler flag if -std=c++17 is not supported. If that flag is not >+ supported either, bail with an error message. >+ > 2018-05-09 Jan Alexander Steffens <jan.steffens@gmail.com> > > [GTK] gtk-doc installation subdir duplicated
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185198
:
339322
|
339812
|
339822
|
339842
|
339946
|
339996
| 340303