-
Notifications
You must be signed in to change notification settings - Fork 6
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
port the nabla to aarch64 #21
Comments
Hi @xiaobo55x , don't know about unikraft to be honest. But what we would actually like to try is to replace netbsd with Linux. Something like this: https://www.mail-archive.com/[email protected]/msg01773.html |
@ricarkol |
Hi @lumjjb @ricarkol, For the solo5 project, we already have added the support for arm64 in the master branch. Could you please let me know when will you upgrade the solo5 src in this repository to its master branch? Thanks, Haibo |
We're planning to point to the latest solo5 src within the next weeks. Hopefully there will be no surprises. |
@ricarkol That's great! Thanks! |
Hi Haibo, as @ricarkol and @lumjjb have mentioned, there is already an effort to port the nabla containers stack to aarch64. Although we haven't ported the base-build Makefiles and build system on this repo to support aarch64, you can have a look at our approach at github.com/cloudkernels/rumprun. There's also a series of short, tutorial-like blog posts describing the basic steps to build the toolstack, runnc, and a basic unikernel for a rpi3 at https://blog.cloudkernels.net. I suspect these changes could be merged upstream (at least for rumprun/src-netbsd) pretty soon (in the coming weeks). cheers, |
@ananos |
Hi @ananos, It seems that you are merging your work on aarch64 to upstream. Is it possible to run the Nabla Regards, Haibo |
Hi @xiaobo55x, yes! initial support is upstream, so you should be able to build the toolstack and run a Nabla container on aarch64. If you find that useful, we have a post describing the steps: https://blog.cloudkernels.net/posts/build-a-nabla-docker-image Let us know when you try it, please do ping if you have any issues. thanks! |
Hi @xiaobo55x you can run aarch with |
Hi @xiaobo55x, I suspect that the part that fails is the hardcoded If this is the case, can you try manually changing it to After a succesfull build on nabla-base-build/rumprun-packages/nginx, issuing a make at nabla-base-build/nginx-base would do the trick I guess. We are porting runnc to aarch64 as we speak. The next step would be to port nabla-base-build. ATM we have been able to manually build the packages. have a go with the above and let us know! |
Hi @ananos, The RUMPRUN_TOOLCHAIN_TUPLE have been changed to aarch64-rumprun-netbsd, and the error happened when building nginx. After checking the makefile in nginx, I found some architecture dependent codes which are not implemented on arm64 yet(for example, the libressl lib build). I have also tried to build node-base package, it also failed. So I guess extra works should be done to port each application on the arm64 platform. |
well, I'm pretty sure we haven't changed anything in libressl or nginx for it to work. Just tried it with the tip of rumprun (4ddcdd2) and rumprun-packages (687c6dab) and it seems that there's no x86_64 specific build commands. For a quick workaround (until we sort out the build issues on nabla-base-build) you can just go to the rumprun-packages/nginx dir (make sure you've got the TUPLE correct), source rumprun/obj/config-PATH.sh and re-try the build. After it succeeds, go back to nginx-base and run make. That should do the trick for now. |
The failure happened in the rumprun-packages/libressl/build/crypto/Makefile.in. There are some files suffixed with x86_64. I think there should be the corresponding files suffixed with arm64. |
I'm clearly missing something. Can you please paste the error you're seeing -- I suspect these files are only built on x86_64. From a clean rumprun-packages (687c6dab) repo libressl builds fine for me. |
|
root@bin:/home/xuhaibo/Nabla/nabla-base-build/rumprun-packages# git log
commit cef2a59f328eb4233aa13b1a94520241f3af176c |
as I suggested in my previous replies, please try to do a manual build. Step 1:
See if that works for you -- config.mk is being overwritten by some part of the nabla-base-build Makefiles:
if you still want to initiate make from the nginx-base dir, maybe you should try fixing config.mk.dist to include the correct TUPLE (aarch64 instead of x86_64). |
Hi @ananos, The build is successful on our arm64 server with the above methods. Thanks very much for the help! |
no worries, glad we could resolve this specific issue. We pinpointed the config.mk.dist thing ;-) I guess TODOs for us is to bring runnc into a stable multi-arch state and then port the changes to nabla-build-base. Bear in mind that for redis, python3 and probably for any package that uses 128-bit arithmetic operations, libgcc is required to be linked in, so we're updating rumprun's src-netbsd to include the NetBSD version, as well as some makefiles to verify the order of linking. We should have these patches merged-in end of this week or early next week. |
Great! One more question, Is it possible to point the rumprun src-netbsd to the latest NETBSD codes which with better support for the aarch64 port. |
Yeap, that's WiP. At the moment, rumprun points to https://github.com/cloudkernels/src-netbsd/tree/a9854c10386f81212829f437743ce7ac2e58fad3 which contains patches up to 2018-10-29 We would like to automate the process but that's one more thing in our TODO list ;-) |
Hi,
Do you have the plan to support the Nabla on aarch64 platform?
Regards,
Haibo
The text was updated successfully, but these errors were encountered: