summary refs log tree commit diff
path: root/pkgs/development/compilers/ghc/8.2.2.nix
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2019-09-09 17:57:13 +0200
committerPeter Simons <simons@cryp.to>2019-09-11 10:52:04 +0200
commitf4316473d94e0e5eff2736bd24dc802e09752771 (patch)
tree71e511845e387e0c63b369ec13c1f8812fa77672 /pkgs/development/compilers/ghc/8.2.2.nix
parentf2bf25e53ae6f5ab16b0e2d82a31eddd4818e312 (diff)
downloadnixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.tar
nixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.tar.gz
nixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.tar.bz2
nixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.tar.lz
nixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.tar.xz
nixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.tar.zst
nixpkgs-f4316473d94e0e5eff2736bd24dc802e09752771.zip
ghc: compile with DWARF support by default
This allows our GHCs to build programs with DWARF debug information
when -g is passed, see https://ghc.haskell.org/trac/ghc/wiki/DWARF.

Compiling with debug symbols is off by default until GHC ticket #15960
(Using -g causes differences in generated core) is fixed.
Diffstat (limited to 'pkgs/development/compilers/ghc/8.2.2.nix')
-rw-r--r--pkgs/development/compilers/ghc/8.2.2.nix7
1 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
index a034e4ec8dd..7c13db74c4c 100644
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ b/pkgs/development/compilers/ghc/8.2.2.nix
@@ -8,6 +8,8 @@
 
 , libiconv ? null, ncurses
 
+, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
+
 , useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform)
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
@@ -69,7 +71,8 @@ let
   # Splicer will pull out correct variations
   libDeps = platform: [ ncurses ]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
-    ++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
+    ++ stdenv.lib.optional (platform.libc != "glibc") libiconv
+    ++ stdenv.lib.optional enableDwarf elfutils;
 
   toolsForTarget = [
     pkgsBuildTarget.targetPackages.stdenv.cc
@@ -203,6 +206,8 @@ stdenv.mkDerivation (rec {
   ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
     # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
     "--disable-large-address-space"
+  ] ++ stdenv.lib.optional enableDwarf [
+    "--enable-dwarf-unwind"
   ];
 
   # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.