Commit ffe3e34
authored
cargo: Use the right LLVM tools and arguments for MSVC cross-compilation (#160)
`xbuild` uses the headers from `xwin` to support cross-compiling,
but doesn't fully replicate the other setup steps that it proposes to
provide a valid and working cross-compilation setup to MSVC. We need to
make the following changes:
- `clang-cl` must be used (a `clang` driver with `cl.exe` interface),
as all native projects will call `CC`/`CXX` with flags that are only
compatible with `cl.exe`;
- `-I` does not seem to set up the system headers correctly, for this
`-imsvc` should be used;
- Remove `-Clink-arg=-fuse-ld=lld-link` because we have already selected
a linker for Rust with the `LINKER` env var (see warning below). We
might instead want to set it in `C(XX)FLAGS` so that when a native
crate uses `CC`/`CXX` to link libraries, it can use `lld-link` instead
of (probably, like `cargo`/`rustc` when `LINKER` is unsed) using
`link.exe` by default;
- Unset forced static CRT and `stdlib=libc++` selection, as these don't
appear to ever be needed, and cause some builds to fail (when crates
are changing these config options themselves?):
= note: rust-lld: warning: ignoring unknown argument '-fuse-ld=lld-link'
rust-lld: error: /failifmismatch: mismatch detected for 'RuntimeLibrary':
>>> libbasis_universal_sys-4f5abd4a27e6aa13.rlib(basisu_resample_filters.o) has value MT_StaticRelease
>>> libintel_tex_2-6d9bd3438efd06d9.rlib(ispc_texcomp_astc.o) has value MD_DynamicRelease1 parent 08527e7 commit ffe3e34
1 file changed
+11
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
306 | 306 | | |
307 | 307 | | |
308 | 308 | | |
309 | | - | |
310 | | - | |
| 309 | + | |
| 310 | + | |
311 | 311 | | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
320 | 317 | | |
321 | 318 | | |
322 | 319 | | |
| |||
439 | 436 | | |
440 | 437 | | |
441 | 438 | | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
442 | 443 | | |
443 | 444 | | |
444 | 445 | | |
| |||
0 commit comments