From 52e2fcb7466fe5178df0262da64eea63dbcbac6f Mon Sep 17 00:00:00 2001 From: can1357 Date: Thu, 23 Jul 2026 00:53:11 +0200 Subject: [PATCH] fix(iso): used libc::Ioctl for FICLONE request type on musl targets - musl defines ioctl's request parameter as c_int while glibc uses c_ulong; the hardcoded libc::c_ulong constant broke linux musl x64/arm64 native builds. --- crates/pi-iso/src/linux_reflink.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/pi-iso/src/linux_reflink.rs b/crates/pi-iso/src/linux_reflink.rs index ef15d806d..260e4c031 100644 --- a/crates/pi-iso/src/linux_reflink.rs +++ b/crates/pi-iso/src/linux_reflink.rs @@ -80,7 +80,8 @@ mod imp { use crate::{IsoError, IsoResult}; - const FICLONE: libc::c_ulong = 0x4004_9409; + // `libc::Ioctl` is `c_int` on musl and `c_ulong` on glibc; the constant fits both. + const FICLONE: libc::Ioctl = 0x4004_9409; pub fn start(lower: &Path, merged: &Path) -> IsoResult<()> { let lower = canonical_existing_dir(lower)?;