Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
ghc: enable parallel building of GHC on aarch64. #48446
Note: this only affects GHC, not haskellPackages, which still suffers
Motivation for this change
@ElvishJerricco pointed out on #47901 that GHC's own build system (mostly) doesn't use
Therefore, we can re-enable parallel builds of GHC on
referenced this pull request
Oct 15, 2018
This partially reverts the changes that were inconsequential on non-AArch64 platforms. So this is good in that this won't (shouldn't) cause any change there, thus a net zero sum on non-AArch64. Hopefully this'll help the Haskellers interested in AArch64 fix things for AArch64 :).
Oct 15, 2018
8 checks passed
The GHC build system uses
I would much rather have a build that works every time, rather than a build that fails on my machines but works on Hydra. Maybe I'm the only one unlucky enough to be using the afflicted hardware?
@TravisWhitaker The entire community benefits from having successful Hydra builds of GHC on
However, the point is moot (for now) as it appears that even Hydra is unable to build
It's timing out after 10 hours, which is interesting, because before this change, when
The first successful build (https://hydra.nixos.org/build/82810083), just after this commit was made, took 8h23m, so it made the cut. But it might be the case that we just got lucky with that build, and that subsequent builds with
It's also possible that the builds were going fine but just took longer than the first successful build and didn't make the 10 hour cutoff.
So, either way, it appears that this change was not successful in its goal of producing consistent GHC Hydra builds on
I will say, though, that on my own personal Hydra, I'm doing a daily build of 3 of my own Haskell packages using
I should've qualified "my" more carefully; my organization has its own Nix infrastructure and GHC tweaks, so we aren't using these binaries anyway. In general, I think a person with afflicted hardware would rather wait for a working binary to build, rather than download one from Hydra that might be arbitrarily broken due to this GHC bug.
As I wrote in the GHC bug report, a common failure mode is a threaded Haskell program hanging forever, waiting on a futex. Perhaps this is the culprit?
You might be running on unafflicted hardware (which seems to be any microarch without dynamic execution) or you've flipped three heads in a row.
IIRC it's also used when building the boot packages, but I could be wrong.
@dhess Wait... The log of that failed build ends the same way as a successful build... Is it possible something irrelevant is hanging for hours? It is not exhibiting the panic caused by
It can't be because then we wouldn't be getting to the installPhase, let alone the fixupPhase.
@ElvishJerricco Does it always panic? I was under the impression that it sometimes just hangs indefinitely.
(edit Oh, perhaps @TravisWhitaker is
Does 8.4.4 support cross compiling from aarch64 to another architecture? I am getting some weird errors from cross-trunk: