From 53ed21c5d142961848f4b24fa8d5f45d500b9494 Mon Sep 17 00:00:00 2001 From: Rodrigo Mesquita <rodrigo.m.mesquita@gmail.com> Date: Tue, 4 Jul 2023 19:07:02 +0100 Subject: [PATCH] configure: Drop Clang command from settings Due to 01542cb7227614a93508b97ecad5b16dddeb6486 we no longer use the `runClang` function, and no longer need to configure into settings the Clang command. We used to determine options at runtime to pass clang when it was used as an assembler, but now that we configure at configure time we no longer need to. --- compiler/GHC/Driver/Session.hs | 10 ++-------- compiler/GHC/Settings.hs | 10 ---------- compiler/GHC/Settings/IO.hs | 3 --- compiler/GHC/SysTools/Tasks.hs | 23 ----------------------- configure.ac | 8 -------- hadrian/bindist/Makefile | 1 - hadrian/bindist/config.mk.in | 1 - hadrian/cfg/system.config.in | 1 - hadrian/src/Oracles/Setting.hs | 2 -- hadrian/src/Oracles/TestSettings.hs | 2 -- hadrian/src/Rules/Generate.hs | 1 - m4/fp_settings.m4 | 7 ------- testsuite/ghc-config/ghc-config.hs | 1 - 13 files changed, 2 insertions(+), 68 deletions(-) diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs index 174d902e3887..7286f30d5885 100644 --- a/compiler/GHC/Driver/Session.hs +++ b/compiler/GHC/Driver/Session.hs @@ -108,7 +108,6 @@ module GHC.Driver.Session ( sPgm_ranlib, sPgm_lo, sPgm_lc, - sPgm_lcc, sPgm_i, sOpt_L, sOpt_P, @@ -122,7 +121,6 @@ module GHC.Driver.Session ( sOpt_windres, sOpt_lo, sOpt_lc, - sOpt_lcc, sOpt_i, sExtraGccViaCFlags, sTargetPlatformString, @@ -138,10 +136,10 @@ module GHC.Driver.Session ( extraGccViaCFlags, globalPackageDatabasePath, pgm_L, pgm_P, pgm_F, pgm_c, pgm_cxx, pgm_cpp, pgm_a, pgm_l, pgm_lm, pgm_dll, pgm_T, pgm_windres, pgm_ar, - pgm_ranlib, pgm_lo, pgm_lc, pgm_lcc, pgm_i, + pgm_ranlib, pgm_lo, pgm_lc, pgm_i, opt_L, opt_P, opt_F, opt_c, opt_cxx, opt_a, opt_l, opt_lm, opt_i, opt_P_signature, - opt_windres, opt_lo, opt_lc, opt_lcc, + opt_windres, opt_lo, opt_lc, updatePlatformConstants, -- ** Manipulating DynFlags @@ -411,8 +409,6 @@ pgm_T :: DynFlags -> String pgm_T dflags = toolSettings_pgm_T $ toolSettings dflags pgm_windres :: DynFlags -> String pgm_windres dflags = toolSettings_pgm_windres $ toolSettings dflags -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_ranlib :: DynFlags -> String @@ -453,8 +449,6 @@ opt_lm :: DynFlags -> [String] opt_lm dflags= toolSettings_opt_lm $ toolSettings dflags opt_windres :: DynFlags -> [String] opt_windres dflags= toolSettings_opt_windres $ toolSettings dflags -opt_lcc :: DynFlags -> [String] -opt_lcc dflags= toolSettings_opt_lcc $ toolSettings dflags opt_lo :: DynFlags -> [String] opt_lo dflags= toolSettings_opt_lo $ toolSettings dflags opt_lc :: DynFlags -> [String] diff --git a/compiler/GHC/Settings.hs b/compiler/GHC/Settings.hs index 5d194a7a30b2..b619b0b88189 100644 --- a/compiler/GHC/Settings.hs +++ b/compiler/GHC/Settings.hs @@ -42,7 +42,6 @@ module GHC.Settings , sPgm_ranlib , sPgm_lo , sPgm_lc - , sPgm_lcc , sPgm_i , sOpt_L , sOpt_P @@ -56,7 +55,6 @@ module GHC.Settings , sOpt_windres , sOpt_lo , sOpt_lc - , sOpt_lcc , sOpt_i , sExtraGccViaCFlags , sTargetPlatformString @@ -121,8 +119,6 @@ data ToolSettings = ToolSettings toolSettings_pgm_lo :: (String, [Option]) , -- | LLVM: llc static compiler toolSettings_pgm_lc :: (String, [Option]) - , -- | LLVM: c compiler - toolSettings_pgm_lcc :: (String, [Option]) , toolSettings_pgm_i :: String -- options for particular phases @@ -142,8 +138,6 @@ data ToolSettings = ToolSettings toolSettings_opt_lo :: [String] , -- | LLVM: llc static compiler toolSettings_opt_lc :: [String] - , -- | LLVM: c compiler - toolSettings_opt_lcc :: [String] , -- | iserv options toolSettings_opt_i :: [String] @@ -242,8 +236,6 @@ sPgm_lo :: Settings -> (String, [Option]) sPgm_lo = toolSettings_pgm_lo . sToolSettings sPgm_lc :: Settings -> (String, [Option]) sPgm_lc = toolSettings_pgm_lc . sToolSettings -sPgm_lcc :: Settings -> (String, [Option]) -sPgm_lcc = toolSettings_pgm_lcc . sToolSettings sPgm_i :: Settings -> String sPgm_i = toolSettings_pgm_i . sToolSettings sOpt_L :: Settings -> [String] @@ -270,8 +262,6 @@ sOpt_lo :: Settings -> [String] sOpt_lo = toolSettings_opt_lo . sToolSettings sOpt_lc :: Settings -> [String] sOpt_lc = toolSettings_opt_lc . sToolSettings -sOpt_lcc :: Settings -> [String] -sOpt_lcc = toolSettings_opt_lcc . sToolSettings sOpt_i :: Settings -> [String] sOpt_i = toolSettings_opt_i . sToolSettings diff --git a/compiler/GHC/Settings/IO.hs b/compiler/GHC/Settings/IO.hs index 4a9c8558353f..1a70535f1c15 100644 --- a/compiler/GHC/Settings/IO.hs +++ b/compiler/GHC/Settings/IO.hs @@ -151,7 +151,6 @@ initSettings top_dir = do -- We just assume on command line lc_prog <- getSetting "LLVM llc command" lo_prog <- getSetting "LLVM opt command" - lcc_prog <- getSetting "LLVM clang command" let iserv_prog = libexec "ghc-iserv" @@ -199,7 +198,6 @@ initSettings top_dir = do , toolSettings_pgm_ranlib = ranlib_path , toolSettings_pgm_lo = (lo_prog,[]) , toolSettings_pgm_lc = (lc_prog,[]) - , toolSettings_pgm_lcc = (lcc_prog,[]) , toolSettings_pgm_i = iserv_prog , toolSettings_opt_L = [] , toolSettings_opt_P = [] @@ -211,7 +209,6 @@ initSettings top_dir = do , toolSettings_opt_l = [] , toolSettings_opt_lm = [] , toolSettings_opt_windres = [] - , toolSettings_opt_lcc = [] , toolSettings_opt_lo = [] , toolSettings_opt_lc = [] , toolSettings_opt_i = [] diff --git a/compiler/GHC/SysTools/Tasks.hs b/compiler/GHC/SysTools/Tasks.hs index dac66778f1c7..d69a52875bfb 100644 --- a/compiler/GHC/SysTools/Tasks.hs +++ b/compiler/GHC/SysTools/Tasks.hs @@ -12,7 +12,6 @@ module GHC.SysTools.Tasks where import GHC.Prelude import GHC.Platform import GHC.ForeignSrcLang -import GHC.IO (catchException) import GHC.CmmToLlvm.Config (LlvmVersion, llvmVersionStr, supportedLlvmVersionUpperBound, parseLlvmVersion, supportedLlvmVersionLowerBound) @@ -217,28 +216,6 @@ runLlvmLlc logger dflags args = traceSystoolCommand logger "llc" $ do args1 = map Option (getOpts dflags opt_lc) runSomething logger "LLVM Compiler" p (args0 ++ args1 ++ args) --- | 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) -runClang :: Logger -> DynFlags -> [Option] -> IO () -runClang logger dflags args = traceSystoolCommand logger "clang" $ do - let (clang,_) = pgm_lcc dflags - -- be careful what options we call clang with - -- see #5903 and #7617 for bugs caused by this. - (_,args0) = pgm_a dflags - args1 = map Option (getOpts dflags opt_a) - args2 = args0 ++ args1 ++ args - mb_env <- getGccEnv args2 - catchException - (runSomethingFiltered logger id "Clang (Assembler)" clang args2 Nothing mb_env) - (\(err :: SomeException) -> do - errorMsg logger $ - text ("Error running clang! you need clang installed to use the" ++ - " LLVM backend") $+$ - text "(or GHC tried to execute clang incorrectly)" - throwIO err - ) - runEmscripten :: Logger -> DynFlags -> [Option] -> IO () runEmscripten logger dflags args = traceSystoolCommand logger "emcc" $ do let (p,args0) = pgm_a dflags diff --git a/configure.ac b/configure.ac index f935f9cb01ac..1f345ac09259 100644 --- a/configure.ac +++ b/configure.ac @@ -528,13 +528,6 @@ sUPPORTED_LLVM_VERSION_MAX=$(echo \($LlvmMaxVersion\) | sed 's/\./,/') AC_DEFINE_UNQUOTED([sUPPORTED_LLVM_VERSION_MIN], ${sUPPORTED_LLVM_VERSION_MIN}, [The minimum supported LLVM version number]) AC_DEFINE_UNQUOTED([sUPPORTED_LLVM_VERSION_MAX], ${sUPPORTED_LLVM_VERSION_MAX}, [The maximum supported LLVM version number]) -dnl ** Which LLVM clang to use? -dnl -------------------------------------------------------------- -AC_ARG_VAR(CLANG,[Use as the path to clang [default=autodetect]]) -AC_CHECK_TARGET_TOOL([CLANG], [clang]) -ClangCmd="$CLANG" -AC_SUBST([ClangCmd]) - dnl ** Which LLVM llc to use? dnl -------------------------------------------------------------- AC_ARG_VAR(LLC,[Use as the path to LLVM's llc [default=autodetect]]) @@ -1269,7 +1262,6 @@ echo "\ libdw : $USING_LIBDW Using LLVM tools - clang : $ClangCmd llc : $LlcCmd opt : $OptCmd" diff --git a/hadrian/bindist/Makefile b/hadrian/bindist/Makefile index 87ab54491db4..5574670dbc1e 100644 --- a/hadrian/bindist/Makefile +++ b/hadrian/bindist/Makefile @@ -120,7 +120,6 @@ lib/settings : config.mk @echo ',("LLVM target", "$(LLVMTarget_CPP)")' >> $@ @echo ',("LLVM llc command", "$(SettingsLlcCommand)")' >> $@ @echo ',("LLVM opt command", "$(SettingsOptCommand)")' >> $@ - @echo ',("LLVM clang command", "$(SettingsClangCommand)")' >> $@ @echo ',("Use inplace MinGW toolchain", "$(SettingsUseDistroMINGW)")' >> $@ @echo @echo ',("Use interpreter", "$(GhcWithInterpreter)")' >> $@ diff --git a/hadrian/bindist/config.mk.in b/hadrian/bindist/config.mk.in index 64b40c96efe5..79c5ee50d81e 100644 --- a/hadrian/bindist/config.mk.in +++ b/hadrian/bindist/config.mk.in @@ -275,7 +275,6 @@ SettingsDllWrapCommand = @SettingsDllWrapCommand@ SettingsWindresCommand = @SettingsWindresCommand@ SettingsLibtoolCommand = @SettingsLibtoolCommand@ SettingsTouchCommand = @SettingsTouchCommand@ -SettingsClangCommand = @SettingsClangCommand@ SettingsLlcCommand = @SettingsLlcCommand@ SettingsOptCommand = @SettingsOptCommand@ SettingsUseDistroMINGW = @SettingsUseDistroMINGW@ diff --git a/hadrian/cfg/system.config.in b/hadrian/cfg/system.config.in index 48a51494916b..8b1bc0621464 100644 --- a/hadrian/cfg/system.config.in +++ b/hadrian/cfg/system.config.in @@ -158,7 +158,6 @@ settings-install_name_tool-command = @SettingsInstallNameToolCommand@ settings-dll-wrap-command = @SettingsDllWrapCommand@ settings-windres-command = @SettingsWindresCommand@ settings-touch-command = @SettingsTouchCommand@ -settings-clang-command = @SettingsClangCommand@ settings-llc-command = @SettingsLlcCommand@ settings-opt-command = @SettingsOptCommand@ settings-use-distro-mingw = @SettingsUseDistroMINGW@ diff --git a/hadrian/src/Oracles/Setting.hs b/hadrian/src/Oracles/Setting.hs index 6fbf2fd1fe6b..b9e5d312074d 100644 --- a/hadrian/src/Oracles/Setting.hs +++ b/hadrian/src/Oracles/Setting.hs @@ -126,7 +126,6 @@ data SettingsFileSetting | SettingsFileSetting_DllWrapCommand | SettingsFileSetting_WindresCommand | SettingsFileSetting_TouchCommand - | SettingsFileSetting_ClangCommand | SettingsFileSetting_LlcCommand | SettingsFileSetting_OptCommand | SettingsFileSetting_DistroMinGW @@ -224,7 +223,6 @@ settingsFileSetting key = lookupSystemConfig $ case key of SettingsFileSetting_DllWrapCommand -> "settings-dll-wrap-command" SettingsFileSetting_WindresCommand -> "settings-windres-command" SettingsFileSetting_TouchCommand -> "settings-touch-command" - SettingsFileSetting_ClangCommand -> "settings-clang-command" SettingsFileSetting_LlcCommand -> "settings-llc-command" SettingsFileSetting_OptCommand -> "settings-opt-command" SettingsFileSetting_DistroMinGW -> "settings-use-distro-mingw" diff --git a/hadrian/src/Oracles/TestSettings.hs b/hadrian/src/Oracles/TestSettings.hs index 6abcb88dafd6..dca96c559468 100644 --- a/hadrian/src/Oracles/TestSettings.hs +++ b/hadrian/src/Oracles/TestSettings.hs @@ -37,7 +37,6 @@ data TestSetting = TestHostOS | TestGhcDynamic | TestGhcProfiled | TestAR - | TestCLANG | TestLLC | TestTEST_CC | TestTEST_CC_OPTS @@ -69,7 +68,6 @@ testSetting key = do TestGhcDynamic -> "GhcDynamic" TestGhcProfiled -> "GhcProfiled" TestAR -> "AR" - TestCLANG -> "CLANG" TestLLC -> "LLC" TestTEST_CC -> "TEST_CC" TestTEST_CC_OPTS -> "TEST_CC_OPTS" diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs index 1822e2380eb1..afce562ab6fa 100644 --- a/hadrian/src/Rules/Generate.hs +++ b/hadrian/src/Rules/Generate.hs @@ -479,7 +479,6 @@ generateSettings = do , ("LLVM target", getSetting LlvmTarget) , ("LLVM llc command", expr $ settingsFileSetting SettingsFileSetting_LlcCommand) , ("LLVM opt command", expr $ settingsFileSetting SettingsFileSetting_OptCommand) - , ("LLVM clang command", expr $ settingsFileSetting SettingsFileSetting_ClangCommand) , ("Use inplace MinGW toolchain", expr $ settingsFileSetting SettingsFileSetting_DistroMinGW) , ("Use interpreter", expr $ yesNo <$> ghcWithInterpreter) diff --git a/m4/fp_settings.m4 b/m4/fp_settings.m4 index b1eaad274f7a..1c1f3e95402a 100644 --- a/m4/fp_settings.m4 +++ b/m4/fp_settings.m4 @@ -75,12 +75,6 @@ AC_DEFUN([FP_SETTINGS], fi fi - # Platform-agnostic tools - if test -z "$ClangCmd"; then - ClangCmd="clang" - fi - SettingsClangCommand="$ClangCmd" - # LLVM backend tools if test -z "$LlcCmd"; then LlcCmd="llc" @@ -124,7 +118,6 @@ AC_DEFUN([FP_SETTINGS], AC_SUBST(SettingsDllWrapCommand) AC_SUBST(SettingsWindresCommand) AC_SUBST(SettingsTouchCommand) - AC_SUBST(SettingsClangCommand) AC_SUBST(SettingsLlcCommand) AC_SUBST(SettingsOptCommand) AC_SUBST(SettingsUseDistroMINGW) diff --git a/testsuite/ghc-config/ghc-config.hs b/testsuite/ghc-config/ghc-config.hs index b792643dbb5b..0829991225a5 100644 --- a/testsuite/ghc-config/ghc-config.hs +++ b/testsuite/ghc-config/ghc-config.hs @@ -33,7 +33,6 @@ main = do getGhcFieldOrDefault fields "LeadingUnderscore" "Leading underscore" "NO" getGhcFieldOrDefault fields "GhcTablesNextToCode" "Tables next to code" "NO" getGhcFieldProgWithDefault fields "AR" "ar command" "ar" - getGhcFieldProgWithDefault fields "CLANG" "LLVM clang command" "clang" getGhcFieldProgWithDefault fields "LLC" "LLVM llc command" "llc" getGhcFieldProgWithDefault fields "TEST_CC" "C compiler command" "gcc" getGhcFieldProgWithDefault fields "TEST_CC_OPTS" "C compiler flags" "" -- GitLab