diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-04-11 13:23:22 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-04-27 10:06:07 -0400 |
commit | ee11d04363ed8aa1d73a0cda16076a39e668d163 (patch) | |
tree | 8cb2853ac6cd99442f7ff7c4e4f979e7674301e4 /compiler/GHC/Unit | |
parent | 318e0005b5a3a522854ced7162f3eee95f964bd9 (diff) | |
download | haskell-ee11d04363ed8aa1d73a0cda16076a39e668d163.tar.gz |
Enable eventlog support in all ways by default
Here we deprecate the eventlogging RTS ways and instead enable eventlog
support in the remaining ways. This simplifies packaging and reduces GHC
compilation times (as we can eliminate two whole compilations of the RTS)
while simplifying the end-user story. The trade-off is a small increase
in binary sizes in the case that the user does not want eventlogging
support, but we think that this is a fine trade-off.
This also revealed a latent RTS bug: some files which included `Cmm.h`
also assumed that it defined various macros which were in fact defined
by `Config.h`, which `Cmm.h` did not include. Fixing this in turn
revealed that `StgMiscClosures.cmm` failed to import various spinlock
statistics counters, as evidenced by the failed unregisterised build.
Closes #18948.
Diffstat (limited to 'compiler/GHC/Unit')
-rw-r--r-- | compiler/GHC/Unit/Info.hs | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/compiler/GHC/Unit/Info.hs b/compiler/GHC/Unit/Info.hs index db00a9b91a..41142f653f 100644 --- a/compiler/GHC/Unit/Info.hs +++ b/compiler/GHC/Unit/Info.hs @@ -211,14 +211,8 @@ unitHsLibs namever ways0 p = map (mkDynName . addSuffix . ST.unpack) (unitLibrar -- the name of a shared library is libHSfoo-ghc<version>.so -- we leave out the _dyn, because it is superfluous - -- debug and profiled RTSs include support for -eventlog - ways2 | ways1 `hasWay` WayDebug || ways1 `hasWay` WayProf - = removeWay WayTracing ways1 - | otherwise - = ways1 - - tag = waysTag (fullWays ways2) - rts_tag = waysTag ways2 + tag = waysTag (fullWays ways1) + rts_tag = waysTag ways1 mkDynName x | not (ways0 `hasWay` WayDyn) = x |