You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are now one month after the stable upstream release of V8 8.5. Unfortunately, the PR is still not ready to be merged, and I'm afraid that we may not be able to fix it soon enough for the release of Node.js 15.0.0, which would still have the same V8 version as Node.js 14.
It is now mainly blocked on a cross-compilation issue with ARM on Linux and I do not know what to do anymore. I have no experience with cross-compilation myself. @gengjiawen has been very helpful so far with the other issues (especially on Windows, thanks a lot! 🙇 ) but also seems out of ideas.
We tried to ping the platform-arm team and nobody answered (it's a very small team).
I'm opening an issue here hoping it gets some visibility. We haven't been so late with V8 updates in a very long time.
Either we reach out to ARM themselves or do a public call for help and we receive some help, or we downgrade it as our volunteers for supporting that platform are not there anymore.
I fear we may lock out a large number of students if we drop Linux arm. I'd love to assist but my arm hardware is currently across the country from me due to some annoying circumstances.
I assume this would affect apple on arm as well ? Just want to understand so that we know what people/companies we might reach out to in respect to finding more people to help out on the arm platform.
No idea, I ran it on Ubuntu 20.04. I think in your case it's a mismatch between the docket image (Ubuntu 18.04) and the kernel versions (which is too old for Ubuntu 18.04).
Either way, as long as it builds I guess it's fine? The problem we're having is on build time
Yes, docker container will share kernel with host, but it will install packages based on the distro image, which could lead to mismatch between kernel and expected kernel by a package. I think it's likely that qemu is built for a specific kernel version or with a minimum kernel greater than 4.4. By using a Ubuntu 16.04 image instead qemu (or whatever is expecting a higher kernel version) should work.
I assume this would affect apple on arm as well ? Just want to understand so that we know what people/companies we might reach out to in respect to finding more people to help out on the arm platform.
I assume this is specific to 32-bit arm and therefore would NOT affect aarch64?
Activity
mcollina commentedon Sep 24, 2020
I think we should ship without ARM on Linux if we do not have the capabilities to maintain it. Keeping V8 currency is a primary goal.
targos commentedon Sep 24, 2020
@mcollina It's current a tier 1 platform:

mcollina commentedon Sep 24, 2020
Either we reach out to ARM themselves or do a public call for help and we receive some help, or we downgrade it as our volunteers for supporting that platform are not there anymore.
devsnek commentedon Sep 24, 2020
I fear we may lock out a large number of students if we drop Linux arm. I'd love to assist but my arm hardware is currently across the country from me due to some annoying circumstances.
mcollina commentedon Sep 24, 2020
I 100% agree, I'm just reporting the current state of things - I'm just measuring the current state of affairs: we lack volunteers for ARM.
@bnb maybe we can do a call to arms on twitter from the
@nodejsaccount?bnb commentedon Sep 24, 2020
@mcollina I would be happy to. What specifically do we want to say?
targos commentedon Sep 24, 2020
Note that probably no ARM hardware is needed to fix the build issue as it happens during cross-compilation on the host (x64).
MylesBorins commentedon Sep 24, 2020
I can maybe take a look. Have we pinged the V8 team at all? In the past I was able to get them to help with build issues
mmarchini commentedon Sep 24, 2020
I can try to help over the weekend
mhdawson commentedon Sep 24, 2020
I assume this would affect apple on arm as well ? Just want to understand so that we know what people/companies we might reach out to in respect to finding more people to help out on the arm platform.
mmarchini commentedon Sep 24, 2020
Do we have instructions somewhere for cross-compilation? Couldn't find any on BUILDING.md
mmarchini commentedon Sep 25, 2020
That's what I tried on Ubuntu (WSL2) on master:
I think I might be missing some dependency.
targos commentedon Sep 25, 2020
@mmarchini There are some hints here: nodejs/node#35252
mmarchini commentedon Sep 25, 2020
Ok, I think I got it building. Thank you @targos! Will share a gist with steps to build once I confirm it works.
Will also try to use QEMU to test. If it works I might send a PR to add a test-linux-arm Action 🔥 (which will also serve as documentation, kind of).
nschonni commentedon Sep 25, 2020
@mmarchini you might want to take a look at nodejs/docker-node#1334 where there is an approach for using QEMU with GitHub Actions
2 remaining items
mmarchini commentedon Sep 25, 2020
For anyone wanting to help:
https://github.com/mmarchini/node-arm-cross-builder
gengjiawen commentedon Sep 26, 2020
What's the minimal kernel ? 4.14 ?
mmarchini commentedon Sep 26, 2020
No idea, I ran it on Ubuntu 20.04. I think in your case it's a mismatch between the docket image (Ubuntu 18.04) and the kernel versions (which is too old for Ubuntu 18.04).
Either way, as long as it builds I guess it's fine? The problem we're having is on build time
mmarchini commentedon Sep 26, 2020
In other words if you downgrade the docker image to 16.04 it should work
gengjiawen commentedon Sep 26, 2020
Docker image share kernel with host, should be the kernel being old. Anyway, I can test the build now :)
mmarchini commentedon Sep 26, 2020
Yes, docker container will share kernel with host, but it will install packages based on the distro image, which could lead to mismatch between kernel and expected kernel by a package. I think it's likely that qemu is built for a specific kernel version or with a minimum kernel greater than 4.4. By using a Ubuntu 16.04 image instead qemu (or whatever is expecting a higher kernel version) should work.
sxa commentedon Sep 29, 2020
I assume this is specific to 32-bit arm and therefore would NOT affect aarch64?
gengjiawen commentedon Sep 29, 2020
The issue is fixed by me. And @targos start V8 8.6 for Node.js 15 in nodejs/node#35415.
gengjiawen commentedon Sep 29, 2020
And great thanks @rvagg and @mmarchini for the cross-compile env setup.
mmarchini commentedon Sep 29, 2020
I believe this issue can be closed? @targos
targos commentedon Oct 4, 2020
I'm reopening for visibility because we hit other issues with V8 8.6: nodejs/node#35415
targos commentedon Oct 18, 2020
Just need one more TSC review on nodejs/node#35415