mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-09-29 07:32:58 +00:00
doc/haskell: Dedup and edit justStaticExecutables
Make sure all relevant info is in the user manual and avoid duplication of efforts, or things going out of sync.
This commit is contained in:
parent
1ed7eb0f9a
commit
299bd6aa7c
@ -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:
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user