webkit2gtk 2.41.90 fails to build on riscv64

Bug #2031433 reported by Jeremy Bícha
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Webkit
Confirmed
Medium
webkit2gtk (Ubuntu)
Fix Released
High
Unassigned

Bug Description

- webkitgtk 2.41.90
- Ubuntu 23.10
- https://salsa.debian.org/webkit-team/webkit/-/blob/wk2/experimental/debian/rules
- https://salsa.debian.org/webkit-team/webkit/-/blob/wk2/experimental/debian/control

webkitgtk 2.41.90 fails to build on riscv64 but seems to build ok on our other architectures.

Full build log
---------------
https://launchpad.net/ubuntu/+source/webkit2gtk/2.41.90-1ubuntu1

Build log excerpt
------------------

In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-15db4ad9-1.cpp:1:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In member function
 ‘JSC::Wasm::B3IRGenerator::PartialResult JSC::Wasm::B3IRGenerator::addI32Popcnt(ExpressionType, JSC::B3::Variable*&)’:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5214:25:
 error: ‘supportsCountPopulation’ is not a member of ‘JSC::MacroAssembler’
 5214 | if (MacroAssembler::supportsCountPopulation()) {
      | ^~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In lambda function:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5224:17:
 error: ‘class JSC::CCallHelpers’ has no member named ‘countPopulation32’
 5224 | jit.countPopulation32(params[1].gpr(), params[0].gpr(), params.fpScratch(0));
      | ^~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In member function
 ‘JSC::Wasm::B3IRGenerator::PartialResult JSC::Wasm::B3IRGenerator::addI64Popcnt(ExpressionType, JSC::B3::Variable*&)’:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5241:25:
 error: ‘supportsCountPopulation’ is not a member of ‘JSC::MacroAssembler’
 5241 | if (MacroAssembler::supportsCountPopulation()) {
      | ^~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In lambda function:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5251:17:
 error: ‘class JSC::CCallHelpers’ has no member named ‘countPopulation64’
 5251 | jit.countPopulation64(params[1].gpr(), params[0].gpr(), params.fpScratch(0));
      | ^~~~~~~~~~~~~~~~~

Revision history for this message
In , Jeremy Bícha (jbicha) wrote :

- webkitgtk 2.41.90
- Ubuntu 23.10
- https://salsa.debian.org/webkit-team/webkit/-/blob/wk2/experimental/debian/rules
- https://salsa.debian.org/webkit-team/webkit/-/blob/wk2/experimental/debian/control

webkitgtk 2.41.90 fails to build on riscv64 but seems to build ok on our other architectures.

Full build log
---------------
https://launchpad.net/ubuntu/+source/webkit2gtk/2.41.90-1ubuntu1

Build log excerpt
------------------

In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-15db4ad9-1.cpp:1:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In member function
 ‘JSC::Wasm::B3IRGenerator::PartialResult JSC::Wasm::B3IRGenerator::addI32Popcnt(ExpressionType, JSC::B3::Variable*&)’:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5214:25:
 error: ‘supportsCountPopulation’ is not a member of ‘JSC::MacroAssembler’
 5214 | if (MacroAssembler::supportsCountPopulation()) {
      | ^~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In lambda function:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5224:17:
 error: ‘class JSC::CCallHelpers’ has no member named ‘countPopulation32’
 5224 | jit.countPopulation32(params[1].gpr(), params[0].gpr(), params.fpScratch(0));
      | ^~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In member function
 ‘JSC::Wasm::B3IRGenerator::PartialResult JSC::Wasm::B3IRGenerator::addI64Popcnt(ExpressionType, JSC::B3::Variable*&)’:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5241:25:
 error: ‘supportsCountPopulation’ is not a member of ‘JSC::MacroAssembler’
 5241 | if (MacroAssembler::supportsCountPopulation()) {
      | ^~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: In lambda function:
/<<PKGBUILDDIR>>/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:5251:17:
 error: ‘class JSC::CCallHelpers’ has no member named ‘countPopulation64’
 5251 | jit.countPopulation64(params[1].gpr(), params[0].gpr(), params.fpScratch(0));
      | ^~~~~~~~~~~~~~~~~

Revision history for this message
In , Jeremy Bícha (jbicha) wrote :

Debian is in the process of rebootstrapping their riscv64 architecture in preparation for it to become an official "release" architecture so the latest webkitgtk isn't yet buildable there.

But it had the same error in 2.41.4, 2.41.5, and 2.41.6
https://buildd.debian.org/status/logs.php?pkg=webkit2gtk&arch=riscv64

Changed in webkit:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
In , Alberto Garcia (berto) wrote :

So ENABLE_FTL_DEFAULT is on in riscv64, that enables WEBASSEMBLY_B3JIT, which is what results in WasmB3IRGenerator.cpp being built.

However supportsCountPopulation() is not defined in Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h

I don't know what's the best way to proceed here, but I suppose that disabling FTL in riscv64 would work around the problem.

Jeremy Bícha (jbicha)
Changed in webkit2gtk (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Jeremy Bícha (jbicha) wrote :
Changed in webkit2gtk (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.