-
-
Notifications
You must be signed in to change notification settings - Fork 13
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
linux-arm
and linux-arm64
prebuild comes with GLIBC which is too new for Raspberry Pi
#69
Comments
We build using dockcross docker images that are unversioned and we don't actively test Raspberry Pi, so it's very well possible that we inadvertently broke it. I don't have time to look into it. Could you check the glibc versions of older prebuilds (maybe even going back to Note: at some point we do have to end support of some platforms (intentionally) because node 18 moved to glibc 2.28. |
It looks like there's at least one temporary easy win, although it will pose a problem for Node 18 - Dockcross additionally has the following that should meet the bill (https://github.com/dockcross/dockcross#summary-cross-compilers):
They don't have a prebuildify wrapped verison, however, so changes may need to be submitted to them. I'll try to figure out getting these builds setup on my machine and start seeing if there's an option to go to an older prebuild, although the right longterm answer initially seems to be getting prebuilds of the above Dockcross images
I think that's fair (and necessary). Ubuntu 18's 2.27 was just an easy target to test with to debug this issue |
Ah right, I forgot (though I was the one who released that).
PRs are welcome over at |
Hey there @vweevers, I chatted with my team and we'd like to invest some effort into solving this problem, but I wanted to get your input into how to best accomplish the work and verify the changes work. Step 1) It seems pretty straightforward to update https://github.com/Level/classic-level/blob/main/package.json#L21 to use Step 2) Looking at the changes between https://github.com/prebuild/docker-images/tree/master/linux-arm64 and https://github.com/prebuild/docker-images/tree/master/linux-arm64-lts, it seems like the only thing I'd need to do would be to make copies of the |
That's correct.
To verify, build the new docker image(s) locally, then create a container with the Note that Lastly, I appreciate your help! |
@vweevers I've been running into some issues getting a build made via
I've tried manually setting I even tried via a fork of the current Github action, which failed with the same error: https://github.com/cswendrowski/classic-level/actions/runs/4441111255/jobs/7795775652 Unfortunately the logs of the last successful run on this repo are no longer retained (https://github.com/Level/classic-level/actions/runs/2039662848/jobs/2944228919), so I can't see how it succeeded previously. Any pointers would be appreciated - as a Windows dev, I don't normally dig into the world of compiling C++ on Linux, but I'm trying my best EDIT: Well, as always, asking questions is a great way to debug. I was able to get past this issue by adding the following block to
This doesn't feel like the right answer, and if it is, we'll still need to get those updated in the upstream repos since two of these are git submodule files, but it at least got a build done on my machine |
Doesn't ring a bell, I'll check it later and/or trigger a GHA build here. |
Back again with an update after much research: I was able to wrap the I was unable to do a successful build using a wrapped That leaves arm64, which we have successfully verified on newer Pi Models. The only work to support those targets is this PR: #71 Thanks for your support in debugging this issue, and we look forward to consuming this change when available |
Two problems to fix with this one - our rpi arm64 isn't working possibly because our libc is too new, so we'll target the lts of arm64, worked for [level](Level/classic-level#71) thankful for [their investigation](Level/classic-level#69) - our arm64 builds were just broken and wouldn't build so we're fixing that with a
Two problems to fix with this one - our rpi arm64 isn't working possibly because our libc is too new, so we'll target the lts of arm64, worked for [level](Level/classic-level#71) thankful for [their investigation](Level/classic-level#69) - our arm64 builds were just broken and wouldn't build so we're fixing that with a variable in our binding.gyp for `openssl_fips` When this is released it will hopefully fix serialport/node-serialport#2438
The readme lists that this should work on Raspberry Pi, but we've traced down that due to a GLIBC issue, this is not the case
Reproduced on an ARM64 laptop running Ubuntu 18:
Ubuntu 18 ships with GLIBC 2.27, Raspian and Pi OS 10 ships 2.28, and Pi OS 11 with 2.29
On an x64 machine also running Ubuntu 18, the prebundle comes compiled with an older version of GLIBC and runs correctly on 2.27
Any guidance or assistance would be appreciated
The text was updated successfully, but these errors were encountered: