RTS linker: don't crash early when not finding extra-libraries
authorKyrill Briantsev <kyrab@mail.ru>
Tue, 11 Dec 2018 18:45:10 +0000 (13:45 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 11 Dec 2018 19:23:22 +0000 (14:23 -0500)
commit21339c9f6bfb952a3a0b8de5ee649d46dfbf0d9b
treefd469e0492b50158a46bc4bc4bc973e7f55ff516
parentd549c081f19925dd0e4c70d45bded0497c649d49
RTS linker: don't crash early when not finding extra-libraries

Allow GHCi to not crash when no assumed DLL is found in the standard
location.  E.g. when loading the package built "dyn" way, we may well
have the package's DLL around, and it's the system linker which loads
necessary dependencies.

Why does this (partially) fix #11042? It's because we often (and when
having packages built `dyn` way -- almost always) don't need to load
anything recorded in the `extra-libraries` stanza, since if the package
DLL exists, GHCi linker simply calls the system linker (via `dlopen`/
`LoadLibrary` APIs) to load it and doesn't bother to load package
prelinked object file (if any) or package static library.

Thus, all "regular" (with no fancy low-level package content
manipulation) packages built "dyn" way should be OK after this fix.

Reviewers: hvr, bgamari, int-index

Reviewed By: bgamari, int-index

Subscribers: Phyx, int-index, rwbarton, carter

GHC Trac Issues: #11042

Differential Revision: https://phabricator.haskell.org/D5170
compiler/ghci/Linker.hs
compiler/main/DynFlags.hs
docs/users_guide/using-warnings.rst