Age | Commit message (Collapse) | Author | Files | Lines |
|
Initial port of our GHC Nix expressions to the new hadrian build system,
as it has become required after 9.4. Unfortunately there are some
regressions affecting us, namely the inability to install a GHC
cross-compiler at the moment (see issue linked in relevant error
message). This means that a lot of specific configuration snippets for
cross-platforms and static compilation have been ported from make
speculatively, as we are unable to test them for the moment.
|
|
|
|
|
|
|
|
text.cabal has the following snippet mandating this:
-- GHC 8.10 has linking issues (probably TH-related) on ARM.
if (arch(aarch64) || arch(arm)) && impl(ghc == 8.10.*)
build-depends: base < 0
Since we're now testing 9.0.2 for bootstrapping on Hydra, we can also
use the proper GHC version for powerpc64le.
|
|
This shortens the bootstrap chain for 9.4.1 and should be kinder on
rebuilds. It requires some messing around in the configure file, since
it is not officially supported by upstream (but known to work). For now
it saves us the hassle of adding another bindist to nixpkgs. When we
support hadrian, we'll be able to use the already packaged 9.2.2
bindist.
|
|
|
|
|
|
https://www.haskell.org/ghc/download_ghc_9_2_4.html
|
|
|
|
|
|
This reverts commit 7898af7d3a134e9741458c335da523f42944d92b.
|
|
ghc: Work around broken pyopenssl on aarch64-darwin
|
|
|
|
Since the musl / alpine bindist now uses the GMP backend, we need to
learn to tell Hadrian bindists about GMP. Hadrian bindists no longer
have the buildinfo files, instead we need to patch the package db before
installing and recache it afterwards which is not too hard, luckily.
Same goes for libiconv and base as well as libffi and rts on
darwin (those bindists are all produced using hadrian).
See also: https://gitlab.haskell.org/ghc/ghc/-/issues/21554#note_431000
Note that pkgsMusl.haskell.compiler.ghc922Binary still has severe
issues: It can't produce shared libraries because the bindist ships
none (and using the GMP backend has a hard requirement for shared
objects, apparently) and ghci segfaults for unknown reasons at the
moment. However, I've successfully compiled hadrian with it so far, so
perhaps it's good enough.
|
|
https://www.haskell.org/ghc/download_ghc_9_2_3.html
Since the tarball is generated by Hadrian, neither autoreconf nor ./boot
is executed so ./configure and ghc.mk is missing.
|
|
On non-arm platforms there's no reason to use the minimal GHC for musl
bootstrapping, as it doesn't hit the size limit. Additionally this serves
as a wonky workaround for ghc#21402 [1], as the minimal GHC 8.10.2
binary currently contains `xxx` in its `outPath`.
[1]: https://gitlab.haskell.org/ghc/ghc/-/issues/21402
|
|
It appears that integer-gmp is already set to null for all compilers,
so there is no need to explicitly set it to null in the integer-simple
and native-bignum package sets.
|
|
|
|
https://www.haskell.org/ghc/download_ghc_9_2_2.html
|
|
Currently, the build on MacOS ARM64 is broken because LLVM 9 (or more
specifically compiler-rt) is broken (and is marked broken). Both
8.10.7 and 9.2.1 are already set to LLVM 12 so this PR adjusts this to
also use LLVM 12 for GHC 9.0.2 which seems to get things building for me.
|
|
Neither of them support integer-simple anymore.
fixes #153742
|
|
|
|
https://www.haskell.org/ghc/download_ghc_9_0_2.html
|
|
|
|
Since LLVM itself doesn't depend on target at all, this doesn't change
anything *in effect* (i. e. rebuild count should be zero), but it is
more clear about the intention and what LLVM is used for here (i. e. in
depsBuildTarget).
|
|
Source:
* (8.6.5: https://www.haskell.org/ghc/download_ghc_8_6_5.html)
* (8.8.4: https://www.haskell.org/ghc/download_ghc_8_8_4.html)
* (8.10.2: https://www.haskell.org/ghc/download_ghc_8_10_2.html)
* 8.10.7: https://www.haskell.org/ghc/download_ghc_8_10_7.html
* (9.0.1: https://www.haskell.org/ghc/download_ghc_9_0_1.html)
* 9.2.1: https://www.haskell.org/ghc/download_ghc_9_2_1.html
* HEAD: https://gitlab.haskell.org/ghc/ghc/-/blob/3ab3631f41efe9a1ae32a5b1f709152228edb09a/configure.ac#L674
|
|
GHC 9.0.1 only supports LLVM 9 and spews a lot of warnings about LLVM 10
when using the LLVM backend atm.
See also: https://www.haskell.org/ghc/download_ghc_9_0_1.html
|
|
See https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/backends/llvm/installing#llvm-support
|
|
This should shorten the bootstrapping part (not requiring an
intermediate 9.0.1 build). Seems like 8.10.7 is still supported for
bootstrapping for the moment and allows compiling for aarch64-darwin.
|
|
haskell.compiler.ghc{901,921,HEAD}: fix aarch64-darwin build
|
|
|
|
by applying autoSignDarwinBinariesHook
|
|
by applying autoSignDarwinBinariesHook
|
|
|
|
Reverse bootstrapping is not supported by GHC upstream. In the case of
8.8.4 it just happens to work using 8.10.2, with later versions,
specifically 8.10.7 there seems to be some digressions in the generated /
used C code which cause 8.8.4 to fail to compile [1].
Thus we revert to using 8.10.2 for aarch64 and Musl which means: Still
no integer-simple and musl at the same time (however all other GHCs have
it, so it's probably not a problem) and no aarch64-darwin (GHC 8.8.4
can't target that architecture anyways). In short, the situation stays
the same.
[1]: https://github.com/NixOS/nixpkgs/pull/138523#issuecomment-927339953
|
|
Allows us to get rid of the musl special-casing.
|
|
This fixes musl+integer-simple, see #130441.
Co-Authored-By: sternenseemann <sternenseemann@systemli.org>
|
|
The src points to the obsidiansystems repo as it has the ghcjs ported from
8.10.5 to 8.10.7, and a bunch of other fixes (#812, #811, #809)
|
|
|
|
GHC 9.2.1-rc1 needs to run xattr in ghc.mk unconditionally. The fix for
this and support for the XATTR environment variable have only been added
to the GHC 8.10 series so far.
|
|
This darwin specific tool is required for GHC on master
nowadays. Unfortunately the XATTR environment variable only works in the
GHC 8.10 series.
|
|
|
|
by adding autoSignDarwinBinariesHook to nativeBuildInputs
|
|
https://www.haskell.org/ghc/download_ghc_8_10_7.html
|
|
|
|
|
|
|
|
The only big change is required for darwin since GHC 8.10.5 now
runs xattr in the install phase on darwin:
* https://gitlab.haskell.org/ghc/ghc/-/commit/11e1dcde0d3137a8ee5cd32697b2925ea4e84b95
* https://gitlab.haskell.org/ghc/ghc/-/commit/ec451cac39de919621c783fec809c26fb9f0d1c8
Unfortunately, it uses the host /usr/bin/xattr by default which is
present in the build due to a lack of sandboxing on darwin. That xattr
version however still requires Python 2.7 whereas Python 3.8 is in PATH
in our build. We solve this by setting the XATTR environment variable.
We can't use python3Packages.xattr since GHC expects Apple's fork of
xattr which provides some extra flags to utilize.
Co-authored-by: Cheng Shao <cheng.shao@tweag.io>
|
|
This reverts commit 36628e6e04e22a8b72ea5a07e4973670acabfca9.
As it turns out this wasn't caused by the update from python 3.8 -> 3.9,
but the underlying issue affects both python version (it seems that LTO
is at fault currently). Will have to be fixed elsewhere, reverting.
|