ghci: Load static objects in batches
authorBen Gamari <ben@smart-cactus.org>
Fri, 14 Jun 2019 20:53:12 +0000 (16:53 -0400)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Sun, 23 Jun 2019 21:19:48 +0000 (17:19 -0400)
commit5a502cd1431b535a12dced0479b75c5f7dbfb01c
treedfcbc80191ab4a99572debbc2561422a43e04913
parentade3db5392d0f98cbd2e917fca926f4e08ca4fa7
ghci: Load static objects in batches

Previously in the case where GHC was dynamically linked we would load
static objects one-by-one by linking each into its own shared object and
dlopen'ing each in order. However, this meant that the link would fail
in the event that the objects had cyclic symbol dependencies.

Here we fix this by merging each "run" of static objects into a single
shared object and loading this.

Fixes #13786 for the case where GHC is dynamically linked.
compiler/ghci/Linker.hs