Propolis (and the associated Omicron repo) primarily target illumos-based systems, but can compile and test for other platforms (such as Linux, and previously, macOS).
However, the addition of a call to fdatasync, which is only present for "linux-like" systems in the stdlib, breaks this compatibility:
|
fn process_flush(&self) -> Result<BlockResult> { |
|
let res = unsafe { libc::fdatasync(self.fp.as_raw_fd()) }; |
|
|
This is visible in the Omicron github actions, where pulling Propolis forward makes this visible on Mac bots: https://github.com/oxidecomputer/omicron/pull/186/checks?check_run_id=3535422770#step:7:1089
Suggested steps forward:
Propolis (and the associated Omicron repo) primarily target illumos-based systems, but can compile and test for other platforms (such as Linux, and previously, macOS).
However, the addition of a call to
fdatasync, which is only present for "linux-like" systems in the stdlib, breaks this compatibility:propolis/propolis/src/block.rs
Lines 180 to 182 in dad75d2
This is visible in the Omicron github actions, where pulling Propolis forward makes this visible on Mac bots: https://github.com/oxidecomputer/omicron/pull/186/checks?check_run_id=3535422770#step:7:1089
Suggested steps forward: