= do let dflags0 = hsc_dflags hsc_env
src_opts <- liftIO $ getOptionsFromFile dflags0 input_fn
(dflags, unhandled_flags, warns)
- <- liftIO $ parseDynamicFlags dflags0 src_opts
+ <- liftIO $ parseDynamicNoPackageFlags dflags0 src_opts
liftIO $ handleFlagWarnings dflags warns -- XXX: may exit the program
liftIO $ checkProcessArgsResult unhandled_flags -- XXX: may throw program error
Wrapped wrapmode ->
do
let (o_base, o_ext) = splitExtension input_fn
- let wrapped_executable | o_ext == "exe" = (o_base ++ "_real") <.> o_ext
- | otherwise = input_fn ++ "_real"
+ let wrapped_executable | o_ext == "exe" = (o_base ++ ".dyn") <.> o_ext
+ | otherwise = input_fn ++ ".dyn"
behaviour <- wrapper_behaviour dflags wrapmode dep_packages
-- THINKME isn't this possible to do a bit nicer?
-- 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