diff options
author | mrkun <mrgutkun@gmail.com> | 2022-11-29 17:52:05 +0300 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-12-06 15:46:38 -0500 |
commit | aaaaa79b9b381bb6697a90ff460d2d520152505e (patch) | |
tree | 697c0f56531cca7c57b3038ba9729b3f6d11dacc | |
parent | 21d66db13291b09ca9a7c3d1a6ca64bdc7fd1a7a (diff) | |
download | haskell-aaaaa79b9b381bb6697a90ff460d2d520152505e.tar.gz |
Push DynFlags out of askOtool
-rw-r--r-- | compiler/GHC/Driver/Session.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/Linker/MacOS.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/SysTools/Tasks.hs | 6 |
3 files changed, 6 insertions, 8 deletions
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs index 91157e9efa..a0c371f76c 100644 --- a/compiler/GHC/Driver/Session.hs +++ b/compiler/GHC/Driver/Session.hs @@ -130,7 +130,7 @@ module GHC.Driver.Session ( versionedAppDir, versionedFilePath, extraGccViaCFlags, globalPackageDatabasePath, pgm_L, pgm_P, pgm_F, pgm_c, pgm_cxx, pgm_a, pgm_l, pgm_lm, pgm_dll, pgm_T, - pgm_windres, pgm_ar, pgm_otool, + pgm_windres, pgm_ar, pgm_ranlib, pgm_lo, pgm_lc, pgm_lcc, pgm_i, opt_L, opt_P, opt_F, opt_c, opt_cxx, opt_a, opt_l, opt_lm, opt_i, opt_P_signature, @@ -833,8 +833,6 @@ pgm_lcc :: DynFlags -> (String,[Option]) pgm_lcc dflags = toolSettings_pgm_lcc $ toolSettings dflags pgm_ar :: DynFlags -> String pgm_ar dflags = toolSettings_pgm_ar $ toolSettings dflags -pgm_otool :: DynFlags -> String -pgm_otool dflags = toolSettings_pgm_otool $ toolSettings dflags pgm_ranlib :: DynFlags -> String pgm_ranlib dflags = toolSettings_pgm_ranlib $ toolSettings dflags pgm_lo :: DynFlags -> (String,[Option]) diff --git a/compiler/GHC/Linker/MacOS.hs b/compiler/GHC/Linker/MacOS.hs index b9123895e4..a7d7d86ec7 100644 --- a/compiler/GHC/Linker/MacOS.hs +++ b/compiler/GHC/Linker/MacOS.hs @@ -50,11 +50,11 @@ runInjectRPaths :: Logger -> DynFlags -> [FilePath] -> FilePath -> IO () -- Make sure to honour -fno-use-rpaths if set on darwin as well see #20004 runInjectRPaths _ dflags _ _ | not (gopt Opt_RPath dflags) = return () runInjectRPaths logger dflags lib_paths dylib = do - info <- lines <$> askOtool logger dflags Nothing [Option "-L", Option dylib] + info <- lines <$> askOtool logger (toolSettings dflags) Nothing [Option "-L", Option dylib] -- filter the output for only the libraries. And then drop the @rpath prefix. let libs = fmap (drop 7) $ filter (isPrefixOf "@rpath") $ fmap (head.words) $ info -- find any pre-existing LC_PATH items - info <- lines <$> askOtool logger dflags Nothing [Option "-l", Option dylib] + info <- lines <$> askOtool logger (toolSettings dflags) Nothing [Option "-l", Option dylib] let paths = mapMaybe get_rpath info lib_paths' = [ p | p <- lib_paths, not (p `elem` paths) ] -- only find those rpaths, that aren't already in the library. diff --git a/compiler/GHC/SysTools/Tasks.hs b/compiler/GHC/SysTools/Tasks.hs index 0cfa5fee7d..66f0346886 100644 --- a/compiler/GHC/SysTools/Tasks.hs +++ b/compiler/GHC/SysTools/Tasks.hs @@ -364,9 +364,9 @@ runAr logger dflags cwd args = traceSystoolCommand logger "ar" $ do let ar = pgm_ar dflags runSomethingFiltered logger id "Ar" ar args cwd Nothing -askOtool :: Logger -> DynFlags -> Maybe FilePath -> [Option] -> IO String -askOtool logger dflags mb_cwd args = do - let otool = pgm_otool dflags +askOtool :: Logger -> ToolSettings -> Maybe FilePath -> [Option] -> IO String +askOtool logger toolSettings mb_cwd args = do + let otool = toolSettings_pgm_otool toolSettings runSomethingWith logger "otool" otool args $ \real_args -> readCreateProcessWithExitCode' (proc otool real_args){ cwd = mb_cwd } |