diff options
| author | Nicholas Bishop <nbishop@nbishop.net> | 2022-11-20 00:03:10 +0000 |
|---|---|---|
| committer | Nicholas Bishop <nbishop@nbishop.net> | 2022-11-20 00:03:10 +0000 |
| commit | eafe61d6bd9d983535a90b29ef5497b0a6e42019 (patch) | |
| tree | e53f3a66bc88581d3071dfafed498a07ebf7cf89 | |
| parent | cdb6907893da1d025eba2d8cd396db4e84bca98c (diff) | |
| download | rust-eafe61d6bd9d983535a90b29ef5497b0a6e42019.tar.gz rust-eafe61d6bd9d983535a90b29ef5497b0a6e42019.zip | |
dist-various-2: Use clang for the UEFI targets
This fixes an issue where the C and asm sources built by compiler_builtins were being compiled as ELF objects instead of PE objects. This wasn't noticed before because it doesn't cause compiler_builtins or rustc to fail to build. You only see a failure when a program is built that references one of the symbols in an ELF object. Compiling with clang fixes this because the `cc` crate converts the UEFI targets into Windows targets that clang understands, causing it to produce PE objects. Note that this requires compiler_builtins >= 0.1.84. Fixes https://github.com/rust-lang/rust/issues/104326
| -rw-r--r-- | src/ci/docker/host-x86_64/dist-various-2/Dockerfile | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ci/docker/host-x86_64/dist-various-2/Dockerfile b/src/ci/docker/host-x86_64/dist-various-2/Dockerfile index e1adabaac9b..93ef7dfcbf5 100644 --- a/src/ci/docker/host-x86_64/dist-various-2/Dockerfile +++ b/src/ci/docker/host-x86_64/dist-various-2/Dockerfile @@ -61,6 +61,12 @@ ENV \ AR_i686_unknown_freebsd=i686-unknown-freebsd12-ar \ CC_i686_unknown_freebsd=i686-unknown-freebsd12-clang \ CXX_i686_unknown_freebsd=i686-unknown-freebsd12-clang++ \ + CC_aarch64_unknown_uefi=clang-11 \ + CXX_aarch64_unknown_uefi=clang++-11 \ + CC_i686_unknown_uefi=clang-11 \ + CXX_i686_unknown_uefi=clang++-11 \ + CC_x86_64_unknown_uefi=clang-11 \ + CXX_x86_64_unknown_uefi=clang++-11 \ CC=gcc-8 \ CXX=g++-8 |
