Summary: | REGRESSION(257865@main): [RISCV64] B3Validate.cpp: fix !ENABLE(WEBASSEMBLY_B3JIT) | ||
---|---|---|---|
Product: | WebKit | Reporter: | Thomas Devoogdt <thomas.devoogdt> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | bugs-noreply, clopez, jbicha, jsims, justin_michaud, mcatanzaro, webkit-bug-importer, ysuzuki, zan, zdobersek |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=238007 |
Description
Thomas Devoogdt
2023-01-16 08:01:12 PST
*** Bug 252758 has been marked as a duplicate of this bug. *** 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. 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 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? 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). 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. Thanks Zan! *** This bug has been marked as a duplicate of bug 253700 *** |