summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-03-18 15:54:35 -0400
committerBen Gamari <ben@smart-cactus.org>2020-03-18 20:33:09 +0000
commit935ee7eec1639537b7200bf322390676f4701177 (patch)
tree00eeaf526ddbb0c3fccc5bb5b25574bb4fc3b636
parent9b21b708f32df647d260a712d1e9ca5e2d0e56e4 (diff)
downloadhaskell-935ee7eec1639537b7200bf322390676f4701177.tar.gz
Enable -fexpose-all-symbols when debug level is set
-rw-r--r--compiler/GHC/Driver/Session.hs11
-rw-r--r--docs/users_guide/debug-info.rst1
2 files changed, 9 insertions, 3 deletions
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index 152a904640..4471dddd11 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -3915,8 +3915,7 @@ defaultFlags settings
Opt_RPath,
Opt_SharedImplib,
Opt_SimplPreInlining,
- Opt_VersionMacros,
- Opt_ExposeAllSymbols
+ Opt_VersionMacros
]
++ [f | (ns,f) <- optLevelFlags, 0 `elem` ns]
@@ -4502,7 +4501,13 @@ setVerbosity :: Maybe Int -> DynP ()
setVerbosity mb_n = upd (\dfs -> dfs{ verbosity = mb_n `orElse` 3 })
setDebugLevel :: Maybe Int -> DynP ()
-setDebugLevel mb_n = upd (\dfs -> dfs{ debugLevel = mb_n `orElse` 2 })
+setDebugLevel mb_n =
+ upd (\dfs -> exposeSyms $ dfs{ debugLevel = n })
+ where
+ n = mb_n `orElse` 2
+ exposeSyms
+ | n > 0 = setGeneralFlag' Opt_ExposeAllSymbols
+ | otherwise = id
data PkgDbRef
= GlobalPkgDb
diff --git a/docs/users_guide/debug-info.rst b/docs/users_guide/debug-info.rst
index 351446fa58..4bdeb9fade 100644
--- a/docs/users_guide/debug-info.rst
+++ b/docs/users_guide/debug-info.rst
@@ -14,6 +14,7 @@ useable by most UNIX debugging tools.
:category: debugging
:since: 7.10, numeric levels since 8.0
+ :implies: :ghc-flag:`-fexpose-all-symbols`
Emit debug information in object code. Currently only DWARF debug
information is supported on x86-64 and i386. Currently debug levels 0