| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
GHC.SysTools.Tasks
Contents
Synopsis
- runUnlit :: DynFlags -> [Option] -> IO ()
- runCpp :: DynFlags -> [Option] -> IO ()
- runPp :: DynFlags -> [Option] -> IO ()
- runCc :: Maybe ForeignSrcLang -> DynFlags -> [Option] -> IO ()
- isContainedIn :: String -> String -> Bool
- askLd :: DynFlags -> [Option] -> IO String
- runAs :: DynFlags -> [Option] -> IO ()
- runLlvmOpt :: DynFlags -> [Option] -> IO ()
- runLlvmLlc :: DynFlags -> [Option] -> IO ()
- runClang :: DynFlags -> [Option] -> IO ()
- figureLlvmVersion :: DynFlags -> IO (Maybe LlvmVersion)
- runInjectRPaths :: DynFlags -> [FilePath] -> FilePath -> IO ()
- get_rpath :: String -> Maybe FilePath
- rpath_parser :: ReadP FilePath
- runLink :: DynFlags -> [Option] -> IO ()
- runMergeObjects :: DynFlags -> [Option] -> IO ()
- runLibtool :: DynFlags -> [Option] -> IO ()
- runAr :: DynFlags -> Maybe FilePath -> [Option] -> IO ()
- askOtool :: DynFlags -> Maybe FilePath -> [Option] -> IO String
- runInstallNameTool :: DynFlags -> [Option] -> IO ()
- runRanlib :: DynFlags -> [Option] -> IO ()
- runWindres :: DynFlags -> [Option] -> IO ()
- touch :: DynFlags -> String -> String -> IO ()
- traceToolCommand :: DynFlags -> String -> IO a -> IO a
Documentation
runCc :: Maybe ForeignSrcLang -> DynFlags -> [Option] -> IO () #
Run compiler of C-like languages and raw objects (such as gcc or clang).
isContainedIn :: String -> String -> Bool #
askLd :: DynFlags -> [Option] -> IO String #
Run the linker with some arguments and return the output
runLlvmOpt :: DynFlags -> [Option] -> IO () #
Run the LLVM Optimiser
runLlvmLlc :: DynFlags -> [Option] -> IO () #
Run the LLVM Compiler
runClang :: DynFlags -> [Option] -> IO () #
Run the clang compiler (used as an assembler for the LLVM backend on OS X as LLVM doesn't support the OS X system assembler)
figureLlvmVersion :: DynFlags -> IO (Maybe LlvmVersion) #
Figure out which version of LLVM we are running this session
runInjectRPaths :: DynFlags -> [FilePath] -> FilePath -> IO () #
On macOS we rely on the linkers -dead_strip_dylibs flag to remove unused
 libraries from the dynamic library.  We do this to reduce the number of load
 commands that end up in the dylib, and has been limited to 32K (32768) since
 macOS Sierra (10.14).
-dead_strip_dylibs does not dead strip -rpath entries, as such passing
 -l and -rpath to the linker will result in the unnecesasry libraries not
 being included in the load commands, however the -rpath entries are all
 forced to be included.  This can lead to 100s of -rpath entries being
 included when only a handful of libraries end up being truely linked.
Thus after building the library, we run a fixup phase where we inject the
 -rpath for each found library (in the given library search paths) into the
 dynamic library through -add_rpath.
See Note [Dynamic linking on macOS]
runMergeObjects :: DynFlags -> [Option] -> IO () #
runLibtool :: DynFlags -> [Option] -> IO () #
runInstallNameTool :: DynFlags -> [Option] -> IO () #
runWindres :: DynFlags -> [Option] -> IO () #
Tracing utility
traceToolCommand :: DynFlags -> String -> IO a -> IO a #
Record in the eventlog when the given tool command starts
   and finishes, prepending the given String with
   "systool:", to easily be able to collect and process
   all the systool events.
For those events to show up in the eventlog, you need
   to run GHC with -v2 or -ddump-timings.