Commit Graph

505 Commits

Author SHA1 Message Date
John Ericson
5e17335bd7 Merge remote-tracking branch 'upstream/staging' into strictDeps 2018-05-14 23:33:03 -04:00
John Ericson
330ca731e8 treewide: Get rid of all uses of crossConfig
The hack of using `crossConfig` to enforce stricter handling of
dependencies is replaced with a dedicated `strictDeps` for that purpose.
(Experience has shown that my punning was a terrible idea that made more
difficult and embarrising to teach teach.)

Now that is is clear, a few packages now use `strictDeps`, to fix
various bugs:

 - bintools-wrapper and cc-wrapper
2018-05-14 23:30:37 -04:00
Frederik Rietdijk
64c8c6dcb3 Merge master into staging 2018-05-10 09:30:56 +02:00
Will Fancher
9dadb9e3cb Fix hsc2hs cross compiler build 2018-05-09 23:53:30 -04:00
Will Fancher
8012aee0a7 Don't enableShared in GHC when using android prebuilt 2018-05-07 23:57:31 -04:00
Will Fancher
0afb45d574 Set the C standard when building GHC
Should this be in cc-wrapper?
2018-05-07 23:57:31 -04:00
John Ericson
cf06e42d1c Merge remote-tracking branch 'upstream/master' into staging 2018-05-03 16:35:36 -04:00
Peter Simons
afea46bbc0 ghc-8.4.1: drop obsolete version, we have 8.4.2 now 2018-05-03 14:50:00 +02:00
Matthew Justin Bauer
eeb016e8f0
Merge branch 'staging' into fix-ncurses-darwin-extensions 2018-05-02 15:40:38 -05:00
John Ericson
b9acfb4ecf treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile

(cherry picked from commit ba52ae50488de85a9cf60a3a04f1c9ca7122ec74)
2018-04-25 15:50:41 -04:00
John Ericson
ba52ae5048 treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile
2018-04-25 15:28:55 -04:00
Jan Malakhovski
7438083a4d tree-wide: disable doCheck and doInstallCheck where it fails (the trivial part) 2018-04-25 04:18:46 +00:00
Peter Simons
651239d5ee ghc: version 8.4.2 is now a proper release 2018-04-20 10:01:31 +02:00
Frederik Rietdijk
23741692fa Merge master into staging 2018-04-04 19:36:39 +02:00
Peter Simons
ed92418b96 ghc: add version 8.4.2-rc1 2018-04-04 15:00:31 +02:00
Shea Levy
fbe8deb282
ghc: Use persistent URL for abi-depends determinism patch. 2018-03-28 12:31:40 -04:00
Matthew Justin Bauer
75616ceb49
Merge pull request #37840 from matthewbauer/unixtools
Cross-platform "unixtools"
2018-03-27 18:43:03 -05:00
Shea Levy
59a53aada0
haskell.compiler.ghc8{22,41}: Fix abi-depends non-determinism.
See https://github.com/haskell/cabal/issues/4728 for symptoms,
https://phabricator.haskell.org/D4159 for the base of the fix.
2018-03-26 10:09:00 -04:00
Tuomas Tynkkynen
a6425fc66d ghc: Disable on AArch64
For some reason compiling the proper GHC from the binary one eventually
segfaults at some point.

