Update use of libc::timespec to prepare for future libc version #528
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In a future release of the
libc
crate,libc::timespec
will contains private padding fields on 32-bit*-linux-musl
targets and so the struct will no longer be able to be created using the literal initializer syntax.The only uses in this crate of
libc::timespec
in this way were zero initializing the struct. Thus, these can be replaced by a call tostd::mem::zeroed()
which is compatible with both current versions of thelibc
crate as well as the future version which will contain those private padding fields.I tested this locally both with a modified
libc
/i686-unknown-linux-musl
target and with the currentlibc
/i686-unknown-linux-musl
target. The code builds and all tests pass. The GH workflow required disabling adeny(warnings)
for new warnings that are emitted since the last time the branch was built but it succeeded other than thetest-old
tasks which failed because of dependency resolution errors with thecfg-if
crate.Related to rust-lang/libc#2088