In file included from $(INSTALL_ROOT)/System/Library/Frameworks/WebKit.framework/PrivateHeaders/EnvironmentUtilities.h:29: In file included from $(SDKROOT)/usr/local/include/wtf/text/WTFString.h:30: In file included from $(SDKROOT)/usr/local/include/wtf/text/StringImpl.h:35: $(SDKROOT)/usr/local/include/wtf/Vector.h:1526:47: error: 'auto' not allowed in lambda parameter return removeRepeatedElements(vector, [] (auto& a, auto& b) { return a == b; }); ^~~~ $(SDKROOT)/usr/local/include/wtf/Vector.h:1526:56: error: 'auto' not allowed in lambda parameter return removeRepeatedElements(vector, [] (auto& a, auto& b) { return a == b; }); ^~~~ 2 errors generated. This code was committed in Bug 170102, but was triggered by a change in Bug 170994 that exposed EnvironmentUtilities.h as a private header in WebKit.framework.
<rdar://problem/31716076>
Created attachment 307509 [details] Patch
Attachment 307509 [details] did not pass style-queue: ERROR: Source/WTF/wtf/Vector.h:1526: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 2 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 307509 [details] Patch r=me
Comment on attachment 307509 [details] Patch Clearing flags on attachment: 307509 Committed r215538: <http://trac.webkit.org/changeset/215538>
All reviewed patches have been landed. Closing bug.
Comment on attachment 307509 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=307509&action=review > Source/WTF/ChangeLog:3 > + Vector.h: error: 'auto' not allowed in lambda parameter It is allowed with c++14. The issue is that the project in question is building with c++11 support instead of c++14. I think we should fix this instead.
Comment on attachment 307509 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=307509&action=review >> Source/WTF/ChangeLog:3 >> + Vector.h: error: 'auto' not allowed in lambda parameter > > It is allowed with c++14. The issue is that the project in question is building with c++11 support instead of c++14. I think we should fix this instead. Source/WebKit/mac/Configurations/WebKitLegacy.xcconfig:OTHER_TAPI_FLAGS[sdk=iphone*] = -x objective-c++ -std=c++11 -fno-rtti; We likely want c++14 here.
Comment on attachment 307509 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=307509&action=review >>> Source/WTF/ChangeLog:3 >>> + Vector.h: error: 'auto' not allowed in lambda parameter >> >> It is allowed with c++14. The issue is that the project in question is building with c++11 support instead of c++14. I think we should fix this instead. > > Source/WebKit/mac/Configurations/WebKitLegacy.xcconfig:OTHER_TAPI_FLAGS[sdk=iphone*] = -x objective-c++ -std=c++11 -fno-rtti; > > We likely want c++14 here. I think this also broke the Windows build, so we may want to be careful.
Can we roll this out after https://trac.webkit.org/changeset/215560/webkit ?
(In reply to Chris Dumez from comment #10) > Can we roll this out after https://trac.webkit.org/changeset/215560/webkit ? It also breaks Windows, so I don't think so.
(In reply to Chris Dumez from comment #10) > Can we roll this out after https://trac.webkit.org/changeset/215560/webkit ? I think we can roll this workaround out once we update our Windows build infrastructure to Visual Studio 2017.
(In reply to Brent Fulgham from comment #12) > (In reply to Chris Dumez from comment #10) > > Can we roll this out after https://trac.webkit.org/changeset/215560/webkit ? > > I think we can roll this workaround out once we update our Windows build > infrastructure to Visual Studio 2017. I'm wrong! I just rolled this patch out locally, and was able to build WebKit without trouble on Windows. So it looks like VS2015 Update 3's C++14 support is sufficient here.
(In reply to Brent Fulgham from comment #13) > (In reply to Brent Fulgham from comment #12) > > (In reply to Chris Dumez from comment #10) > > > Can we roll this out after https://trac.webkit.org/changeset/215560/webkit ? > > > > I think we can roll this workaround out once we update our Windows build > > infrastructure to Visual Studio 2017. > > I'm wrong! > > I just rolled this patch out locally, and was able to build WebKit without > trouble on Windows. So it looks like VS2015 Update 3's C++14 support is > sufficient here. Based on Source/WebKit2/Configurations/Base.xcconfig, we can't roll out this change until we switch to c++14 (or gnu++14) for this: OTHER_TAPI_FLAGS[sdk=iphone*] = -x objective-c++ -std=c++11 -fno-rtti;
Ideally, we would not make any C++ headers WebKit SPI, and then we won't need to worry about InstallAPI here.