Commit graph

798 commits

Author SHA1 Message Date
Alexandre Esteves
bd5f47022c ghc8.8.4: fix mingw build 2021-09-09 03:35:17 +01:00
Alexandre Esteves
eea8e3eace ghc8.10.7: fix mingw build 2021-09-09 03:35:07 +01:00
(cdep)illabout
89c37a0988
haskell.compiler.ghc921: remove darwin from hydraPlatforms since it is broken
This was marked broken in 6f1a319c45.
2021-09-07 09:49:54 +09:00
sternenseemann
791f39c668 haskell.compiler.*: clean up maintainer sets
Let's remove peti (retired) as well Marc, Andres and Will who haven't
been active lately. Feel free to re-add yourself, but this should at
least lessen the GitHub notifications for now.

Add lib.teams.haskell to every maintainer list additionally. I've also
added Domen and Pavol to GHC 8.10.7 binary since they are the only ones
working on aarch64-darwin so far. Let me know if that is alright with
you.
2021-09-01 16:49:18 +02:00
sternenseemann
6f1a319c45 haskell.compiler.ghc921: mark as broken on darwin
Seems like there is either a fundamental issue with how our derivation
works or an upstream bug prevent GHC 9.2.1 from compiling on macOS using
nixpkgs. Until someone fixes that or rc2 comes around, we can save the
build time.
2021-09-01 14:22:49 +02:00
sternenseemann
3ff0594935 haskell.compiler.ghc884: remove big-parallel
GHC 8.8.4 seems to be quite susceptible to flaky build failures when
using more cores. Since we don't care about speed too much with this
one, let's disable big-parallel again.
2021-08-30 12:17:09 +02:00
Domen Kožar
6f1242469a ghc: 8.10.5-binary -> 8.10.7-binary 2021-08-29 15:29:27 +02:00
sternenseemann
a008c419dd haskell.compiler.ghc921: provide xattr on darwin
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.
2021-08-28 16:17:21 +02:00
sternenseemann
b756d62d8d haskell.compiler.ghcHEAD: provide xattr on darwin
This darwin specific tool is required for GHC on master
nowadays. Unfortunately the XATTR environment variable only works in the
GHC 8.10 series.
2021-08-28 16:17:21 +02:00
sternenseemann
a0142cc3cc Merge remote-tracking branch 'origin/master' into haskell-updates 2021-08-28 14:45:41 +02:00
Pavol Rusnak
e0b89affa0 haskellPackages: fix ghc build on aarch64-darwin
by adding autoSignDarwinBinariesHook to nativeBuildInputs
2021-08-28 12:54:06 +02:00
sternenseemann
9eca744cc0 ghc: 8.10.6 -> 8.10.7
https://www.haskell.org/ghc/download_ghc_8_10_7.html
2021-08-27 00:42:51 +02:00
Pavol Rusnak
02c5e5173f
haskellPackages: introduce ghc8105Binary to enable aarch64-darwin bootstrap 2021-08-24 18:49:25 +02:00
sternenseemann
b4f66903e3 haskell.compiler.*: make big-parallel
Compiling GHC on Hydra takes 3h or more (with -j2) whereas even on an
outdated CPU GHC can be compiled in under an hour with -j4. To get a
higher NIX_BUILD_CORES value at build time, we'll have to mark GHC
big-parallel.
2021-08-24 00:57:19 +02:00
Guillaume Bouchard
5c1d3b7944 ghc: add guibou as maintainers for all ghc compilers 2021-08-23 12:40:11 +02:00
Guillaume Bouchard
e0f7b04c2e ghc: add 9.2.1 (rc1) 2021-08-23 12:40:11 +02:00
sternenseemann
cb330ce4f0 ghc: 8.10.4 -> 8.10.6
The only big change is required for darwin since GHC 8.10.5 now
runs xattr in the install phase on darwin:

* 11e1dcde0d
* ec451cac39

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>
2021-08-14 17:12:39 +02:00
(cdep)illabout
2d1b5aa1fe
haskell.compiler.ghcHEAD: increase Hydra timeout because Darwin builds were timing out
Building `haskell.compiler.ghcHEAD` on Hydra on Darwin seemed to cause
frequent timeouts.

Here's an example of a timeout: https://hydra.nixos.org/build/149762652

This commit raises the timeout time on Hydra for ghcHEAD.  The other
GHC derivations have this set, so it makes sense to set this here
as well.
2021-08-11 13:21:02 +09:00
Utku Demir
a794c51c07
haskell.compiler.ghcHEAD: 9.3.20210504 -> 9.3.20210806 2021-08-10 08:28:41 +12:00
(cdep)illabout
be8d8a9efb
ghc: mark integer-simple builds as broken when hostplatform is musl 2021-07-24 21:13:02 +09:00
sternenseemann
54e1d5a3e6 haskell.compiler.ghc865Binary: mark as broken when built with musl
The musl support for binary GHC 8.6.5 relied on ABI compat between musl
and glibc which is no longer the case: https://github.com/NixOS/nixpkgs/issues/129247

