-
Notifications
You must be signed in to change notification settings - Fork 26
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
arm64/aarch64 support? #70
Comments
I don’t have any arm64 computers on which I want to run distri, so I won’t spend time on this myself. distri already knows how to cross-compile (a select handful of packages) for i686, so I suppose adding arm64 support into the tooling would not be too difficult. The remaining work is largely building packages for arm64 and applying build.textproto changes and possibly patches to make them build/work correctly. If someone wanted to contribute that work, I would be happy to help review it and answer questions. |
#71 fixes the core issues I've had so far, but I've been having some weird issues building bash. I'm using the command line Attempting to hack around this and change the permissions gets me |
Huh, this does not ring a bell. I can try to take a look tomorrow. |
Which Linux kernel version are you running on? I’m testing with Linux kernel 5.5.8 on Arch Linux, and for me, your command works: I also checked the file type, and it looks correct to me:
|
I've managed now to track down the issue: Vagrant shared folders. Default didn't work, switching to rsync type now works. Or at least it gets as far as as the |
Ah, great. By the way, I think you’ll eventually need a cross-compiler package setup like the gcc-i686* packages, but for arm64. |
An additional difficulty in cross-compilation is that your system should be set up to execute arm64 programs: https://ownyourbits.com/2018/06/13/transparently-running-binaries-from-any-architecture-in-linux-with-qemu-and-binfmt_misc/. This is needed e.g. for building This is a little easier when cross-compiling for i686, which typically runs fine on amd64. |
Thanks. So #72 fixes the cross-platform support for musl-gcc, and I've managed to build the bash package :) |
#73 adds cross-arch building to batch, but I'm running into issues running batch as it defaults to a hermetic build which doesn't work very well for cross-building. Would you be interested in a patch to allow for non-hermetic builds for batch? |
Also it would be useful for my purposes to have a flag for batch to make it die on the first build failure (defaulting to current "keep going" mode). Is a patch that does that of interest? |
I recommend doing non-hermetic builds only for the bootstrap set of packages. I have pushed commit e535899 which should illustrate how I’ve been doing bootstraps thus far. Once you have those built non-hermetically, you can rebuild them hermetically, then build the rest. This strategy should be far less error-prone than doing many non-hermetic builds. |
Yep, that sounds reasonable. |
#75 adds cross-building support to glibc, but beyond that I'm starting to run into issues. Major fun one is things that depend on gmp (mpfr/mpc) which want to load the gmp.h, which if they load the system one results in them using the system gcc :( Given all of that, I think that cross-platform bootstrap would need a lot more work, and so I'm going to wait until my Pinebook Pro turns up before doing more work on this on a native system. |
Yeah, I don’t know a solution to that off the top of my head either. Do let me know if you’re stuck on this once you resume work, and we can take a closer look. |
@stapelberg ARM has a project that you can submit a request to get access to ARMv8 / aarch64 servers should be here. |
Having another go at this today on the Pinebook, and urgh. Getting fun errors like |
That’s good to know, but it doesn’t change my position: I don’t have any ARM hardware myself on which I’d want to run distri, so I’m not motivated to work on this actively :) |
No worries, just a suggestion. Just following this project :)
@palfrey You might want to change your EDIT: Actually, @palfrey you should add |
Is there any interest in contributing support for this architecture? I'd be intending on getting this up and running on a Pinebook Pro (which I don't own yet, but intend on purchasing soon).
If so, any thoughts on naming? I'm leaning towards arm64 myself (the two names and reasons behind that is explained at https://stackoverflow.com/a/31852003/320546).
The text was updated successfully, but these errors were encountered: