You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug 1943149 - build(swgl): work around broken (upstream) cc::Tool detection of clang --driver-mode=cl r=gfx-reviewers,nical
With the current version of `cc`, we depend on behavior where, if `CC`
is set to something like `clang --driver-mode=cl`, we expect to be able
to use arguments on the command line a la MSVC's `cl.exe`. We were
actually the original contributors of a heuristic to detect this in the
`cc` crate, and it's served us well.
In `cc` upstream since 1.0.89, a new heuristic for detecting compiler
families in `cc::Tool` was introduced which does not have the desired
behavior, and misclassifies the above case as being `clang`-like, rather
than `cl`-like. The heuristic we originally submitted upstream is now
in a fallback path which does not get used for our case. This causes
`cc`'s default flags and APIs like `cc::Tool::is_like_msvc` to be
incorrect. `swgl`, in particular, breaks because of this, since it's
opinionated on the arguments it wants to provide to compilers.
Work around the above regression by detecting checking `Tool`s' base
command and "wrapper arguments" to see if we have a wrapper argument
matching `--driver-mode=cl`. If so, provide `cl`-like arguments in
`swgl`, rather than `clang`-like arguments.
This behavior has been fixed upstream; see
<rust-lang/cc-rs#1378>. Once released, we can
consume it and revert this patch.
Differential Revision: https://phabricator.services.mozilla.com/D236305
0 commit comments