(dflags, unhandled_flags, warns)
<- liftIO $ parseDynamicNoPackageFlags dflags0 src_opts
liftIO $ handleFlagWarnings dflags warns -- XXX: may exit the program
- liftIO $ checkProcessArgsResult unhandled_flags -- XXX: may throw program error
+ checkProcessArgsResult unhandled_flags
if not (dopt Opt_Cpp dflags) then
-- no need to preprocess CPP, just pass input file along
m <- liftIO $ getCoreModuleName input_fn
return (Nothing, mkModuleName m, [], [])
- _ -> liftIO $ do
- buf <- hGetStringBuffer input_fn
+ _ -> do
+ buf <- liftIO $ hGetStringBuffer input_fn
(src_imps,imps,L _ mod_name) <- getImports dflags buf input_fn (basename <.> suff)
return (Just buf, mod_name, imps, src_imps)
-- because the RTS lib comes in several flavours and we want to be
-- able to pick the flavour when a binary is linked.
pkgs <- getPreloadPackagesAnd dflags dep_packages
- let pkgs_no_rts = filter ((/= rtsPackageId) . packageConfigId) pkgs
+ -- On Windows we need to link the RTS import lib as Windows does
+ -- not allow undefined symbols.
+#if !defined(mingw32_HOST_OS)
+ let pkgs_no_rts = filter ((/= rtsPackageId) . packageConfigId) pkgs
+#else
+ let pkgs_no_rts = pkgs
+#endif
let pkg_lib_paths = collectLibraryPaths pkgs_no_rts
let pkg_lib_path_opts = map ("-L"++) pkg_lib_paths