Bug 252758

Summary: REGRESSION(257865@main): "B3Validate.cpp:455:43: error: ‘toB3Type’ was not declared in this scope" with ENABLE(WEBASSEMBLY_B3JIT) disabled
Product: WebKit Reporter: Jeremy Bicha <jbicha>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: berto, bugs-noreply, justin_michaud, mcatanzaro, webkit-bug-importer, xypron.glpk
Priority: P3 Keywords: Gtk, InRadar
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   

Description Jeremy Bicha 2023-02-22 09:28:27 PST
- webkitgtk 2.39.90
- Debian Unstable/Experimental and Ubuntu 23.04

webkitgtk fails to build on riscv64. riscv64 is a release architecture for Ubuntu so this is blocking the update from reaching Ubuntu 23.04 users.

The build logs suggest that 2.39.3 built fine on riscv64, but this error has occured since 2.39.5.

I chose JavaScriptCore as the component for this bug report.

Build logs
----------
Click Build-Attempted or Maybe-Failed at
https://buildd.debian.org/status/package.php?p=webkit2gtk&suite=experimental
https://buildd.debian.org/status/logs.php?pkg=webkit2gtk&arch=riscv64


Build log excerpt
-----------------
[1612/6826] /usr/bin/ccache /usr/bin/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKitGTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/Headers -I/<<PKGBUILDDIR>>/build-soup2 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/assembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/air -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bindings -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/builtins -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecode -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecompiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/dfg -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/ARM64 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/zydis/Zydis -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/domjit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/ftl -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/heap -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/debugger -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/agents -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/augmentable -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/interpreter -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/jit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/llint -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/parser -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/profiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/runtime -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/tools -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/js -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/yarr -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/inspector -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/runtime -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/yarr -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API/glib -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources/jsc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/Headers -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote/glib -I/<<PKGBUILDDIR>>/build-soup2/WTF/Headers -I/<<PKGBUILDDIR>>/build-soup2/bmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/riscv64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -g1 -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -DG_DISABLE_CAST_CHECKS -fno-strict-aliasing -fno-exceptions -fno-rtti -fPIC -fvisibility=hidden -ffp-contract=off -std=c++20 -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o -c /<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp
FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKitGTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/Headers -I/<<PKGBUILDDIR>>/build-soup2 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/assembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/air -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bindings -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/builtins -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecode -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecompiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/dfg -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/ARM64 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/zydis/Zydis -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/domjit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/ftl -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/heap -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/debugger -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/agents -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/augmentable -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/interpreter -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/jit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/llint -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/parser -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/profiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/runtime -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/tools -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/js -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/yarr -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/inspector -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/runtime -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/yarr -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API/glib -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources/jsc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/Headers -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote/glib -I/<<PKGBUILDDIR>>/build-soup2/WTF/Headers -I/<<PKGBUILDDIR>>/build-soup2/bmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/riscv64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -g1 -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -DG_DISABLE_CAST_CHECKS -fno-strict-aliasing -fno-exceptions -fno-rtti -fPIC -fvisibility=hidden -ffp-contract=off -std=c++20 -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp.o -c /<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp
In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp:5:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp: In member function ‘void JSC::B3::{anonymous}::Validater::run()’:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp:455:43: error: ‘toB3Type’ was not declared in this scope
  455 |                 VALIDATE(value->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
      |                                           ^~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’
   63 |         if (condition)                                                  \
      |             ^~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp:463:53: error: ‘toB3Type’ was not declared in this scope
  463 |                 VALIDATE(value->child(1)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
      |                                                     ^~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’
   63 |         if (condition)                                                  \
      |             ^~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp:485:53: error: ‘toB3Type’ was not declared in this scope
  485 |                 VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
      |                                                     ^~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’
   63 |         if (condition)                                                  \
      |             ^~~~~~~~~
[1613/6826] /usr/bin/ccache /usr/bin/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKitGTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/Headers -I/<<PKGBUILDDIR>>/build-soup2 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/assembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/air -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bindings -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/builtins -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecode -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecompiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/dfg -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/ARM64 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/zydis/Zydis -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/domjit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/ftl -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/heap -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/debugger -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/agents -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/augmentable -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/interpreter -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/jit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/llint -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/parser -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/profiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/runtime -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/tools -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/js -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/yarr -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/inspector -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/runtime -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/yarr -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API/glib -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources/jsc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/Headers -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote/glib -I/<<PKGBUILDDIR>>/build-soup2/WTF/Headers -I/<<PKGBUILDDIR>>/build-soup2/bmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/riscv64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -g1 -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -DG_DISABLE_CAST_CHECKS -fno-strict-aliasing -fno-exceptions -fno-rtti -fPIC -fvisibility=hidden -ffp-contract=off -std=c++20 -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-7.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-7.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-7.cpp.o -c /<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-7.cpp
[1614/6826] /usr/bin/ccache /usr/bin/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKitGTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/Headers -I/<<PKGBUILDDIR>>/build-soup2 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/assembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/air -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bindings -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/builtins -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecode -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecompiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/dfg -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/ARM64 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/zydis/Zydis -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/domjit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/ftl -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/heap -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/debugger -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/agents -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/augmentable -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/interpreter -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/jit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/llint -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/parser -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/profiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/runtime -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/tools -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/js -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/yarr -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/inspector -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/runtime -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/yarr -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API/glib -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources/jsc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/Headers -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote/glib -I/<<PKGBUILDDIR>>/build-soup2/WTF/Headers -I/<<PKGBUILDDIR>>/build-soup2/bmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/riscv64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -g1 -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -DG_DISABLE_CAST_CHECKS -fno-strict-aliasing -fno-exceptions -fno-rtti -fPIC -fvisibility=hidden -ffp-contract=off -std=c++20 -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-8.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-8.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-8.cpp.o -c /<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-8.cpp
[1615/6826] /usr/bin/ccache /usr/bin/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKitGTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/Headers -I/<<PKGBUILDDIR>>/build-soup2 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/assembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/b3/air -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bindings -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/builtins -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecode -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/bytecompiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/dfg -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/ARM64 -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/disassembler/zydis/Zydis -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/domjit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/ftl -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/heap -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/debugger -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/agents -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/augmentable -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/interpreter -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/jit -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/llint -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/parser -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/profiler -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/runtime -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/tools -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/js -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/yarr -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/inspector -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/runtime -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/yarr -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/API/glib -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/DerivedSources/jsc -I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCoreGLib/Headers -I/<<PKGBUILDDIR>>/Source/JavaScriptCore/inspector/remote/glib -I/<<PKGBUILDDIR>>/build-soup2/WTF/Headers -I/<<PKGBUILDDIR>>/build-soup2/bmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/riscv64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -g1 -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -DG_DISABLE_CAST_CHECKS -fno-strict-aliasing -fno-exceptions -fno-rtti -fPIC -fvisibility=hidden -ffp-contract=off -std=c++20 -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-6.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-6.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-6.cpp.o -c /<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-6.cpp
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd build-soup2 && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1
Comment 1 Michael Catanzaro 2023-02-28 08:59:57 PST Comment hidden (obsolete)
Comment 2 Michael Catanzaro 2023-02-28 09:03:44 PST
Sorry, just kidding. Ignore that and try this instead:

diff --git a/Source/JavaScriptCore/b3/B3Validate.cpp b/Source/JavaScriptCore/b3/B3Validate.cpp
index 5e8caa8c79f8..f7161389e291 100644
--- a/Source/JavaScriptCore/b3/B3Validate.cpp
+++ b/Source/JavaScriptCore/b3/B3Validate.cpp
@@ -43,6 +43,7 @@
 #include "B3Variable.h"
 #include "B3VariableValue.h"
 #include "B3WasmBoundsCheckValue.h"
+#include "WasmTypeDefinition.h"
 #include <wtf/HashSet.h>
 #include <wtf/StringPrintStream.h>
 #include <wtf/text/CString.h>
Comment 3 Jeremy Bicha 2023-02-28 14:13:00 PST
My colleague said that with that change, he now gets this error:

[1450/6825] cd
/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources &&
/usr/bin/cmake -E env CMAKE_CXX_COMPILER_ID=GNU
GCC_OFFLINEASM_SOURCE_MAP=OFF /us
r/bin/ruby /<<PKGBUILDDIR>>/Source/JavaScriptCore/offlineasm/asm.rb
-I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/
/<<PKGBUILDDIR>>/Source/Java
ScriptCore/llint/LowLevelInterpreter.asm
/<<PKGBUILDDIR>>/build-soup2/bin/LLIntOffsetsExtractor
/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/LLI
ntAssembly.h normal --binary-format=ELF && /usr/bin/cmake -E
touch_nocreate
/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/LLIntAssembly.h

FAILED: JavaScriptCore/DerivedSources/LLIntAssembly.h
/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/LLIntAssembly.h

cd /<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources &&
/usr/bin/cmake -E env CMAKE_CXX_COMPILER_ID=GNU
GCC_OFFLINEASM_SOURCE_MAP=OFF /usr/bin/ruby /
<<PKGBUILDDIR>>/Source/JavaScriptCore/offlineasm/asm.rb
-I/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/
/<<PKGBUILDDIR>>/Source/JavaScriptCore/l
lint/LowLevelInterpreter.asm
/<<PKGBUILDDIR>>/build-soup2/bin/LLIntOffsetsExtractor
/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/LLIntAssembly.h
  normal --binary-format=ELF && /usr/bin/cmake -E touch_nocreate
/<<PKGBUILDDIR>>/build-soup2/JavaScriptCore/DerivedSources/LLIntAssembly.h

/<<PKGBUILDDIR>>/Source/JavaScriptCore/offlineasm/ast.rb:958:in
`lowerDefault': Unhandled opcode storev at WebAssembly.asm:512 (due to
WebAssembly.asm:512) (L
oweringError)
Comment 4 Michael Catanzaro 2023-02-28 16:05:28 PST
(In reply to Jeremy Bicha from comment #3)
> /<<PKGBUILDDIR>>/Source/JavaScriptCore/offlineasm/ast.rb:958:in
> `lowerDefault': Unhandled opcode storev at WebAssembly.asm:512 (due to
> WebAssembly.asm:512) (L
> oweringError)

I suggest reporting a second bug for this. Don't know how to help with that.
Comment 5 Heinrich Schuchardt 2023-03-01 02:21:40 PST
With

+#include "WasmTypeDefinition.h"

we get the original error

‘toB3Type’ was not declared in this scope

toB3Type is defined in Source/JavaScriptCore/wasm/WasmTypeDefinition.h only if WEBASSEMBLY_B3JIT is enabled.

Hence I looked at Source/WTF/wtf/PlatformEnable.h which controls if ENABLE_WEBASSEMBLY_B3JIT is enabled. But the following leads to a new error (Unhandled opcode storev at WebAssembly.asm:512):

--- a/Source/WTF/wtf/PlatformEnable.h
+++ b/Source/WTF/wtf/PlatformEnable.h
@@ -713,7 +713,7 @@
 #define ENABLE_B3_JIT 1
 #endif
·
-#if ENABLE(WEBASSEMBLY) && ENABLE(JIT) && CPU(ARM)
+#if ENABLE(WEBASSEMBLY) && ENABLE(JIT) && (CPU(ARM) || CPU(RISCV64))
 #undef ENABLE_B3_JIT

Is WEBASSEMBLY already supported for riscv64? Or should we disable it via a CMake command line argument?
Comment 6 Heinrich Schuchardt 2023-03-01 02:51:31 PST
Commit ef7690477ad8 ("[JSC] RISCV64 support for WebAssembly https://bugs.webkit.org/show_bug.cgi?id=238007")

enabled ENABLE_WEBASSEMBLY and disabled ENABLE_WEBASSEMBLY_B3JIT.

There is an inconsistency between

Source/JavaScriptCore/b3/B3Validate.cpp

which uses #if ENABLE(B3_JIT) and the included

Source/JavaScriptCore/wasm/WasmTypeDefinition.h

which depends on #if ENABLE(WEBASSEMBLY_B3JIT).

If B3_JIT cannot be used for webassembly on RISC-V, why is 
Source/JavaScriptCore/b3/B3Validate.cpp compiled?
Comment 7 Michael Catanzaro 2023-03-01 06:41:26 PST
(In reply to Heinrich Schuchardt from comment #6)
> There is an inconsistency between
> 
> Source/JavaScriptCore/b3/B3Validate.cpp
> 
> which uses #if ENABLE(B3_JIT) and the included
> 
> Source/JavaScriptCore/wasm/WasmTypeDefinition.h
> 
> which depends on #if ENABLE(WEBASSEMBLY_B3JIT).
> 
> If B3_JIT cannot be used for webassembly on RISC-V, why is 
> Source/JavaScriptCore/b3/B3Validate.cpp compiled?

Well it's needed for ENABLE(B3_JIT), of course.

Looks like this broke in 257865@main "[SIMD] B3/OMG Support" but I don't know what to do about it. Justin, can you take a look please? Is it safe to just add preprocessor guards around the code that you added?
Comment 8 Radar WebKit Bug Importer 2023-03-01 09:29:17 PST
<rdar://problem/106090856>
Comment 9 Justin Michaud 2023-03-01 10:54:56 PST
What is the easiest way for me to make a RISC-V build? Qemu?

I can just fix it if I can get a build going
Comment 10 Michael Catanzaro 2023-03-01 13:36:27 PST
(In reply to Justin Michaud from comment #9)
> What is the easiest way for me to make a RISC-V build? Qemu?

Probably, but I don't think you should have to worry about that. I would just try to make ENABLE(B3_JIT) && !ENABLE(WEBASSEMBLY_B3JIT) work again . The rest is somebody else's problem. ;)

BTW I just found bug #250681 and everything we've discovered here thus far is already mentioned in the first comment there, so I'll mark this one as the duplicate.

*** This bug has been marked as a duplicate of bug 250681 ***