Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Promote RISC-V to an official architecture #49332

Closed
ilg-ul opened this issue Aug 26, 2023 · 10 comments
Closed

Promote RISC-V to an official architecture #49332

ilg-ul opened this issue Aug 26, 2023 · 10 comments
Labels
feature request Issues that request new features to be added to Node.js.

Comments

@ilg-ul
Copy link
Contributor

ilg-ul commented Aug 26, 2023

What is the problem this feature will solve?

Allow to get and install the node binaries from the main download pages, not from the unofficial section.

Indirectly this will allow to install node via nvm (the node version manager), which does not support unofficial builds (nvm-sh/nvm#3171 (comment))

What is the feature you are proposing to solve the problem?

Promote the RISC-V architecture to a prime citizen.

@sxa mentioned in #49278 (comment) that this should be possible, assuming someone is willing to help.

His main concern was the the lack of asm support in openssl, currently requiring --openssl-no-asm to pass the build.

I took a look at the openssl source files and I noticed that RISC-V asm support was added in 3.1.

In openssl/VERSION.dat I see that the current version in use is 3.0.10.

Would it be possible to upgrade the node dependencies to 3.1.2? (Unfortunately I'm not familiar with your build system to do this myself).

Once this is done, we can further test if the RISC-V build passes without --openssl-no-asm.

What alternatives have you considered?

No response

@ilg-ul ilg-ul added the feature request Issues that request new features to be added to Node.js. label Aug 26, 2023
@bnoordhuis
Copy link
Member

Would it be possible to upgrade the node dependencies to 3.1.2?

No. The 3.1 branch is not LTS, like 3.0 is. From https://www.openssl.org/policies/releasestrat.html:

  • Version 3.1 will be supported until 2025-03-14
  • Version 3.0 will be supported until 2026-09-07 (LTS)

Node v20.x's EOL is in April 2026.

@ilg-ul
Copy link
Contributor Author

ilg-ul commented Aug 26, 2023

If openssl 3.1 is out of reach, could we accept that, for now, on RISC-V, openssl will be compiled without asm support?

@bnoordhuis
Copy link
Member

I personally don't have a problem with that. Users are likely going to take note of the (lack of) performance of TLS and cryptography in general though.

@ilg-ul
Copy link
Contributor Author

ilg-ul commented Aug 26, 2023

... Users are likely going to take note of the (lack of) performance

Right. But we can mention in the release notes that this is a temporary solution until RISC-V support in openssl will mature.

In this case, what would be the next steps to make this happen?

@bnoordhuis
Copy link
Member

Check the "supported platforms" section in BUILDING.md. You basically want to get riscv to (at least) tier 2, meaning there needs to be CI infrastructure and one or more people maintaining it (where "it" is both the infrastructure and the state of the test suite.)

That's to get to tier 2. To stay there is an ongoing commitment, and not of the "check in once a month" kind.

@ilg-ul
Copy link
Contributor Author

ilg-ul commented Aug 26, 2023

Check the "supported platforms" section in BUILDING.md.

Thank you, that's a good starting point.

Do you know what infrastructure is used to build and publish the unofficial RISC-V binaries?

@bnoordhuis
Copy link
Member

I'm not 100% sure but I expect @sxa builds and uploads them locally, no CI involved.

@bnoordhuis
Copy link
Member

It's been a month with no movement. I'll take the liberty of closing this but LMK if there is reason to reopen.

@bnoordhuis bnoordhuis closed this as not planned Won't fix, can't repro, duplicate, stale Sep 27, 2023
@targos
Copy link
Member

targos commented Sep 27, 2023

Discussion is happening on #42251 and nodejs/build#2876

@sxa
Copy link
Member

sxa commented Sep 27, 2023

Missed these comments - thanks for closing this issue which is pretty much a dupliate and it's best to avoid fragmented comment threads, but to give closure on a couple of explicit questions above:

If openssl 3.1 is out of reach, could we accept that, for now, on RISC-V, openssl will be compiled without asm support?

That's what's happening in the unofficial builds currently. So it works, but likely not quick, although that may be the cause of some of the test case failures.

Do you know what infrastructure is used to build and publish the unofficial RISC-V binaries?

It's the same x64 host used for all of the linux unofficial builds so it's done with a GCC cross-compiler which is outside the noraml node.js CI as @bnoordhuis asserted. I don't do anything locally for them

As per @targos' comment, let's have any follow-on discussion in one of the other issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Issues that request new features to be added to Node.js.
Projects
Status: Pending Triage
Development

No branches or pull requests

4 participants