let no_hs_main = dopt Opt_NoHsMain dflags
let main_lib | no_hs_main = []
| otherwise = [ "-lHSrtsmain" ]
- rtsEnabledLib <- if dopt Opt_RtsOptsEnabled dflags
+ rtsEnabledObj <- if dopt Opt_RtsOptsEnabled dflags
then do fn <- mkExtraCObj dflags
["#include \"Rts.h\"",
"const rtsBool rtsOptsEnabled = rtsTrue;"]
return [fn]
else return []
+ rtsOptsObj <- case rtsOpts dflags of
+ Just opts ->
+ do fn <- mkExtraCObj dflags
+ -- We assume that the Haskell "show" does
+ -- the right thing here
+ ["char *ghc_rts_opts = " ++ show opts ++ ";"]
+ return [fn]
+ Nothing -> return []
pkg_link_opts <- getPackageLinkOpts dflags dep_packages
#endif
++ pkg_lib_path_opts
++ main_lib
- ++ rtsEnabledLib
+ ++ rtsEnabledObj
+ ++ rtsOptsObj
++ pkg_link_opts
#ifdef darwin_TARGET_OS
++ pkg_framework_path_opts