--- a/build/toolchain/toolchain.gni
+++ b/build/toolchain/toolchain.gni
@@ -51,6 +51,10 @@
   }
 }
 
+declare_args() {
+  is_musl = false
+}
+
 # Extension for shared library files (including leading dot).
 if (is_apple) {
   shlib_extension = ".dylib"
--- a/build/config/rust.gni
+++ b/build/config/rust.gni
@@ -196,7 +196,18 @@
 # a cargo project that dumps the `CARGO_CFG_TARGET_ABI` from its build.rs. See
 # https://issues.chromium.org/u/1/issues/372512092#comment5 for an example.
 rust_abi_target = ""
-if (is_linux || is_chromeos) {
+if (is_musl) {
+  if (current_cpu == "arm64") {
+    rust_abi_target = "aarch64-unknown-linux-musl"
+    cargo_target_abi = ""
+  } else if (current_cpu == "x86") {
+    rust_abi_target = "i686-unknown-linux-musl"
+    cargo_target_abi = ""
+  } else if (current_cpu == "x64") {
+    rust_abi_target = "x86_64-unknown-linux-musl"
+    cargo_target_abi = ""
+  }
+} else if (is_linux || is_chromeos) {
   if (current_cpu == "arm64") {
     rust_abi_target = "aarch64-unknown-linux-gnu"
     cargo_target_abi = ""
