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
stdenv: add armv7a-linux system #51628
Conversation
@@ -13,6 +13,7 @@ | |||
"x86_64-linux" = import ./bootstrap-files/x86_64.nix; | |||
"armv5tel-linux" = import ./bootstrap-files/armv5tel.nix; | |||
"armv6l-linux" = import ./bootstrap-files/armv6l.nix; | |||
"armv7a-linux" = import ./bootstrap-files/armv7l.nix; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this would also require the bootstrap tarball in question.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They're identical instruction sets. It should be safe to use these bootstrap tools for any version of armv7. In fact, I would argue that we shouldn't even provide armv7 bootstrap and instead use armv5 for all arm32 bootstrapping. Each new version of arm is a superset of the previous version. That's not the case with aarch64 as some CPUs don't support 32-bit mode.
We've flip-flopped between |
ARMv7-A is the "Application" (profile?) of the ARM architecture, which I presume is what armv7a refers to. ARM also has big-endian and little-endian variations, so I presume the armv7l stands for little-endian. Both of these should be correct, although if something is looking for one where only the other exists that will be problematic. |
Yes. I meant to also explain those but forgot. Thanks @lheckemann for doing that. |
This isn't right. If compiling the same thing with cross results in |
Could this actually be what was fixed in 50e947f? |
Thanks @matthewbauer, it's probably a better fix for this To test it, I tried to build I wish there were a way to tar only the runtime dependencies as wanted in NixOS/nix#1245 Hope I am not confusing you too much. It's slow to compile/test on my hardware, so I'm even slower than usual to wrap my head around this cross-compiling machinery. |
Motivation for this change
When building
nix
for ARM like this:And installing it on a Cubieboard2, using #51626 .
One gets an
"armv7a-linux"
system, not an"armv7l-linux"
.I don't know the difference, nor the meaning of this "a" (maybe "android"?),
which maybe comes from
armv7l-hf-multiplatform.gcc.arch = "armv7-a"
inlib/systems/platforms.nix
.This patch treats
"armv7a-linux"
like"armv7l-linux"
in order to let nixpkgs findlibc
in nixpkgs:sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)