diff options
| author | Domen Kožar <domen@dev.si> | 2017-09-01 16:49:50 +0200 |
|---|---|---|
| committer | Domen Kožar <domen@dev.si> | 2017-09-01 16:56:02 +0200 |
| commit | d6c1b46a632ebe7e490ea26e9dc2978ce55d72e1 (patch) | |
| tree | d8600c19f45708b41abc2e0fd8fb69db7d16e8df | |
| parent | Merge pull request #28825 from disassembler/crrcsim (diff) | |
| download | nixpkgs-origin/haskell-dwarf-debugging.tar.gz | |
haskell: add combinator to enable DWARF debuggingorigin/haskell-dwarf-debugging
Tested using:
$ cat test-strip.nix
with (import ./. {});
with haskell.lib;
haskell.packages.ghc802.override {
overrides = self: super: {
microlens = enableDWARFDebugging super.microlens;
};
}
$ nix-build -A microlens test-strip.nix
$ objdump -t <path-to-so-file>
| -rw-r--r-- | pkgs/development/haskell-modules/lib.nix | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix index 6da19794f6f4..48110cffabf8 100644 --- a/pkgs/development/haskell-modules/lib.nix +++ b/pkgs/development/haskell-modules/lib.nix @@ -73,6 +73,17 @@ rec { disableHardening = drv: flags: overrideCabal drv (drv: { hardeningDisable = flags; }); + # Controls if Nix should strip the binary files (removes debug symbols) + doStrip = drv: overrideCabal drv (drv: { dontStrip = false; }); + dontStrip = drv: overrideCabal drv (drv: { dontStrip = true; }); + + # Useful for debugging segfaults with gdb. + # -g: enables debugging symbols + # --disable-*-stripping: tell GHC not to strip resulting binaries + # dontStrip: see above + enableDWARFDebugging = drv: + appendConfigureFlag (dontStrip drv) "--ghc-options=-g --disable-executable-stripping --disable-library-stripping"; + sdistTarball = pkg: lib.overrideDerivation pkg (drv: { name = "${drv.pname}-source-${drv.version}"; # Since we disable the haddock phase, we also need to override the |
