-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Use # min-llvm-version: 11.0
to force a minimum LLVM version
#81688
Use # min-llvm-version: 11.0
to force a minimum LLVM version
#81688
Conversation
…r than ad-hoc internal solution. In particular: the specific code to define LLVM_VERSION_11_PLUS here was, for some reason, using `$(shell ...)` with bash-specific variable replacement code. On non-bash platforms like dash, that `shell` invocation would fail, and the LLVM_VERSION_11_PLUS check would always fail, the test would always be ignored, and thus be treated as a "success" (in the sense that `--bless` would never do anything). This was causing me a lot of pain.
(rust-highfive has picked a reviewer for you, use r? to override) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me
@@ -14,10 +14,3 @@ | |||
# Therefore, `-C link-dead-code` is no longer automatically enabled. | |||
|
|||
UNAME = $(shell uname) | |||
|
|||
# Rust option `-Z instrument-coverage` uses LLVM Coverage Mapping Format version 4, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Presumably this file is not adding much value anymore and we should move the uname to tools.mk?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah but lets maybe leave that for a later PR. Or at least, this may need to be backported when I add the other beta backports that depend on it (maybe)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm on second thought I guess the backport of this PR isn't actually necessary since all it will mean is that the tests on beta will continue to be incorrectly ignored
@bors r+ (I was tempted to up the priority on this, since it is blocking other work I am doing, but I can just cherry-pick it on those PR's and run --bless with the cherry-pick, so I'll let it go into the queue normally) |
📌 Commit 03c000e has been approved by |
@bors r=simulacrum |
💡 This pull request was already approved, no need to approve it again.
|
📌 Commit 03c000e has been approved by |
…run-make-tests, r=simulacrum Use `# min-llvm-version: 11.0` to force a minimum LLVM version Use `# min-llvm-version: 11.0` to force a minimum LLVM version, rather than ad-hoc internal solution. In particular: the specific code to define LLVM_VERSION_11_PLUS here was, for some reason, using `$(shell ...)` with bash-specific variable replacement code. On non-bash platforms like dash, that `shell` invocation would fail, and the LLVM_VERSION_11_PLUS check would always fail, the test would always be ignored, and thus be treated as a "success" (in the sense that `--bless` would never do anything). This was causing me a lot of pain.
@bors r- This failed in #81707: https://github.com/rust-lang-ci/rust/runs/1823202705 |
Right: The problem here is that this has always been broken on CI, and my change here is fixing things so that we now actually observe the brokenness. One quick fix could be to try to explicitly set the SHELL to But personally I would prefer to just outright disable the |
I think that's the right step; it's an unstable feature and we should not go out of our way to get its tests working. |
(Test was silently ignored on Linux CI prior to parent commit that switched to using `# min-llvm-version`. But the switch made the ignoring stop, exposing other brokenness in the form of bash-dependent syntax in the `$(shell ...)` invocations.)
@bors r=simulacrum rollup=never |
📌 Commit 5ce6710 has been approved by |
⌛ Testing commit 5ce6710 with merge 89164fe516d4c71fb849a3559e61f1bdbb249a23... |
💔 Test failed - checks-actions |
It looks to me like this might just need a retry? @bors retry |
Yeah, the |
☀️ Test successful - checks-actions |
Ensures `make` tests run under /bin/dash (if available), like CI, and fixes a Makefile Note: This cherrypicks rust-lang#81688 (`@pnkfelix)` Updates `tools.mk` to explicitly require `SHELL := /bin/dash`, since CI uses `dash` but other environments (including developer local machines) may default to `bash`. Replaces bash-specific shell command in one Makefile with a dash-compatible alternative, and re-enables the affected Makefile test. Removes apparently redundant definition of `UNAME`. Also see: [zulip discussion thread](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/how.20to.20run.2Fbless.20src.2Ftest.2Frun-make-fulldeps.2Fcoverage.20.3F) r? `@pnkfelix` FYI: `@wesleywiser` `@tmandry`
Ensures `make` tests run under /bin/dash (if available), like CI, and fixes a Makefile Note: This cherrypicks rust-lang#81688 (``@pnkfelix)`` Updates `tools.mk` to explicitly require `SHELL := /bin/dash`, since CI uses `dash` but other environments (including developer local machines) may default to `bash`. Replaces bash-specific shell command in one Makefile with a dash-compatible alternative, and re-enables the affected Makefile test. Removes apparently redundant definition of `UNAME`. Also see: [zulip discussion thread](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/how.20to.20run.2Fbless.20src.2Ftest.2Frun-make-fulldeps.2Fcoverage.20.3F) r? ``@pnkfelix`` FYI: ``@wesleywiser`` ``@tmandry``
Ensures `make` tests run under /bin/dash (if available), like CI, and fixes a Makefile Note: This cherrypicks rust-lang#81688 (`@pnkfelix)` Updates `tools.mk` to explicitly require `SHELL := /bin/dash`, since CI uses `dash` but other environments (including developer local machines) may default to `bash`. Replaces bash-specific shell command in one Makefile with a dash-compatible alternative, and re-enables the affected Makefile test. Removes apparently redundant definition of `UNAME`. Also see: [zulip discussion thread](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/how.20to.20run.2Fbless.20src.2Ftest.2Frun-make-fulldeps.2Fcoverage.20.3F) r? `@pnkfelix` FYI: `@wesleywiser` `@tmandry`
Ensures `make` tests run under /bin/dash (if available), like CI, and fixes a Makefile Note: This cherrypicks rust-lang#81688 (`@pnkfelix)` Updates `tools.mk` to explicitly require `SHELL := /bin/dash`, since CI uses `dash` but other environments (including developer local machines) may default to `bash`. Replaces bash-specific shell command in one Makefile with a dash-compatible alternative, and re-enables the affected Makefile test. Removes apparently redundant definition of `UNAME`. Also see: [zulip discussion thread](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/how.20to.20run.2Fbless.20src.2Ftest.2Frun-make-fulldeps.2Fcoverage.20.3F) r? `@pnkfelix` FYI: `@wesleywiser` `@tmandry`
Use
# min-llvm-version: 11.0
to force a minimum LLVM version, rather than ad-hoc internal solution.In particular: the specific code to define LLVM_VERSION_11_PLUS here was, for some reason, using
$(shell ...)
with bash-specific variable replacement code. On non-bash platforms like dash, thatshell
invocation would fail, and theLLVM_VERSION_11_PLUS check would always fail, the test would always be ignored, and thus be treated as a "success" (in the sense that
--bless
would never do anything)./bin/sh
(except on Windows) for their$(shell ...)
invocations, and thus we see differing behaviors depending on whether your/bin/sh
links to/bin/dash
or to/bin/bash
.This was causing me a lot of pain.