-
-
Notifications
You must be signed in to change notification settings - Fork 14.5k
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
GHC on ARM platforms #33353
Comments
Actually there is an http://nixos-arm.dezgeg.me/channel See the wiki: https://nixos.wiki/wiki/NixOS_on_ARM |
Yes, I am using @dezgeg's binary cache for |
Update: GHC is working great now on @peti, how would you feel about making In any case, getting to this point has taken quite a bit more time than I expected ( |
I see your point, of course. At the same time, it's bound to be confusing for users if |
I don’t have a strong feeling one way or the other, so I defer to your judgement. If we had a bunch of For now, though, perhaps we should just add a note to the manual or wiki so that people know it’s possible to build Haskell programs on |
8.2.2 should work with cross, fwiw. |
That sounds interesting. As of which commit? (There is still the matter of Template Haskell, of course.) |
The question which compiler haskellPackages.ghc should refer to is not
connected to the question of whether or not we'll have binaries from
Hydra. We can configure Hydra to build any package set we like on ARM
CPUs -- it's not limited to "haskellPackages".
|
@peti That's true. The idea here would be steering people towards the package set that is cached, even if that caching happens regardless. I think I lean against it though; changing things to compensate for unportability just creates more unportability. @dhess https://hydra.nixos.org/jobset/nixpkgs/ericson2314-cross-trunk well now I made it worse, but I think I can after make it better. |
I agree with @Ericson2314 on the Hydra matter. If we're not going to make the cached packages easy to discover by making that cached set the default Thinking about this some more, there is also a danger that people will set an override now and then, when Honestly, though, I suspect this affects so few people that it doesn't really matter in the big picture. Let's optimize for whatever is the best use of our volunteers' limited time (@peti, @dezgeg, etc.). |
I was actually trying to get haskell set up on my Odroid XU4 today (which is Also, the ODROID is quite a 'beefy' machine for ARM (octa-core, little-big arch) terms; perhaps I can help fill the build cache? It's got a gigabit ethernet port and I've got the ability to hook upto 2TiB of storage to it |
@arianvp As of the time I write this, if you point your XU4 to the I've only run into a few problems so far, and most of those were solved with a |
Thank you for your contributions. This has been automatically marked as stale because it has had no activity for 180 days. If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity. Here are suggestions that might help resolve this more quickly:
|
GHC 8.8.4 now builds on aarch64 via #66277 and 8.2.2 is relatively old, I'll close this |
Issue description
GHC 8.2.2 does not bootstrap on either
armv7l-linux
oraarch64-linux
.(However,
ghc802
is currently working onarmv7l-linux
in as of aecc868)Technical details
Now that #29688 is merged, it should be possible to build GHC and
haskellPackages
on both ARM platforms. I have an an overlay that I've been using for GHC on ARM for several months, so it definitely works with a bit of hand-holding for ARM.I propose we track the remaining impediments here:
Currently
ghc822
bootstraps usingghc7103Binary
. That will never work foraarch64-linux
so we should bootstrap fromghc821Binary
, instead. I have opened ghc: bootstrap 8.2.2 with 8.2.1-binary. #33350 for this change because it should probably be done separately, as it affects the existing, working GHC platforms and is straightforward to review. [edit: ghc: bootstrap 8.2.2 with 8.2.1-binary. #33350 has been merged]armv7l-linux
won't bootstrap withghc821binary
because that build has an explicit LLVM dependency. (See https://www.haskell.org/ghc/download_ghc_8_2_1.html#linux_armv7). That is easy enough to fix and something I had done in my GHC for ARM overlays, so I will work on that next. [edit: Make GHC work on armv7l-linux #33405 fixes GHC onarmv7l-linux
][edit: new issue]
ghc822
does not bootstrap onarmv7l-linux
due to a segfault duringstage2
. mitchy on IRC is able to reproduce the exact same behavior I am seeing on NixOS on Alpine Linux, so this definitely appears to be an upstream regression. mitchy will file an issue upstream.I would like to propose that we make[edit: I think @peti is probably right that doing the override inghc802
the default onarmv7l-linux
until the issue is fixed asghc802
is working very well for me on that platform and a good number of popularhaskellPackages
inmaster
still build fine on that version of GHC.nixpkgs
is not necessary at this point.]The
ghc821Binary
build foraarch64-linux
also has an explicit LLVM dependency, buthaskellPackages
for that platform won't even evaluate because apparently evaluatinghaskellPackages
needsghc7103Binary
, even ifghc822
is bootstrapping withghc821Binary
. I haven't dug into that yet but it probably has something to do with one or more ofhscolour
,alex
, orhappy
.It would be nice to get Hydra building at least some core
haskellPackages
onaarch64-linux
. As far as I know, there are noarmv7l-linux
build hosts so support for that platform on Hydra is probably not possible.The text was updated successfully, but these errors were encountered: