Skip to content

Usage of "fdatasync" breaks Mac build  #43

Description

@smklein

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:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions