Index: python-maturin-1.3.2/src/python_interpreter/config.rs
===================================================================
--- python-maturin-1.3.2.orig/src/python_interpreter/config.rs
+++ python-maturin-1.3.2/src/python_interpreter/config.rs
@@ -299,7 +299,7 @@ impl InterpreterConfig {
             InterpreterKind::GraalPy => abi_tag.unwrap_or_else(|| GRAALPY_ABI_TAG.to_string()),
         };
         let file_ext = if target.is_windows() { "pyd" } else { "so" };
-        let ext_suffix = if target.is_linux() || target.is_macos() {
+        let ext_suffix = if target.is_linux() || target.is_macos() || target.is_hurd() {
             // See https://github.com/pypa/auditwheel/issues/349
             let target_env = if (major, minor) >= (3, 11) {
                 target.target_env().to_string()
Index: python-maturin-1.3.2/src/target.rs
===================================================================
--- python-maturin-1.3.2.orig/src/target.rs
+++ python-maturin-1.3.2/src/target.rs
@@ -30,6 +30,7 @@ pub enum Os {
     Haiku,
     Emscripten,
     Wasi,
+    Hurd,
 }
 
 impl fmt::Display for Os {
@@ -47,6 +48,7 @@ impl fmt::Display for Os {
             Os::Haiku => write!(f, "Haiku"),
             Os::Emscripten => write!(f, "Emscripten"),
             Os::Wasi => write!(f, "Wasi"),
+            Os::Hurd => write!(f, "Hurd"),
         }
     }
 }
@@ -179,6 +181,10 @@ fn get_supported_architectures(os: &Os)
         Os::Haiku => vec![Arch::X86_64],
         Os::Solaris => vec![Arch::X86_64, Arch::Sparc64],
         Os::Emscripten | Os::Wasi => vec![Arch::Wasm32],
+        Os::Hurd => vec![
+            Arch::X86,
+            Arch::X86_64,
+        ],
     }
 }
 
@@ -239,6 +245,7 @@ impl Target {
             OperatingSystem::Haiku => Os::Haiku,
             OperatingSystem::Emscripten => Os::Emscripten,
             OperatingSystem::Wasi => Os::Wasi,
+            OperatingSystem::Hurd => Os::Hurd,
             unsupported => bail!("The operating system {:?} is not supported", unsupported),
         };
 
@@ -368,6 +375,7 @@ impl Target {
             Os::Emscripten => "emscripten",
             // This isn't real, there's no sys.platform here
             Os::Wasi => "wasi",
+            Os::Hurd => "gnu",
         }
     }
 
@@ -448,7 +456,8 @@ impl Target {
             | Os::Illumos
             | Os::Haiku
             | Os::Emscripten
-            | Os::Wasi => true,
+            | Os::Wasi
+            | Os::Hurd => true,
         }
     }
 
@@ -524,6 +533,12 @@ impl Target {
         self.os == Os::Wasi
     }
 
+    /// Returns true if we're building a binary for GNU/Hurd
+    #[inline]
+    pub fn is_hurd(&self) -> bool {
+        self.os == Os::Hurd
+    }
+
     /// Returns true if the current platform's target env is Musl
     #[inline]
     pub fn is_musl_libc(&self) -> bool {
