link LinkDynLib dflags batch_attempt_linking hpt
= link' dflags batch_attempt_linking hpt
+#ifndef GHCI
-- warning suppression
link other _ _ _ = panicBadLink other
+#endif
panicBadLink :: GhcLink -> a
panicBadLink other = panic ("link: GHC not built to link this way: " ++
-- might be a hierarchical module.
createDirectoryHierarchy (takeDirectory output_fn)
+ let (md_c_flags, _) = machdepCCOpts dflags
SysTools.runAs dflags
(map SysTools.Option as_opts
++ [ SysTools.Option ("-I" ++ p) | p <- cmdline_include_paths ]
, SysTools.FileOption "" input_fn
, SysTools.Option "-o"
, SysTools.FileOption "" output_fn
- ])
+ ]
+ ++ map SysTools.Option md_c_flags)
return (StopLn, dflags, maybe_loc, output_fn)
split_obj n = split_odir </>
takeFileName base_o ++ "__" ++ show n <.> osuf
+ let (md_c_flags, _) = machdepCCOpts dflags
let assemble_file n
= SysTools.runAs dflags
(map SysTools.Option as_opts ++
, SysTools.Option "-o"
, SysTools.FileOption "" (split_obj n)
, SysTools.FileOption "" (split_s n)
- ])
+ ]
+ ++ map SysTools.Option md_c_flags)
mapM_ assemble_file [1..n]
SysTools.Option "-Wl,-r",
SysTools.Option ld_x_flag,
SysTools.Option "-o",
- SysTools.FileOption "" output_fn ] ++ args)
+ SysTools.FileOption "" output_fn ]
+ ++ map SysTools.Option md_c_flags
+ ++ args)
ld_x_flag | null cLD_X = ""
| otherwise = "-Wl,-x"