Skip to content

unix: make struct timespec non-exhaustive. #4508

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

xbjfk
Copy link
Contributor

@xbjfk xbjfk commented Jun 28, 2025

Description

As discussed in #4463 time64 changes on both GNU and Musl libcs add padding fields to timespec. This can cause compilation failures when using time64 when regular 64-bit compiles fine. Add non_exhaustive to force people to use e.g. ..Default::default() when initializing to prevent sudden errors appearing when using time64.

Sources

Not applicable.

Checklist

  • Relevant tests in libc-test/semver have been updated
  • No placeholder or unstable values like *LAST or *MAX are
    included (see #3131)
  • Tested locally (cd libc-test && cargo test --target mytarget);
    especially relevant for platforms that may not be checked in CI

Note: this is a breaking change.

time64 changes on both GNU and Musl libcs add padding fields to
timespec. This can cause compilation failures when using time64 when
regular 64-bit compiles fine. Add non_exhaustive to force people to use
e.g. `..Default::default()` when initializing to prevent this when the
target changes.
@xbjfk
Copy link
Contributor Author

xbjfk commented Jun 28, 2025

Closing, as discussed most structs will be marked non_exhaustive

@xbjfk xbjfk closed this Jun 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants