| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Review requested:
|
Sorry, something went wrong.
|
My read is that these only apply to V8 >=14.2.147, and therefore not to any current release lines – please re-label if not the case. |
Sorry, something went wrong.
|
@Renegade334 Yeah, that's right. The riscv_vector.h include and target("arch=+v") attribute in deps/v8/src/base/cpu.cc only landed in V8 14.2+, so none of the current release lines are affected. The dont-land-on labels look correct as-is. |
Sorry, something went wrong.
|
Please rebase onto main to fix the CI errors. |
Sorry, something went wrong.
V8's deps/v8/src/base/cpu.cc unconditionally includes <riscv_vector.h>
and uses __attribute__((target("arch=+v"))) for runtime RVV detection
when V8_HOST_ARCH_RISCV64 is defined (native builds only). GCC 13 does
not support the RISC-V target attribute and its riscv_vector.h cannot
be included without -march=rv64gcv, so native riscv64 builds require
GCC >= 14 or Clang >= 19.
Add a footnote to the riscv64 row in the platform list table to
document this. Cross-compilation from x64 is not affected.
Refs: nodejs/build#4099
Signed-off-by: Jamie Magee <jamie.magee@gmail.com>
Done! |
Sorry, something went wrong.
There was a problem hiding this comment.
RSLGTM
Sorry, something went wrong.
There was a problem hiding this comment.
Can you double check this? On my system I have riscv_vector in the libgcc-13-dev package (Armbian-bpi-SpacemiT 24.5.0 so I'd expect it to find it ok, although I haven't attempted a build with that version built with 13 yet)
OK I see you've added the note about a problem when it's built with 13 and without rc64gcv
Sorry, something went wrong.
|
@sxa Yeah, the header ships with GCC 13, but it errors out unless you compile with -march=rv64gcv globally. V8 doesn't do that. It uses __attribute__((target("arch=+v"))) to enable RVV for just one function. GCC 13 doesn't support the target attribute on RISC-V at all. That landed in GCC 14 (r14-5527). |
Sorry, something went wrong.
V8's deps/v8/src/base/cpu.cc unconditionally includes <riscv_vector.h>
and uses __attribute__((target("arch=+v"))) for runtime RVV detection
when V8_HOST_ARCH_RISCV64 is defined (native builds only). GCC 13 does
not support the RISC-V target attribute and its riscv_vector.h cannot
be included without -march=rv64gcv, so native riscv64 builds require
GCC >= 14 or Clang >= 19.
Add a footnote to the riscv64 row in the platform list table to
document this. Cross-compilation from x64 is not affected.
Refs: nodejs/build#4099
Signed-off-by: Jamie Magee <jamie.magee@gmail.com>
PR-URL: #62607
Refs: nodejs/build#4099
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
Reviewed-By: Stewart X Addison <sxa@redhat.com>
| Back | FazBrowse Home | New Git URL |
V8's deps/v8/src/base/cpu.cc includes <riscv_vector.h> and uses target("arch=+v") for runtime RVV detection when building natively on riscv64. GCC 13 can't handle either of those — its riscv_vector.h errors out without -march=rv64gcv, and it doesn't support the target attribute for RISC-V at all. GCC 14 added both (r14-5527).
This only affects native builds. Cross-compilation from x64 skips the code entirely (it's behind V8_HOST_ARCH_RISCV64).
The project-wide minimum is GCC >= 13.2, which is fine for every other architecture. This adds a footnote to the riscv64 row in the platform table noting that native builds need GCC >= 14 or Clang >= 19.
Refs: nodejs/build#4099