WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED DUPLICATE of
bug 253700
Bug 250681
REGRESSION(
257865@main
): [RISCV64] B3Validate.cpp: fix !ENABLE(WEBASSEMBLY_B3JIT)
https://bugs.webkit.org/show_bug.cgi?id=250681
Summary
REGRESSION(257865@main): [RISCV64] B3Validate.cpp: fix !ENABLE(WEBASSEMBLY_B3...
Thomas Devoogdt
Reported
2023-01-16 08:01:12 PST
WasmTypeDefinition.h isn't included if not ENABLE(WEBASSEMBLY_B3JIT). Also, toB3Type and simdScalarType are not defined if it is included. [ 20%] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-13.cpp.o In file included from /home/thomas/buildroot/output/build/webkitgtk-2.39.4/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-9.cpp:5: /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp: In member function ‘void JSC::B3::{anonymous}::Validater::run()’: /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:455:58: error: ‘simdScalarType’ is not a member of ‘JSC::Wasm’ 455 | VALIDATE(value->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); | ^~~~~~~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’ 63 | if (condition) \ | ^~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/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)); | ^~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’ 63 | if (condition) \ | ^~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:463:68: error: ‘simdScalarType’ is not a member of ‘JSC::Wasm’ 463 | VALIDATE(value->child(1)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); | ^~~~~~~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’ 63 | if (condition) \ | ^~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/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)); | ^~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’ 63 | if (condition) \ | ^~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:478:68: error: ‘simdScalarType’ is not a member of ‘JSC::Wasm’ 478 | VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); | ^~~~~~~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’ 63 | if (condition) \ | ^~~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:478:53: error: ‘toB3Type’ was not declared in this scope 478 | VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); | ^~~~~~~~ /home/thomas/buildroot/output/build/webkitgtk-2.39.4/Source/JavaScriptCore/b3/B3Validate.cpp:63:13: note: in definition of macro ‘VALIDATE’ 63 | if (condition) \ | ^~~~~~~~~
Attachments
Add attachment
proposed patch, testcase, etc.
Michael Catanzaro
Comment 1
2023-03-01 13:36:27 PST
***
Bug 252758
has been marked as a duplicate of this bug. ***
Justin Michaud
Comment 2
2023-03-01 20:53:27 PST
I think that enabling WebAssembly but not having ENABLE_WEBASSEMBLY_B3JIT is a very unusual configuration, unsupported by any other platform. I think the solution here is just to disable WebAssembly, this isn't a configuration we would like to support. In particular, we are landing a new wasm tier that will also be a pain to define out for this very specific case. If you want to make it work, go ahead, but my guess is that WASM on risc-v is not a super high priority for y'all at the moment.
Thomas Devoogdt
Comment 3
2023-03-01 21:39:53 PST
Hi, Yes, I know, In the meantime I've adapted the build commands. The original PR can be found here:
https://github.com/WebKit/WebKit/pull/8696
. (If any interest, otherwise just close it.) Kr Thomas Devoogdt
Michael Catanzaro
Comment 4
2023-03-02 07:28:27 PST
I did not know about
https://github.com/WebKit/WebKit/pull/8696
because this bug did not contain any link to it! (In reply to Justin Michaud from
comment #2
)
> I think that enabling WebAssembly but not having ENABLE_WEBASSEMBLY_B3JIT is > a very unusual configuration, unsupported by any other platform.
I see Yusuke says, from
https://github.com/WebKit/WebKit/pull/8696
: "If B3 is compiled, WEBASSEMBLY_B3JIT needs to be enabled." And B3 is a dependency of WebAssembly. I see the non-RISCV64 guards in PlatformEnable.h also attempt to enforce this dependency. So why are ENABLE_WEBASSEMBLY and ENABLE_WEBASSEMBLY_B3JIT separate flags, then? If this is all true, then we should surely get rid of ENABLE_WEBASSEMBLY_B3JIT, right? Anyway, sounds like we'll need to revert the PlatformEnable.h changes from
255090@main
"[JSC] RISCV64 support for WebAssembly". Zan, what do you think?
Jeremy Bicha
Comment 5
2023-03-09 13:38:03 PST
Hi, the riscv64 build hasn't been fixed for webkitgtk 2.39.91. This is a problem for Ubuntu. I tried reverting
https://commits.webkit.org/255090@main
but it still fails to build. [1519/6825] 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/llint/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 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/llint/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) (LoweringError) I can do test builds with my Launchpad PPA that has riscv64 enabled (usually PPAs don't have that available).
Zan Dobersek
Comment 6
2023-03-10 05:19:17 PST
The generalized set of build fixes is being landed under
bug #253700
:
https://github.com/WebKit/WebKit/pull/11358
WebAssembly was enabled because its support in LLInt was being developed. But (as far as I remember) enabling it also required enabling the B3 JIT feature, and WEBASSEMBLY_B3JIT was left out because compiling without it worked at that point. We intentionally enable FTL-level JIT (B3) for RISCV64 because we want to avoid these weird build-time situations where RISCV64 differs from X86_64 and ARM64, and as a result such build errors creep up. FTL/B3 is still disabled at build-time.
Michael Catanzaro
Comment 7
2023-03-10 07:01:15 PST
Thanks Zan! *** This bug has been marked as a duplicate of
bug 253700
***
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug