diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index e363e90854ad..6c2af33c8c9e 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -929,10 +929,12 @@ for this to work. Haskell dependencies, but will still link dynamically against libc, GMP and other system library dependencies. - If the library being built or its dependencies use their Cabal-generated + If a library or its dependencies use their Cabal-generated `Paths_*` module, this may not work as well if GHC's dead code elimination is unable to remove the references to the dependency's store path that module - contains. (See [nixpkgs#164630][164630] for more information.) + contains. + As a consequence, an unused reference may be created from the static binary to such a _library_ store path. + (See [nixpkgs#164630][164630] for more information.) Importing the `Paths_*` module may cause builds to fail with this message: diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 3e74c61d25a7..785ba249099b 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -117,20 +117,8 @@ in # This is used by `haskell.lib.justStaticExecutables` to help prevent static # Haskell binaries from having erroneous dependencies on GHC. # - # Generated `Paths_*` modules include paths for the runtime library - # directory (and similar) of the package being built. If the `Paths_*` - # module is imported, this creates a dependency from the static binary - # being built to the _library_ being built (which is dynamically linked - # and depends on the GHC used to build it). - # - # To avoid this: - # 1. Build the impacted derivation. - # 2. Run `strings` on the built binary of the impacted derivation to - # locate the store paths it depends on. - # 3. Add `remove-references-to -t ${bad-store-path-in-binary}` to the - # impacted derivation's `postInstall`. - # - # See: https://github.com/NixOS/nixpkgs/issues/164630 + # See https://nixos.org/manual/nixpkgs/unstable/#haskell-packaging-helpers + # or its source doc/languages-frameworks/haskell.section.md , disallowGhcReference ? false , # Cabal 3.8 which is shipped by default for GHC >= 9.3 always calls # `pkg-config --libs --static` as part of the configure step. This requires