Commit graph

576 commits

Author SHA1 Message Date
Jan Malakhovski ee5660e7f6 haskell.compiler.ghc802: disable format hardening, else tests will fail 2018-05-29 07:35:39 +00:00
Jan Malakhovski ad35019501 Merge branch 'master' into staging
Fixed conflicts:
- lib/systems/for-meta.nix: in favor of staging
- pkgs/os-specific/darwin/xcode/default.nix: in favor of master
2018-05-26 00:20:17 +00:00
Robin Gloster 33b8830a85
ghc: disable format hardening 2018-05-24 03:42:43 +02:00
Moritz Angermann fe1eec9e24 ghc 8.4.2, head: Drop libiconv on windows.
nixpkgs#37012 and  nixpkgs#37707 introduces the setup-hooks for libiconv, which inject `-liconv` into the `NIX_LDFLAGS`. This breaks horribly on windows where the linker end up having no idea how to linke `-liconv`. The configure.ac file specifically ignores libiconv on windows.
2018-05-23 10:41:17 -04:00
John Ericson c7458ded5c ghc 8.4.2, head: Adjust enableShared enableTerminfo for windows 2018-05-23 10:41:17 -04:00
Moritz Angermann 10b76a4cab ghc: paxmark all unwraped executables across the board
Shell glob works even as the exact set of executable (filenames) varries
beween configuations. Need to skip non ELFs (e.g. shell scripts),
however.
2018-05-23 10:41:15 -04:00
John Ericson 1978115c3b ghc: Handle flavors better 2018-05-23 10:27:42 -04:00
John Ericson 9ce15ea60c ghc: Normalize derivations 2018-05-23 10:27:42 -04:00
John Ericson 18742471af Merge remote-tracking branch 'upstream/master' into staging
Use newer vagrant from master
2018-05-23 09:40:37 -04:00
Peter Simons 5db3a9df5e
Revert "ghc, haskell infra: #40642 direct to master" 2018-05-23 09:36:16 +02:00
Peter Simons 0e35858252
Merge pull request #40929 from obsidiansystems/cross-ghc-for-master
ghc, haskell infra: #40642 direct to master
2018-05-22 20:37:45 +02:00
Tuomas Tynkkynen f9feacfc7c Merge remote-tracking branch 'upstream/master' into staging 2018-05-22 17:48:29 +03:00
Moritz Angermann 4b2eceaa35 ghc: fix dylib load command limits in compiler version 8.x
See https://phabricator.haskell.org/D4714 for the full details.
This will be part of ghc 8.6.

Closes https://github.com/NixOS/nixpkgs/pull/40877.
2018-05-22 10:32:17 +02:00
John Ericson d6ecbbe921
Merge branch 'staging' into feature/clean-ghc 2018-05-21 17:43:30 -04:00
Moritz Angermann 4b48094285 ghc 8.4.2, head: Drop libiconv on windows.
nixpkgs#37012 and  nixpkgs#37707 introduces the setup-hooks for libiconv, which inject `-liconv` into the `NIX_LDFLAGS`. This breaks horribly on windows where the linker end up having no idea how to linke `-liconv`. The configure.ac file specifically ignores libiconv on windows.
2018-05-21 15:11:12 -04:00
John Ericson 03602f8162 ghc 8.4.2, head: Adjust enableShared enableTerminfo for windows 2018-05-21 15:11:12 -04:00
Moritz Angermann 6af0c192d1 ghc: paxmark all unwraped executables across the board
Shell glob works even as the exact set of executable (filenames) varries
beween configuations.
2018-05-21 15:11:12 -04:00
John Ericson 8d2ce113d5 ghc: Handle flavors better 2018-05-21 15:11:12 -04:00
John Ericson 6f2f081b90 ghc: Normalize derivations 2018-05-21 15:11:12 -04:00
Vladimír Čunát 392e6de7d0
Merge branch 'master' into staging 2018-05-20 13:20:53 +02:00
Jack Cummings 2fe842a200 fix ghc bootstrap on non-nixos nonstd-storepath
Something goes amiss in the configurePhase and binaries start picking up
system binaries and everything falls apart. Patch the configure script
to use a bourne shell out of the store, and things are happier.

Closes https://github.com/NixOS/nixpkgs/pull/40691.
2018-05-19 22:24:31 +02:00
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 ba52ae5048)
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 a74b0e717d.
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 d232856846 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
John Ericson faa4b45a1e ghc 8.2.2, head: Inline common* bindings
Cross case purposely changed as it will be rewritten anyways. But no
native hashes should be changed.
2018-01-02 21:00:23 -05:00
John Ericson a5cc983c45 ghc: Clean up, and add passthru.targetPrefix, in preparation for cross
No hashes should be changed.
2018-01-02 19:50:38 -05:00
Drew Hess 1e137832b8
ghc: add ARM variants to meta.platforms for new binary versions. 2018-01-02 03:57:12 -08:00
Drew Hess 9c91d0d63c
ghc: fix armv7l-linux support in new binary versions. 2018-01-02 03:36:42 -08:00
Peter Simons af6f4f0849 ghc: drop obsolete version 7.8.3
We have the newer minor release 7.8.4.
2017-12-30 13:51:07 +01:00
Domen Kožar 695a026f5f
ghc: wire up new binary ghc for bootstrapping
This change brings development feedback loop improvement
from a couple of ghc rebuilds to only one for working on generic
builder.

