crate: expose cfg for general 64-bit time_t functionality - #5411
Conversation
| @@ -190,7 +196,7 @@ fn main() { | |||
| } | |||
There was a problem hiding this comment.
This should also set the musl_v1_2 flag, since that's pretty much all it's gating
There was a problem hiding this comment.
I don't think I understand. You mention the musl_v1_2 flag, but that
is already set in that particular code block. Further, you also mention
in another review comment that I shouldn't need the time64 flag, so I
don't think there's anything to change in this particular area.
There was a problem hiding this comment.
Sorry missed this - I meant that the variables should imply each other e.g. musl_v1_2 = musl && (musl_v1_2 || time64), uclibc_use_time64 |= time64. But don't worry about this, I'm noticing some other things about this file that I'll clean up after merge.
There was a problem hiding this comment.
I think that's done now.
|
Reminder, once the PR becomes ready for a review, use |
98e48b9 to
1ab4287
Compare
This comment has been minimized.
This comment has been minimized.
1ab4287 to
01f4796
Compare
4c3b4f1 to
1b1d2bb
Compare
|
I think it's done now. While checking through the CI workflow file, I I was wondering what's our stance on that change for stable releases, @rustbot ready Footnotes |
1b1d2bb to
a89083f
Compare
This comment has been minimized.
This comment has been minimized.
a89083f to
36137bc
Compare
This comment has been minimized.
This comment has been minimized.
36137bc to
3198d46
Compare
This comment has been minimized.
This comment has been minimized.
Oh, I did mean to update I'm not sure I follow the rest, why do you consider |
This comment has been minimized.
This comment has been minimized.
|
Could you rebase this once #5508 lands? |
|
Also please update the commit summary and PR title to mention the name of the config, it doesn't actually show up anywhere except the env form :) |
| if "gnu" in target_env and target_bits == "32": | ||
| # Equivalent of _TIME_BITS=64 | ||
| run(cmd, rustflags=f'{rustflags} --cfg=libc_unstable_gnu_time_bits="64"') | ||
|
|
||
| if "musl" in target_env: | ||
| # Check with breaking changes from musl, including 64-bit time_t on 32-bit | ||
| run(cmd, rustflags=f"{rustflags} --cfg=libc_unstable_musl_v1_2") | ||
| if ("gnu" in target_env and target_bits == "32") or "musl" in target_env: | ||
| # Global toggle for _TIME_BITS=64 on glibc, and musl breaking changes | ||
| # concerning 64-bit time_t. | ||
| run(cmd, rustflags=f"{rustflags} --cfg=libc_unstable_time64") |
There was a problem hiding this comment.
I added uclibc to these checks, so this will need to get updated
3198d46 to
4aa9c05
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
4aa9c05 to
3dd09e9
Compare
Just updated the workflow file. I consider I also consider it updated because #5200 brought with it changes to the The build script continues to check for @rustbot ready |
Add `cfg` enabling `time64` functionality across all supported targets. This ensures users have a simple entry point to the crate functionality gated behind one of `linux_time_bits64`, `uclibc_time64` and `gnu_time_bits64`. The new `cfg` goes by the name `time64`.
3dd09e9 to
9f06fed
Compare
Switch as many uses of other target-specific `cfg`s with the `time64` `cfg` introduced in the prior patch.
- Change indentation of two YAML arrays to consistently appear as nested within the key that corresponds with the array. - Change one inconsistent use of single quotes with double quotes for YAML strings.
Replace use of `RUST_LIBC_UNSTABLE_MUSL_V1_2` with `TEST_MUSL_V1_2` in the PowerPC CI runs. The former is deprecated; The latter is used in CI scripts to set the right unstable `cfg` for functionality gated behind musl's v1.2.
9f06fed to
21e32e8
Compare
Description
This patch adds support for a new
cfgfor easily toggling support for64-bit
time_tin supported platforms. This really only sets up the anyone of
linux_time_bits64,gnu_time_bits64oruclibc_time64.The name of the
cfgistime64.Note support for the equivalent flag in musl has not been included
because we already have set-up automatic detection and toggling of the
corresponding
cfgunder supported targets 1.Checklist
libc-test/semverhave been updated*LASTor*MAXhave thestandard doc comment
cargo test -p libc-test --target mytarget);especially relevant for platforms that may not be checked in CI
@rustbot label +stable-nominated
Footnotes
https://github.com/rust-lang/libc/blob/1a8e71f33b1d6ea1e072210e7fc994417bbb2e34/build.rs#L181-L190 ↩