From b1e3d0737a1a6ddd831cf421e7d9f605f2506a2f Mon Sep 17 00:00:00 2001 From: Matthew Pickering <matthewtpickering@gmail.com> Date: Sat, 6 Jul 2019 10:02:03 +0100 Subject: [PATCH] ghc: Don't strip compilers To test this I built a version of the compiler with `dontStrip = True` and the vanilla version. The size of the result is both 1.4gb which indicates that the stripping doesn't do anything meaningful. Not stripping means that the debug rts is properly packages as it contains DWARF information and unused debugging symbols. Fixes #63511 --- pkgs/development/compilers/ghc/8.2.2.nix | 4 ++++ pkgs/development/compilers/ghc/8.4.4.nix | 4 ++++ pkgs/development/compilers/ghc/8.6.4.nix | 4 ++++ pkgs/development/compilers/ghc/8.6.5.nix | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix index a88cf9c0116..e1116e90eb9 100644 --- a/pkgs/development/compilers/ghc/8.2.2.nix +++ b/pkgs/development/compilers/ghc/8.2.2.nix @@ -230,6 +230,10 @@ stdenv.mkDerivation (rec { # that in turn causes GHCi to abort stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + # See #63511 - the only unstripped file is the debug rts which isn't meant to + # be stripped. + dontStrip = true; + checkTarget = "test"; doCheck = false; # fails with "testsuite/tests: No such file or directory. Stop." diff --git a/pkgs/development/compilers/ghc/8.4.4.nix b/pkgs/development/compilers/ghc/8.4.4.nix index da72c351ec6..06e10244590 100644 --- a/pkgs/development/compilers/ghc/8.4.4.nix +++ b/pkgs/development/compilers/ghc/8.4.4.nix @@ -207,6 +207,10 @@ stdenv.mkDerivation (rec { # that in turn causes GHCi to abort stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + # See #63511 - the only unstripped file is the debug rts which isn't meant to + # be stripped. + dontStrip = true; + checkTarget = "test"; hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie"; diff --git a/pkgs/development/compilers/ghc/8.6.4.nix b/pkgs/development/compilers/ghc/8.6.4.nix index 54c53691574..34c4ec85257 100644 --- a/pkgs/development/compilers/ghc/8.6.4.nix +++ b/pkgs/development/compilers/ghc/8.6.4.nix @@ -206,6 +206,10 @@ stdenv.mkDerivation (rec { # that in turn causes GHCi to abort stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + # See #63511 - the only unstripped file is the debug rts which isn't meant to + # be stripped. + dontStrip = true; + checkTarget = "test"; hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie"; diff --git a/pkgs/development/compilers/ghc/8.6.5.nix b/pkgs/development/compilers/ghc/8.6.5.nix index bc45540036d..fa8d9d8b916 100644 --- a/pkgs/development/compilers/ghc/8.6.5.nix +++ b/pkgs/development/compilers/ghc/8.6.5.nix @@ -206,6 +206,10 @@ stdenv.mkDerivation (rec { # that in turn causes GHCi to abort stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + # See #63511 - the only unstripped file is the debug rts which isn't meant to + # be stripped. + dontStrip = true; + checkTarget = "test"; hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";