Bug 229608

Summary: [CMake] ICU 61.2 is required to build WebKit since r281375
Product: WebKit Reporter: Carlos Alberto Lopez Perez <clopez>
Component: CMakeAssignee: Carlos Alberto Lopez Perez <clopez>
Status: RESOLVED FIXED    
Severity: Normal CC: annulen, bugs-noreply, cgarcia, clopez, dino, ews-watchlist, gyuyoung.kim, mcatanzaro, mmaxfield, ryuan.choi, sergio, ysuzuki
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=227832
https://bugs.webkit.org/show_bug.cgi?id=229607
https://bugs.webkit.org/show_bug.cgi?id=209694
https://bugs.webkit.org/show_bug.cgi?id=235367
Attachments:
Description Flags
Patch
none
Patch none

Carlos Alberto Lopez Perez
Reported 2021-08-27 07:03:28 PDT
Since r281375 building WebKit with ICU 60.2 causes this build failure: [364/6028] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o /usr/lib/ccache/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_COMPILATION -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -IJavaScriptCore/Headers -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IJavaScriptCore/DerivedSources -IJavaScriptCore/DerivedSources/inspector -IJavaScriptCore/DerivedSources/runtime -IJavaScriptCore/DerivedSources/yarr -I../../Source/JavaScriptCore/API/glib -IJavaScriptCoreGLib/DerivedSources/jsc -IJavaScriptCoreGLib/Headers -I../../Source/JavaScriptCore/inspector/remote/glib -IWTF/Headers -Ibmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-attributes -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -fno-strict-aliasing -fno-exceptions -fno-rtti -O3 -DNDEBUG -fPIC -ffp-contract=off -std=c++1z -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o -c JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp In file included from ../../Source/JavaScriptCore/runtime/IntlCache.cpp:27:0, from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp:7: ../../Source/JavaScriptCore/runtime/IntlCache.h:42:89: error: ‘UDateTimePGDisplayWidth’ has not been declared Vector<UChar, 32> getFieldDisplayName(const CString& locale, UDateTimePatternField, UDateTimePGDisplayWidth, UErrorCode&); ^~~~~~~~~~~~~~~~~~~~~~~ In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp:7:0: ../../Source/JavaScriptCore/runtime/IntlCache.cpp:56:102: error: ‘UDateTimePGDisplayWidth’ has not been declared Vector<UChar, 32> IntlCache::getFieldDisplayName(const CString& locale, UDateTimePatternField field, UDateTimePGDisplayWidth width, UErrorCode& status) ^~~~~~~~~~~~~~~~~~~~~~~ ../../Source/JavaScriptCore/runtime/IntlCache.cpp: In member function ‘WTF::Vector<char16_t, 32> JSC::IntlCache::getFieldDisplayName(const WTF::CString&, UDateTimePatternField, int, UErrorCode&)’: ../../Source/JavaScriptCore/runtime/IntlCache.cpp:62:42: error: ‘udatpg_getFieldDisplayName’ was not declared in this scope status = callBufferProducingFunction(udatpg_getFieldDisplayName, sharedGenerator, field, width, buffer); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../Source/JavaScriptCore/runtime/IntlCache.cpp:62:42: note: suggested alternative: ‘getFieldDisplayName’ status = callBufferProducingFunction(udatpg_getFieldDisplayName, sharedGenerator, field, width, buffer); ^~~~~~~~~~~~~~~~~~~~~~~~~~ getFieldDisplayName [365/6028] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o /usr/lib/ccache/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_COMPILATION -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -IJavaScriptCore/Headers -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IJavaScriptCore/DerivedSources -IJavaScriptCore/DerivedSources/inspector -IJavaScriptCore/DerivedSources/runtime -IJavaScriptCore/DerivedSources/yarr -I../../Source/JavaScriptCore/API/glib -IJavaScriptCoreGLib/DerivedSources/jsc -IJavaScriptCoreGLib/Headers -I../../Source/JavaScriptCore/inspector/remote/glib -IWTF/Headers -Ibmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-attributes -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -fno-strict-aliasing -fno-exceptions -fno-rtti -O3 -DNDEBUG -fPIC -ffp-contract=off -std=c++1z -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o -c ../../Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp In file included from ../../Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:30:0: ../../Source/JavaScriptCore/runtime/IntlCache.h:42:89: error: ‘UDateTimePGDisplayWidth’ has not been declared Vector<UChar, 32> getFieldDisplayName(const CString& locale, UDateTimePatternField, UDateTimePGDisplayWidth, UErrorCode&); ^~~~~~~~~~~~~~~~~~~~~~~ ninja: build stopped: subcommand failed. From https://build.webkit.org/#/builders/71/builds/214
Attachments
Patch (5.69 KB, patch)
2021-08-27 07:12 PDT, Carlos Alberto Lopez Perez
no flags
Patch (5.69 KB, patch)
2021-08-27 07:58 PDT, Carlos Alberto Lopez Perez
no flags
Carlos Alberto Lopez Perez
Comment 1 2021-08-27 07:09:44 PDT
Requiring ICU 61.2 seems OK according to https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy because Ubuntu-18.04 ships ICU 60.2 but it has passed more than a year since Ubuntu-20.04 has been out and Debian-10 ships ICU 63.
Carlos Alberto Lopez Perez
Comment 2 2021-08-27 07:12:11 PDT
Carlos Alberto Lopez Perez
Comment 3 2021-08-27 07:58:18 PDT
Yusuke Suzuki
Comment 4 2021-08-27 11:16:30 PDT
Comment on attachment 436625 [details] Patch r=me
EWS
Comment 5 2021-08-27 11:41:36 PDT
Committed r281708 (241054@main): <https://commits.webkit.org/241054@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 436625 [details].
Michael Catanzaro
Comment 6 2021-09-23 13:59:04 PDT
(In reply to Carlos Alberto Lopez Perez from comment #1) > Requiring ICU 61.2 seems OK according to > https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy because > Ubuntu-18.04 ships ICU 60.2 but it has passed more than a year since > Ubuntu-20.04 has been out and Debian-10 ships ICU 63. I was wondering when this would happen. I had been hoping to keep updating WebKitGTK in RHEL 8 for five years, but knew it likely wouldn't be possible due to the three-year upstream policy. (We have ICU 60.3.) Will continue to update to latest 2.32.x for as long as it's still supported.
Note You need to log in before you can comment on or make changes to this bug.