Bug 207365

Summary: Multiple GCC 10 build failures in ANGLE
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: ANGLEAssignee: Michael Catanzaro <mcatanzaro>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, clopez, commit-queue, dino, ews-watchlist, graouts, kloczko.tomasz, kondapallykalyan, mcatanzaro, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   
See Also: https://bugzilla.redhat.com/show_bug.cgi?id=1800249
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Michael Catanzaro
Reported 2020-02-06 15:44:39 PST
WebKitGTK 2.27.4 FTBFS with GCC 10: In file included from ../Source/ThirdParty/ANGLE/src/common/event_tracer.h:9, from ../Source/ThirdParty/ANGLE/src/common/event_tracer.cpp:5: ../Source/ThirdParty/ANGLE/include/platform/Platform.h:239:35: error: 'size_t' has not been declared 239 | size_t programSize, | ^~~~~~ ../Source/ThirdParty/ANGLE/include/platform/Platform.h:243:33: error: 'size_t' has not been declared 243 | size_t programSize, | ^~~~~~ Problem is ANGLE's Platform.h only #includes <stdint.h> and <array>. size_t is declared in a bunch of different stdlib headers [1], but stdint.h is not one of them. stdlib.h seems like the nicest one to use here. [1] https://en.cppreference.com/w/c/types/size_t
Attachments
Patch (3.65 KB, patch)
2020-02-10 10:04 PST, Michael Catanzaro
no flags
Patch (3.65 KB, patch)
2020-02-10 10:13 PST, Michael Catanzaro
no flags
Patch (3.72 KB, patch)
2020-02-12 15:33 PST, Michael Catanzaro
no flags
Michael Catanzaro
Comment 1 2020-02-10 09:48:02 PST
In addition to the missing include, there is one more build failure: ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp In file included from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h:13, from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp:10: ../Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h:427:2: in 'constexpr' expansion of 'angle::PackedEnumMap<gl::ComponentType, unsigned int>(std::initializer_list<std::pair<gl::ComponentType, unsigned int> >{((const std::pair<gl::ComponentType, unsigned int>*)(& const std::pair<gl::ComponentType, unsigned int> [3]{std::pair<gl::ComponentType, unsigned int>{gl::ComponentType::Float, 65537}, std::pair<gl::ComponentType, unsigned int>{gl::ComponentType::Int, 1}, std::pair<gl::ComponentType, unsigned int>{gl::ComponentType::UnsignedInt, 65536}})), 3})' ../Source/ThirdParty/ANGLE/src/common/PackedEnums.h:89:72: error: modifying a const object '(unsigned int&)(&(&(const Storage&)(&((angle::PackedEnumMap<gl::ComponentType, unsigned int>*)this)->angle::PackedEnumMap<gl::ComponentType, unsigned int>::mPrivateData))->std::array<unsigned int, 4>::operator[](((std::array<unsigned int, 4>::size_type)((angle::PackedEnumMap<gl::ComponentType, unsigned int>::UnderlyingType)it->std::pair<gl::ComponentType, unsigned int>::first))))' is not allowed in a constant expression 88 | const_cast<T &>(const_cast<const Storage &>( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | mPrivateData)[static_cast<UnderlyingType>(it->first)]) = it->second; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ In file included from ../Source/ThirdParty/ANGLE/src/libANGLE/Caps.h:12, from ../Source/ThirdParty/ANGLE/src/libANGLE/Context.h:20, from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h:14, from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp:10: ../Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h:427:2: note: originally declared 'const' here 427 | }}; | ^ Which is easy to fix by removing the casts. The source code has a comment saying the casts are required until C++17, but in WebKit this file is guaranteed to be built using C++17. Not sure about upstreamability of this one.
Michael Catanzaro
Comment 2 2020-02-10 10:04:38 PST
EWS Watchlist
Comment 3 2020-02-10 10:05:39 PST
Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE
Michael Catanzaro
Comment 4 2020-02-10 10:13:53 PST
Carlos Garcia Campos
Comment 6 2020-02-11 01:15:15 PST
*** Bug 207511 has been marked as a duplicate of this bug. ***
Carlos Alberto Lopez Perez
Comment 7 2020-02-12 09:05:55 PST
its 2.26.x also affected by this? should we backport this to 2.26.x?
Michael Catanzaro
Comment 8 2020-02-12 10:12:19 PST
(In reply to Carlos Alberto Lopez Perez from comment #7) > its 2.26.x also affected by this? should we backport this to 2.26.x? It's probably affected, yes. I doubt any Linux distros will ever use GCC 10 to build 2.26.x, so a backport is probably not very important, but it might be useful for developers to check if bugs exist in 2.26 without having to manually apply the patch.
WebKit Commit Bot
Comment 9 2020-02-12 10:40:57 PST
Comment on attachment 390260 [details] Patch Rejecting attachment 390260 [details] from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-02', 'apply-attachment', '--no-update', '--non-interactive', 390260, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit Logging in as commit-queue@webkit.org... Fetching: https://bugs.webkit.org/attachment.cgi?id=390260&action=edit Fetching: https://bugs.webkit.org/show_bug.cgi?id=207365&ctype=xml&excludefield=attachmentdata Processing 1 patch from 1 bug. Processing patch 390260 from bug 207365. Fetching: https://bugs.webkit.org/attachment.cgi?id=390260 Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Carlos Alberto Lopez Perez']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Parsed 4 diffs from patch file(s). patching file Source/ThirdParty/ANGLE/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file Source/ThirdParty/ANGLE/changes.diff Hunk #1 FAILED at 138. 1 out of 1 hunk FAILED -- saving rejects to file Source/ThirdParty/ANGLE/changes.diff.rej patching file Source/ThirdParty/ANGLE/include/platform/Platform.h patching file Source/ThirdParty/ANGLE/src/common/PackedEnums.h Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Carlos Alberto Lopez Perez']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Full output: https://webkit-queues.webkit.org/results/13321487
Michael Catanzaro
Comment 10 2020-02-12 10:51:52 PST
Conflict is r256443
Michael Catanzaro
Comment 11 2020-02-12 15:33:09 PST
WebKit Commit Bot
Comment 12 2020-02-12 16:31:11 PST
The commit-queue encountered the following flaky tests while processing attachment 390571 [details]: editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 13 2020-02-12 16:31:46 PST
Comment on attachment 390571 [details] Patch Clearing flags on attachment: 390571 Committed r256491: <https://trac.webkit.org/changeset/256491>
WebKit Commit Bot
Comment 14 2020-02-12 16:31:48 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 15 2020-02-12 16:32:16 PST
Note You need to log in before you can comment on or make changes to this bug.