alex_giusi_tiri has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 244 seconds]
worldofpeace has quit [Ping timeout: 244 seconds]
orivej has joined #nixos-aarch64
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #nixos-aarch64
alex_giusi_tiri has joined #nixos-aarch64
orivej has quit [Read error: Connection reset by peer]
orivej has joined #nixos-aarch64
jackdk_ has joined #nixos-aarch64
orivej has quit [Ping timeout: 268 seconds]
ekleog has quit [Quit: back soon]
jackdk_ has quit [Remote host closed the connection]
ekleog has joined #nixos-aarch64
orivej has joined #nixos-aarch64
orivej has quit [Ping timeout: 258 seconds]
<exarkun1> The project has an aarch64 builder available to it, right? And it can also do native builds for armv7l? Is that right? If so, I wonder what goes into a configuration like that.
<sphalerite> exarkun1: it can, but with major caveats
* exarkun1 reads
orivej has joined #nixos-aarch64
<exarkun1> Any idea if those superpowers are conferred by the A72 or by something else?
<exarkun1> maybe I have to find lheckemann and talk to him :)
<sphalerite> exarkun1: that's me.
<sphalerite> :p
<exarkun1> oh, hah. well that's convenient for me then ;)
<samueldr> AFAIUI it's that thunderx2, the architecture of those packet ARM servers, were made without 32 bit support
<samueldr> >> Only the 64-bit AArch64 execution state is support. No 32-bit AArch32 support.
<exarkun1> basically I'm wondering if it's feasible to use amazon's new arm offering for armv7l nix builds.
<gchristensen> the community builder isn't a thunderx2
<samueldr> (exactly)
<gchristensen> (oh)
<samueldr> I think, maybe I'm wrong, most "standard" cortex-based µarch will support 32 bit
<sphalerite> exarkun1: to find out, get nix running on it then `nix build nixpkgs.pkgsCross.armv7l-hf-multiplatform.hello && ./result/bin/hello`
<samueldr> that's what I'm trying to find out
<gchristensen> I asked the worksonarm people that question... ARM's offerings are all indecipherable to me
<samueldr> I know that both A72 and A53 support 32 bit
<exarkun1> sphalerite: oh yea, good idea.
* exarkun1 tries
<samueldr> both of those can even, when the machine supports it, use kvm-accelerated 32 bit machines
<samueldr> so, at a glance, anything "Cortex-*" is probably fine with AArch32; while anything third-party-designed I can't find a good list of "yes" or "no"
<gchristensen> "AArch32 for full backward compatibility with Armv7" courtesy of vielmetti
<samueldr> if I read what I'm reading right, Cortex-A76 won't be able to boot AArch32, but still use it in a "non-privileged level"
<exarkun1> eh not this morning I guess, I don't see any nixos images for arm on aws so I guess I have to make one
<sphalerite> exarkun1: you can probably use another distro and nix's normal installer
<exarkun1> ah yea
<exarkun1> actually I just found the uefi-supporting branch of nixos-in-place so I'll try that first (because I am also interested in nixos-in-place)
<exarkun1> ... and so much for that: sha256sum: WARNING: 1 computed checksum did NOT match
<exarkun1> (trying the regular nix installer now)
<gchristensen> wat
<exarkun1> seems like at the very least it's getting the wrong image.
<gchristensen> nixos-in
<gchristensen> nixos-in-place fetching an i686 image to an arm host is interesting to start with
alex_giusi_tiri has quit [Ping timeout: 246 seconds]
<sphalerite> "it's not amd64, it must be x86!"
<sphalerite> firefox-bin used to do that too
<exarkun1> shoulda picked a bigger instance type. up to building a cross-compiling gcc...
alex_giusi_tiri has joined #nixos-aarch64
<gchristensen> ouch
<sphalerite> exarkun1: huh, the cross gcc should be in the cache
<sphalerite> exarkun1: but yeah, looks like it's not. Maybe this is a recent change
<sphalerite> or hydra hasn't caught up yes
THFKA4 has quit [Quit: WeeChat 2.3]
THFKA4 has joined #nixos-aarch64
THFKA4 has quit [Changing host]
THFKA4 has joined #nixos-aarch64
<exarkun1> Hello, world!
<gchristensen> hello!
<exarkun1> So it seems AWS EC2 a.* instances can run armv7l-hf-multiplatform binaries.
<exarkun1> Thus ... a native armv7l toolchain can be used to build armv7l binaries on that platform?
<exarkun1> So maybe asking for native builds and indicating with extra-platforms that the system is capable of such native builds will work
<gchristensen> I think the complication is the kernel can't restrict a system to armv7l like an x8664 machine can restrict to x86
<samueldr> >> Caveat: many packages close to the roots of various dependency trees (e.g. openssl) will attempt to autodetect the build platform based on uname (which still returns aarch64) and fail as a result.
<exarkun1> gchristensen: So you might accidentally get some aarch64 in there without noticing (until later)?
<gchristensen> yeah I think so?
<gchristensen> sphalerite, samueldr know better
<exarkun1> and what samueldr said
<samueldr> exarkun1: you'd have to *somehow* boot it all as AArch32 or you could use qemu kvm
<sphalerite> exarkun1: no, not really without noticing. Builds will fail :)
<samueldr> there's *some* cost to kvm aarch32, but it's really not bad, close to native perfs, main issue is limited amount of ram (by default) and limited amount of cores supported
<samueldr> limited amount of ram is that the kernel needs to be built with LPAE (iirc) for aarch32, which is a feature I'm not sure all cortex-a* 32 bit flavours support; and if it's not supported it won't boot (so we can't just add it to our defaults)
<samueldr> (limited being around 2.3GB)
<exarkun1> samueldr: I think there must be several aspects of this whole process of which I am entirely ignorant.
<samueldr> at one point I was too :)
<samueldr> I'd say before 2018/12/02 I was
<sphalerite> also limited address space which means a single process can't allocate more than 3GB even if the memory is available
<exarkun1> So you think booting a nix aarch32 kvm vm (or several maybe) on the aarch64 and using them as builders might be the way to go?
<sphalerite> that or #21417
<{^_^}> (by Baughn, 2 years ago, closed): ddclient: Make it work.
<sphalerite> err
<sphalerite> #21471
<{^_^}> (by Ericson2314, 2 years ago, open): Always cross compile
<exarkun1> yea #21471 would be great
<{^_^}> (by Ericson2314, 2 years ago, open): Always cross compile
<exarkun1> I've spent like the last 3 weeks trying to get enough things to cross-compile to go that route
<exarkun1> and I am totally exhausted
<Ericson2314> I had another PR
<Ericson2314> "always prefix compilers" or something
<Ericson2314> which did the rest
<{^_^}> #44583 (by Ericson2314, 21 weeks ago, open): WIP: treewide: Always prefix compilers
<Ericson2314> yeah
<Ericson2314> I recall I did the `args_build` thing sphalerite
<sphalerite> Ericson2314: ah neat
<samueldr> >> src/aarch64
<samueldr> looks like it
orivej has quit [Ping timeout: 250 seconds]
orivej has joined #nixos-aarch64
orivej has quit [Ping timeout: 258 seconds]
worldofpeace has joined #nixos-aarch64
<exarkun1> Anybody happen to have an aarch32 nix system in the form of an ec2 image already made? :)
<exarkun1> or know if such a thing would boot on an a.* instance?
<exarkun1> I guess since aarch32 isn't actually a supported system that's not too likely to exist already