Hadrian: merge sections in profiling _p.a to .p_o for ghci
authorZejun Wu <watashi@fb.com>
Sun, 6 Jan 2019 12:40:05 +0000 (07:40 -0500)
committerBen Gamari <ben@smart-cactus.org>
Sun, 6 Jan 2019 12:40:11 +0000 (07:40 -0500)
commit9ea8dcea3e5ba96808ef91028e0efde9d31f7272
tree5625c92a5d885083eef3634797f13d2bf25f6b65
parentbbd58fb5f029b632e2d8977518723feee0737ba7
Hadrian: merge sections in profiling _p.a to .p_o for ghci

This is the hadrain version of {D5169}

* We build squashed .o and .p_o for ghci when `dynamicGhcPrograms` is
`False`
* We no longer build them for rts as ghci never loads it

we need https://github.com/haskell/cabal/pull/5592 for cabal to copy
the built `.p_o` file.

Test Plan:
```
$ grep dynamicGhc hadrian/UserSettings.hs
  , dynamicGhcPrograms = return False
$ touch ...
$ hadrian/build.sh --flavour=user -j --digest-or
$ find _build/stage1/libraries/ -name 'HS*-*.*o' | wc
     62      62    3664
```

```
$ grep -C3 dynamicGhc hadrian/UserSettings.hs
userFlavour :: Flavour
userFlavour = performanceFlavour
  { name = "user"
  , dynamicGhcPrograms = return False
  }
$ hadrian/build.sh -j --flavour=user test --verbose
Unexpected results from:
TEST="T3807 T9208 T9293 annth_make ghci057 haddock.Cabal haddock.base
haddock.compiler"

SUMMARY for test run started at Wed Dec  5 17:45:39 2018 PST
 0:03:16 spent to go through
    6708 total tests, which gave rise to
   26015 test cases, of which
   19290 were skipped

      29 had missing libraries
    6600 expected passes
      88 expected failures

       3 caused framework failures
       0 caused framework warnings
       1 unexpected passes
       7 unexpected failures
       0 unexpected stat failures
$ find _build -name 'HSbase*.*o'
_build/stage1/lib/x86_64-linux-ghc-8.7.20181204/base-4.12.0.0/HSbase-4.1
2.0.0.o
_build/stage1/lib/x86_64-linux-ghc-8.7.20181204/base-4.12.0.0/HSbase-4.1
2.0.0.p_o
_build/stage1/libraries/base/build/HSbase-4.12.0.0.o
_build/stage1/libraries/base/build/HSbase-4.12.0.0.p_o
```

Reviewers: bgamari, simonmar, snowleopard

Reviewed By: snowleopard

Subscribers: alpmestan, rwbarton, carter

GHC Trac Issues: #15779

Differential Revision: https://phabricator.haskell.org/D5270
hadrian/src/Context.hs
hadrian/src/Rules/Library.hs
hadrian/src/Settings/Builders/Cabal.hs
hadrian/src/Utilities.hs