To completely eliminate the rebuilds, use two nixpkgs clones
and point boot packages to the unmodified one.
2017-12-28 15:11:50 +00:00
Peter Simons 63a9142279
Merge pull request #33054 from NixOS/ghc-prebuilt
ghc prebuilt: Add 7.8.4, 7.10.3 and 8.2.1, and make consistent style
2017-12-27 21:31:56 +01:00
Peter Simons e98e7fb329 haskell: drop obsolete GHC version 7.10.2; we have 7.10.3 2017-12-26 11:35:26 +01:00
Domen Kožar bd7c8ea255
ghc binaries: compile on darwin 2017-12-25 22:56:32 +00:00
Domen Kožar e4c05ae25a
ghc binaries: fix eval 2017-12-25 18:16:23 +00:00
Domen Kožar 398061dfc5
prebuilt ghcs: correctly handle rpaths 2017-12-25 17:19:43 +00:00
John Ericson ed93d2d645
ghc-{7.8.4, 7.10.3, 8.2.1}-binary: Init 2017-12-25 16:36:47 +00:00
John Ericson b6867f71f4
ghc prebuilt: Simplify and harden Darwin fixup
- Patch all executables and libraries, while skipping scripts. Base at
   least uses libiconv, so should need this too---I suspect it wasn't a
   problem before as we got away with the immpurity.

 - Rather than hardcoding the symlinks to add, do one per mach-o as
   needed

TEMP no -L no script
2017-12-25 16:36:47 +00:00
John Ericson 150255e318
ghc binary: Fix interpreter than patch RPATH
The newer to-be-added binaries have relative RPATHs that we'll break if
we try to `patchelf` before installation. We instead us LD_LOAD_LIBRARY
during the installation, which avoids needing to change the RPATH
temporarily.
2017-12-25 16:36:46 +00:00
John Ericson 26a46295eb
ghc prebuilt: Clean up derivations ever so slightly
These changes do break hashes, but are good to have everywhere for
consistency. Plus, changing the bootstrap causes a Haskell mass rebuild
anyways.
2017-12-25 16:36:43 +00:00
Peter Simons dbc55c11f0 ghc: drop 8.2.1 version; we have 8.2.2 already 2017-12-20 09:17:46 +01:00
Matthew Pickering e7a327da5c ghcHEAD: 8.3.20170808 -> 8.5.20171208 2017-12-09 11:04:31 +00:00
Peter Simons 8d8061ec20
Revert "Revive multiple outputs for Haskell packages." 2017-12-05 09:36:08 +01:00
Peter Simons 7993e8790f
Merge pull request #32112 from nc6/hask-split-out
Revive multiple outputs for Haskell packages.
2017-12-04 12:36:45 +01:00
Peter Simons b58cb3fa28 ghc-8.2.2: drop obsolete gold linker patch
Pointed out by @basvandijk in b1a0f91afe.
2017-11-29 10:47:08 +01:00
Nicholas Clarke d90165c7db Revert "Revert "Merge pull request #27209 from nc6/nc/haskell-multiple-out""
This reverts commit 89f5d52cf4.
2017-11-27 16:05:22 +00:00
Vaibhav Sagar b1a0f91afe ghc: 8.2.2-rc2 -> 8.2.2 2017-11-22 14:38:54 +08:00
Peter Simons e876aa4db9 ghc: bump 8.2.2 pre-release to rc3 2017-11-11 17:38:26 +01:00
John Ericson 0101856765
Merge pull request #30549 from obsidiansystems/bintools
treewide: Introduce stdenv.cc.bintools
2017-11-08 14:20:48 -05:00
John Ericson 4d4f94cde4 treewide: Depend on targetPackages.stdenv.cc.bintools instead of binutils directly
One should do this when needed executables at run time. It is more
honest and cross-friendly than refering to binutils directly, if one
neeeds the default binary tools for the target platform, rather than
binutils in particular.
2017-11-05 17:10:53 -05:00
Peter Simons a09460b827 ghc: add 8.2.2-rc2 2017-11-04 20:02:31 +01:00
John Ericson 2d52156793 ghc prebuilt: Fix indentation
Doing this separately so the other commits are more readable
2017-09-23 12:58:07 -04:00
John Ericson a8ef3f6742 ghc prebuilt: Clean up syntax, without changes hashes
If I'm going to make a bunch more of these, I think it's a good idea to
make them more uniform first.
2017-09-23 12:58:07 -04:00
John Ericson 17de435533 ghc prebuilt: Don't hardcode the version in a few more places
This removes noise in the diff, making creating new versions easier. No
hashes should be changed.
2017-09-22 19:53:29 -04:00