diff --git a/src/bootstrap/src/utils/helpers.rs b/src/bootstrap/src/utils/helpers.rs
index e563a83c5c4..133792d85e8 100644
--- a/src/bootstrap/src/utils/helpers.rs
+++ b/src/bootstrap/src/utils/helpers.rs
@@ -15,7 +15,8 @@ use std::sync::OnceLock;
 use std::time::{Instant, SystemTime, UNIX_EPOCH};
 
 use crate::core::builder::Builder;
-use crate::core::config::{Config, LldMode, TargetSelection};
+use crate::core::config::{Config, TargetSelection};
+use crate::LldMode;
 
 pub use crate::utils::dylib::{dylib_path, dylib_path_var};
 
@@ -513,16 +514,7 @@ pub fn linker_flags(
 ) -> Vec<String> {
     let mut args = vec![];
     if !builder.is_lld_direct_linker(target) && builder.config.lld_mode.is_used() {
-        match builder.config.lld_mode {
-            LldMode::External => {
-                args.push("-Clinker-flavor=gnu-lld-cc".to_string());
-            }
-            LldMode::SelfContained => {
-                args.push("-Clinker-flavor=gnu-lld-cc".to_string());
-                args.push("-Clink-self-contained=+linker".to_string());
-            }
-            LldMode::Unused => {}
-        }
+        args.push(String::from("-Clink-arg=-fuse-ld=lld"));
 
         if matches!(lld_threads, LldThreads::No) {
             args.push(format!(