diff options
author | Ben Gamari <ben@smart-cactus.org> | 2020-08-01 11:34:32 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-08-05 04:00:39 -0400 |
commit | 53ce0db5a06598c88c6b8cb32043b878e7083dd4 (patch) | |
tree | 281c045c9f198c5bb046780881931b41de1f15d4 /compiler/GHC/Settings.hs | |
parent | 2bff2f87e43985e02bdde8c6fa39279df86cb617 (diff) | |
download | haskell-53ce0db5a06598c88c6b8cb32043b878e7083dd4.tar.gz |
Refactor handling of object merging
Previously to merge a set of object files we would invoke the linker as
usual, adding -r to the command-line. However, this can result in
non-sensical command-lines which causes lld to balk (#17962).
To avoid this we introduce a new tool setting into GHC, -pgmlm, which is
the linker which we use to merge object files.
Diffstat (limited to 'compiler/GHC/Settings.hs')
-rw-r--r-- | compiler/GHC/Settings.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/GHC/Settings.hs b/compiler/GHC/Settings.hs index 49a2018252..e698f47dea 100644 --- a/compiler/GHC/Settings.hs +++ b/compiler/GHC/Settings.hs @@ -28,6 +28,7 @@ module GHC.Settings , sPgm_c , sPgm_a , sPgm_l + , sPgm_lm , sPgm_dll , sPgm_T , sPgm_windres @@ -46,6 +47,7 @@ module GHC.Settings , sOpt_cxx , sOpt_a , sOpt_l + , sOpt_lm , sOpt_windres , sOpt_lo , sOpt_lc @@ -99,6 +101,7 @@ data ToolSettings = ToolSettings , toolSettings_pgm_c :: String , toolSettings_pgm_a :: (String, [Option]) , toolSettings_pgm_l :: (String, [Option]) + , toolSettings_pgm_lm :: (String, [Option]) , toolSettings_pgm_dll :: (String, [Option]) , toolSettings_pgm_T :: String , toolSettings_pgm_windres :: String @@ -124,6 +127,7 @@ data ToolSettings = ToolSettings , toolSettings_opt_cxx :: [String] , toolSettings_opt_a :: [String] , toolSettings_opt_l :: [String] + , toolSettings_opt_lm :: [String] , toolSettings_opt_windres :: [String] , -- | LLVM: llvm optimiser toolSettings_opt_lo :: [String] @@ -200,6 +204,8 @@ sPgm_a :: Settings -> (String, [Option]) sPgm_a = toolSettings_pgm_a . sToolSettings sPgm_l :: Settings -> (String, [Option]) sPgm_l = toolSettings_pgm_l . sToolSettings +sPgm_lm :: Settings -> (String, [Option]) +sPgm_lm = toolSettings_pgm_lm . sToolSettings sPgm_dll :: Settings -> (String, [Option]) sPgm_dll = toolSettings_pgm_dll . sToolSettings sPgm_T :: Settings -> String @@ -236,6 +242,8 @@ sOpt_a :: Settings -> [String] sOpt_a = toolSettings_opt_a . sToolSettings sOpt_l :: Settings -> [String] sOpt_l = toolSettings_opt_l . sToolSettings +sOpt_lm :: Settings -> [String] +sOpt_lm = toolSettings_opt_lm . sToolSettings sOpt_windres :: Settings -> [String] sOpt_windres = toolSettings_opt_windres . sToolSettings sOpt_lo :: Settings -> [String] |