Since it has never worked, just disable it and investigate later.
2018-03-24 16:11:31 +02:00
Peter Simons
993bcbb225 ghc: drop all compiler versions prior to 7.10.3
None of these old compilers are used anywhere in Nixpkgs, and keeping those
builds working in the face of regular updates of GCC, binutils, and whatnot is
too much effort for no obvious benefit.
2018-03-17 08:21:22 +01:00
Kosyrev Serge
0145a00d9c
ghc841: fix for the bump-broken integer-gmp: m4 is now a dependency 2018-03-08 04:18:09 +03:00
Kosyrev Serge
6be7d94914
ghc841: bump to 8.4.1-release 2018-03-08 04:18:09 +03:00
Peter Simons
ab7a07f73b
Merge pull request #35321 from ElvishJerricco/fix-haskell-compiler-name-version
Fix haskellCompilerName version.
2018-02-25 19:59:51 +01:00
Kosyrev Serge
624366d407
ghc841: bump to 20180224 2018-02-25 06:59:16 +03:00
Will Fancher
a9646b39cf Fix haskellCompilerName version.
This matters for `callCabal2nix`, when the cabal file has something
like `if impl(ghc >= 7.7)`
2018-02-22 03:11:25 -05:00
Shea Levy
7ac6c77323 ghc: Make deterministic profiling patches opt-in.
The patch changes some pieces of the exposed API, so we can't have our
default GHC changed in this way.
2018-02-10 18:10:44 +01:00
Shea Levy
69b0bc1bdf ghc 8.{2,4}: Add patches for deterministic profiling symbols.
These are taken from https://phabricator.haskell.org/D4388 (which is
against HEAD) and fix an inconsistency when building profiling
libraries on multiple machines that leads to linking failure.
2018-02-10 18:05:29 +01:00
Kosyrev Serge
6419664793
ghc841: bump to alpha3 2018-02-06 21:58:32 +03:00
Peter Simons
72141a630b ghc-8.4.1: un-revert "update to 8.4.1-alpha2"
This commit undoes the revert from a74b0e717d9156c61264e15a1e7fed680a5e4b31.
See https://github.com/NixOS/nixpkgs/issues/34229 and
https://github.com/NixOS/nixpkgs/pull/34232 for further details about why this
build seemed broken.
2018-01-29 13:01:46 +01:00
Peter Simons
a74b0e717d ghc-8.4.1: revert "update to 8.4.1-alpha2"
This reverts commit d23285684611fa0901c569cd9579688e55a19899 from
https://github.com/NixOS/nixpkgs/pull/34172. The new version does not compile:
https://nix-cache.s3.amazonaws.com/log/zhxjgmilqh5bnp16rv0fx4b6bcrhxf2a-ghc-61db0b8.drv.
2018-01-26 13:01:12 +01:00
Peter Simons
a45dfaa335 Drop broken Haskell compilers.
- ghc versions 6.10.4, 6.12.3, and 7.2.2 are broken, and 6.10.2-binary is no
   longer necessary after those versions have been dropped

 - halvm version 2.4.0 hasn't compiled in a long time

 - uhc version 1.1.9.4 hasn't compiled in a long time
2018-01-26 13:01:11 +01:00
Kosyrev Serge
d232856846
ghc841: update to 8.4.1-alpha2 2018-01-23 01:40:38 +03:00
Ben Gamari
bf687907d7 haskell lib: Make Cabal compiler names explicit
Cabal2nix expects a --compiler flag that contains a Cabal Compiler description.
We used to use the compiler's derivation name for this, but this breaks when
cross-compiling due to the target suffix. Instead we add an explicit
haskellCompilerName attribute to Haskell compiler derivations.
2018-01-21 23:31:05 -05:00
John Ericson
8560c025bc ghc 8.4.1: Reformat to move rev into src 2018-01-21 23:31:04 -05:00
John Ericson
a2516efb26 ghcHEAD: Bump version ghc-8.5.20180118 2018-01-21 23:31:04 -05:00
John Ericson
23c29ebc90 ghc 8.2.2: Add bgamari's STRIP detection fix 2018-01-21 23:31:04 -05:00
John Ericson
60f45a2af1 ghc 8.0.2: Patch Cabal so --extra-*-dirs works right 2018-01-21 23:31:04 -05:00
Ben Gamari
af03b7746a ghc 8.2.2 & head: Work around ARM bugs in BFD ld by using gold 2018-01-21 23:31:03 -05:00
Ryan Trinkle
bd0de2f1cb ghc: Fix env vars and configure flags to be weird
GHC currently handles this stuff in a quite non-standard way, basically
taking prog var `FOO` to mean `FOO_FROM_TARGET`. It's because it
(wrongly) thinks from stage 2's perspective.
2018-01-21 23:31:03 -05:00
John Ericson
e760de8108 ghc: Predicate libiconv on not using glibc instead of Darwin 2018-01-21 23:31:03 -05:00
John Ericson
398ac54593 ghc: Fix cross compilation to work with new system 2018-01-21 23:31:03 -05:00
John Ericson
bc16cfc009 ghc: Remove old cross work
That way the next commit can apply a similar diff to each GHC.
2018-01-21 23:31:02 -05:00
John Ericson
0eb3acaf38 ghc: echo -n mk/build.mk to avoid extra line 2018-01-21 23:27:38 -05:00
John Ericson
5a6b6b4ac5 ghc: Normalize derivations a bit before cross
These changes will affect the final derivation
2018-01-21 23:27:38 -05:00
Kosyrev Serge
8d027c1113
ghc841: GHC 8.4.1: nix-shell -p haskell.compiler.ghc841 2018-01-19 16:06:02 +03:00
Drew Hess
e4f3fe051e ghc, haskell-modules: ARM cross build fixes.
As requested in #33405.
2018-01-11 10:45:44 -05:00
Drew Hess
8ad5937f90
ghc: 8.2.2 on armv7l doesn't build without explicit use of ld.gold. 2018-01-03 15:59:07 -08:00
Drew Hess
461139e3fa
ghc: ARM builds have an LLVM runtime dependency. 2018-01-03 15:57:23 -08:00
John Ericson
3fb5fd0060 ghc: Normalize derivations in hash-preserving ways 2018-01-03 17:04:19 -05:00
John Ericson
0df29e1259 ghc: Noramlized source URLs 2018-01-03 17:04:19 -05:00