Since there is no upstream musl (alpine) bindist for GHC 8.6.5, we can
only accept that binary 8.6.5 is not possible with musl.
2021-07-13 14:36:42 +02:00
Niklas Hambüchen
63b1e6e489 ghc*-binary: Remove no-op --with-gmp-libraries 2021-07-10 02:49:42 +02:00
Niklas Hambüchen
c6a77590e3 haskell.compiler.ghc8102Binary: Split ghcBinDists set into default and musl.
This allows to implement the "HACK" mentioned in the commit to
build `pkgsMusl` GHCs on Hydra without failing evaluation on Darwin.

Reference of the discussion:
https://github.com/NixOS/nixpkgs/pull/129289#discussion_r663956747

Patch contributed by @sterni.
2021-07-10 02:49:42 +02:00
Niklas Hambüchen
f4e62a996f pkgsMusl.haskell.compiler.ghc{8104,884,901,HEAD}: Disable sphinx for musl
Adds new package options:

* enableDocs
* enableHaddockProgram

to control whether to build Sphinx docs, and GHC haddocks and the
haddock program.

Unfortunately currently the building of the `haddock `program
and generating GHC docs are mixed into one option, see:
https://gitlab.haskell.org/ghc/ghc/-/issues/20077

Making Sphinx docs disableable, and disabling them by default
for Musl and cross builds, makes it much easier to provide these
builds without having to support Sphinx's enormous dependency
tree for those ways of building.
2021-07-10 02:49:42 +02:00
Niklas Hambüchen
8adcd39504 ghc: Add comments about hardeningDisable pie for musl 2021-07-10 02:49:42 +02:00
Niklas Hambüchen
8b15fccf8a pkgsMuslhaskell.compiler.{ghc884,ghc8104}: Use GHC 8.10 as bootstrap compiler.
This addresses the fact that `ghc865Binary` segfaults on musl
(see #118731) because of the glibc+musl mix used in there.

With the previous commits, `ghc8102Binary` was changed to use
the musl-based bindist from GHC HQ instead, which works.

With this change, all nix Haskell compilers builds on musl:

    NIX_PATH=nixpkgs=. nix-build --no-link --expr 'with import <nixpkgs> {}; { inherit (pkgsMusl.haskell.compiler) ghc884 ghc8104 ghc901 ghcHEAD; }'
2021-07-10 02:49:42 +02:00
Niklas Hambüchen
f154c3adde haskell.compiler.ghc865Binary: Disable "pie" hardening. See #129247
While this does not fix `ghc865Binary` with musl, it at least prevents
that the other, newer errors are shadowed (see #129247).
2021-07-10 02:49:42 +02:00
Niklas Hambüchen
c866b8a13b haskell.compiler.ghc8102Binary: find -executable -> -perm -0100 2021-07-10 02:49:42 +02:00
Niklas Hambüchen
da1cf8cb90 pkgsMusl.haskell.compiler.ghc8102Binary: Fix musl segfault. Fixes #118731 #129247.
This commit replaces the musl + glibc hackery in the GHC bindist
compiler by using the new musl based bindist that GHC HQ provides
(built on Alpine).
We could alternatively also use a nix-built musl boostrap compiler,
but it seems nicer to use the GHC HQ one for now.

This fixes the compiler built by
`pkgsMusl.haskell.compiler.ghc8102Binary` segfaulting (#118731)
since the commit

    5e2311d2f - musl: 1.2.1 -> 1.2.2

concretely, musl commit

    01c7920f - remove redundant pthread struct members repeated for layout purposes

which I suspect breaks some glibc/musl ABI compatibility that may have
existed accidentally until then.

The added

    lib.optional stdenv.targetPlatform.isMusl "pie";

also fixes that the packaged bindist compiler cannot create a binary
in its `installCheck` phase (and overall); see detail explanation
in #129247.
2021-07-10 02:49:41 +02:00
Niklas Hambüchen
5777bd3d56 haskell.compiler.ghc8102Binary: Remove sed of /usr/bin/* commands.
None of the current bindists appear to contain these paths in their
`ghc-stage2` binary.
2021-07-10 02:49:41 +02:00
Niklas Hambüchen
1326009806 haskell.compiler.ghc8102Binary: Add check for arch-specific libraries.
With this check, we no longer don't notice when the upstream bindist
changes its dependencies (e.g. because a newer Debian version is used
that uses a new `ncurses` version).
2021-07-10 02:49:41 +02:00
Niklas Hambüchen
8a2de701f7 haskell.compiler.ghc8102Binary: Fix build on i686.
The library override that was present in the code referred to a
name that isn't even used in current GHC bindists.

Tested with:

    NIX_PATH=nixpkgs=. nix-build --no-link -A haskell.compiler.ghc8102Binary --argstr system i686-linux
2021-07-05 16:38:24 +02:00
Niklas Hambüchen
67e8744ef8 ghc: Refactor: Extract ghcBinDists 2021-07-05 16:38:24 +02:00
Niklas Hambüchen
947f757bba haskell.packages.ghc8102Binary: Add comments 2021-07-05 16:38:24 +02:00
Niklas Hambüchen
8d11c1380a pkgsMusl.haskell.compiler.ghc901: Fix evaluation with musl
`glibcLocales` only exists when glibc is used.

Similar to commit:

    8727284a - haskell: only use glibcLocales when using glibc
2021-07-04 22:15:59 +00:00
sternenseemann
cd33c34578 haskell.compiler.ghc884: patch for sphinx >= 4.0
With sphinx 4, interpreting the conf.py fails due to a decode
error: https://gitlab.haskell.org/ghc/ghc/-/issues/19962
The fix is an one line change which we have to backport from GHC
master.

9.2 and 8.10.6 will have a fix for this, GHC 9.0.1 and ghcHEAD
already have and GHC 8.10.4 has been patched in nixpkgs already.
2021-06-22 13:42:55 +02:00
sternenseemann
a8c2421e5b haskell.compiler.ghc8104: patch for sphinx >= 4.0
With sphinx 4, interpreting the conf.py fails due to a decode
error: https://gitlab.haskell.org/ghc/ghc/-/issues/19962

The fix is an one line change which we have to backport from GHC master.
Thus ghcHEAD is not affected by this problem.

9.2 and 8.10.6 will most likely have a fix for this.

TODO: Patch 8.8.4 and 9.0.1
2021-06-22 13:42:55 +02:00
John Ericson
4f97d78936
Merge pull request #126205 from sternenseemann/ghc-linker-checks
ghc: check for targetPlatform.linker to determine if gold is available
2021-06-08 16:42:13 -04:00
sternenseemann
036eef1d1e haskell.compiler.*: use gold based on targetPlatform.linker
useLdGold previously just checked for useLLVM which (currently) implies
`linker == "lld"`. However more accurate is to check the `linker` of the
`targetPlatform` as it actually tells us which bintools package we can
expect.

`linker == "bfd"` implies that we are using the `binutils` package, so
gold is available, so we can use it unless musl is the libc. `linker ==
"gold"` implies that gold is the default linker already and we should
absolutely use it.
2021-06-08 22:17:24 +02:00
sternenseemann
118b28a127 haskell.compiler.*: pull in unwrapped bintools for darwin
GHC calls otool on darwin which is contained in the
stdenv.cc.bintools.bintools derivation and thus needs adding to the
runtime PATH of GHC. Since this is toolchain specific technically, we
check for cctools instead of darwin (although I don't know if GHC
or nixpkgs work on macOS without cctools).

This fixes usage of GHC in an environment where otool is not available
and more specifically in stdenvNoCC which is used by writers.writeHaskell.
Resolves #123228.
2021-06-08 14:20:09 +02:00
Guillaume Bouchard
81c8d158a8 ghc: add missing meta data
`haskellCompilerName` in cabal2nix and hence ghc 8.10.2 and 8.6.5
"-binary" were not working correctly in this context.
2021-06-01 12:46:55 +02:00
(cdep)illabout
721c8ab307
haskell.compiler.ghcHEAD: disable Hydra build on aarch64-linux 2021-05-19 10:30:23 +09:00
sternenseemann
f90244c970 haskell.compiler.ghcHEAD: disable DWARF on non x86
The broken build of ghcHEAD on aarch64-linux results from rts/Libdw.c
not supporting that platform. Seemingly this particular file is only
relevant for DWARF support in GHC, so we disable that on unsupported
platforms.
2021-05-17 17:22:47 +02:00
(cdep)illabout
d1de348fdc
haskell.compiler.ghcHEAD: mark broken on aarch64 2021-05-16 16:52:08 +09:00
sternenseemann
b4c069dc11 haskell.compiler.ghcHEAD: 8.11.20200824 -> 9.3.20210504 2021-05-08 13:03:55 +02:00
Silvan Mosberger
08d94fd2b0
Merge pull request #114374 from oxalica/lib/platform-support-check
lib.meta: introduce `availableOn` to check package availability on given platform
2021-05-08 03:54:36 +02:00
maralorn
8b7d34d89e
Merge pull request #122026 from sternenseemann/ghc-binary-no-aarch64-hydra
haskell.compiler: misc cleanups for hydra aarch64 builds
2021-05-07 20:15:44 +02:00
sternenseemann
355b55d00b ghc8102Binary, ghc865Binary: don't build aarch64 on hydra
Unfortunately these compiler's normal binary versions exceed the maximum
output size on hydra and thus can't be built on there.

See also https://gitlab.haskell.org/ghc/ghc/-/issues/17051
2021-05-07 15:09:08 +02:00
sternenseemann
952a2866a2 haskell.compiler.ghc*Binary: update source URLs
The tarball download URLs seem to have changed, so we adjust them in
case anyone wants to reproduce the source of ghc8102Binary and
ghc865Binary.

Tested for x86_64-linux, i686-linux, aarch64-linux, x86_64-darwin.

Resolves #121804.
2021-05-07 11:20:19 +02:00
oxalica
354d262db8
lib.meta: introduce availableOn 2021-04-02 19:20:23 +08:00