Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 782913

Summary: net-libs/nodejs: add ARCH=riscv support
Product: Gentoo Linux Reporter: Yixun Lan <dlan>
Component: Current packagesAssignee: William Hubbs <williamh>
Status: CONFIRMED ---    
Severity: normal CC: riscv
Priority: Normal    
Version: unspecified   
Hardware: riscv   
OS: Linux   
URL: https://github.com/nodejs/node/issues/40152
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build log for net-libs/nodejs-16.6.2-r1

Description Yixun Lan archtester gentoo-dev 2021-04-15 02:22:11 UTC
I'm opening this mainly for tracking adding ARCH=riscv support

Reproducible: Always




https://github.com/nodejs/node/commit/1d21a8d140f78d4408c5375caedc917a83902a80
Comment 1 Marek Szuba archtester gentoo-dev 2021-09-16 12:21:46 UTC
Looks like v16 should work, or at least both 16.6.2 (i.e. the latest version in the tree) and 16.9.1 (i.e. the latest upstream version as of right now) both recognise 'riscv64' as a valid arch name.

Will give it a try some time soon, once my Starlight has finally finished emerging media-fonts/noto-emoji[buildfont] - 12 hours and counting!
Comment 2 Yixun Lan archtester gentoo-dev 2021-09-17 01:46:34 UTC
Created attachment 739617 [details]
build log for net-libs/nodejs-16.6.2-r1

version of 16.6.2 doesn't work as expected, most obvious error as following



     |          ^~~~~~~~~~~
../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc:1085:10: error: narrowing conversion of ‘v8::internal::RO_FMV_W_X’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
 1085 |     case RO_FMV_W_X: {
      |          ^~~~~~~~~~
../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc:1168:10: error: narrowing conversion of ‘v8::internal::RO_FLE_D’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
 1168 |     case RO_FLE_D: {  // RO_FEQ_D RO_FLT_D RO_FLE_D
      |          ^~~~~~~~
../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc:1184:37: error: narrowing conversion of ‘3791650899’ from ‘unsigned int’ to ‘int’ [-Wnarrowing]
 1184 |     case (RO_FCLASS_D & kRFPTypeMask): {  // RO_FCLASS_D , 64D RO_FMV_X_D
      |                                     ^
../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc:1203:10: error: narrowing conversion of ‘v8::internal::RO_FCVT_W_D’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
 1203 |     case RO_FCVT_W_D: {  // RO_FCVT_WU_D , 64F RO_FCVT_L_D RO_FCVT_LU_D
      |          ^~~~~~~~~~~
../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc:1224:10: error: narrowing conversion of ‘v8::internal::RO_FCVT_D_W’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
 1224 |     case RO_FCVT_D_W: {  // RO_FCVT_D_WU , 64F RO_FCVT_D_L RO_FCVT_D_LU
      |          ^~~~~~~~~~~
../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc:1246:10: error: narrowing conversion of ‘v8::internal::RO_FMV_D_X’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
 1246 |     case RO_FMV_D_X: {
      |          ^~~~~~~~~~
distcc[558976] ERROR: compile ../deps/v8/src/diagnostics/riscv64/disasm-riscv64.cc on localhost failed
make: *** [tools/v8_gypfiles/v8_base_without_compiler.target.mk:945: /var/tmp/portage/net-libs/nodejs-16.6.2-r1/work/node-v16.6.2/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/diagnostics/riscv64/disasm-riscv64.o] Error 1
make: *** Waiting for unfinished jobs....
../deps/v8/src/codegen/riscv64/assembler-riscv64.cc: In member function ‘void v8::internal::Assembler::GrowBuffer()’:
../deps/v8/src/codegen/riscv64/assembler-riscv64.cc:2695:53: warning: narrowing conversion of ‘((v8::internal::Assembler*)this)->v8::internal::Assembler::<anonymous>.v8::internal::AssemblerBase::pc_offset()’ from ‘int’ to ‘size_t’ {aka ‘long unsigned int’} [-Wnarrowing]
Comment 3 Marek Szuba archtester gentoo-dev 2021-09-19 11:46:54 UTC
16.9.1 builds successfully but fails several tests.