diff --git a/compiler/GHC/SysTools/Info.hs b/compiler/GHC/SysTools/Info.hs index 12be61ea0b3a70e34f73be97485be4cd243f799f..83a76b9efba40ed8227671ed46bc081ec7a63a83 100644 --- a/compiler/GHC/SysTools/Info.hs +++ b/compiler/GHC/SysTools/Info.hs @@ -142,7 +142,7 @@ getLinkerInfo' logger dflags = do -- ELF specific flag, see Note [ELF needed shared libs] return (GnuGold [Option "-Wl,--no-as-needed"]) - | any ("LLD" `isPrefixOf`) stdo = + | any (\line -> "LLD" `isPrefixOf` line || "LLD" `elem` words line) stdo = return (LlvmLLD $ map Option [ --see Note [ELF needed shared libs] "-Wl,--no-as-needed"]) diff --git a/m4/find_ld.m4 b/m4/find_ld.m4 index a6b5c9c598ef408c360308273599ef9795a10e37..3d4443be54d91486ab6c0848a849ea1ad7b8a00f 100644 --- a/m4/find_ld.m4 +++ b/m4/find_ld.m4 @@ -41,6 +41,8 @@ AC_DEFUN([FIND_LD],[ ;; "LLD"*) FP_CC_LINKER_FLAG_TRY(lld, $2) ;; + *" LLD "*) + FP_CC_LINKER_FLAG_TRY(lld, $2) ;; *) AC_MSG_NOTICE([unknown linker version $out]) ;; esac if test "z$$2" = "z"; then