Auto merge of #99464 - nikic:llvm-15, r=cuviper
Update to LLVM 15 For preliminary testing. Some LLVM 15 compatibility fixes were applied separately in #99512. Release timeline: * LLVM 15 branched on Jul 26. * The final LLVM 15.0.0 release is scheduled for Sep 6. * Current nightly (1.65.0) is scheduled for Nov 3. Changes in this PR (apart from the LLVM update): * Pass `--set llvm.allow-old-toolchain` for many Docker images. LLVM 16 will require GCC >= 7.1, while LLVM 15 still allows older compilers with an option. Specify the option for builders still using GCC 5.4. #95026 updated some of the used toolchains, but not all. * Use the `+atomics-32` target feature for thumbv6m. * Explicitly link libatomic when cross-compiling LLVM to 32-bit target. * Explicitly disable zstd support, to avoid libzstd.so dependency. New LLVM patches ([commits](https://github.com/rust-lang/llvm-project/commits/rustc/15.0-2022-08-09)): * [rust-only] Fix ICE with GCC 5.4 (15be58d7f0
) * [rust-only] Fix build with GCC 5.4 (774edc10fa
) * ~~[rust-only] Fix build with GCC 5.2 (1a6069a7bb
)~~ * ~~[rust-only] Fix ICE with GCC 5.2 (493081f290
)~~ * ~~[rust-only] Fix build with GCC 5.2 (0fc5979d73
)~~ * [backported] Addition of `+atomics` target feature (57bdd9892d
). * [backported] Revert compiler-rt change that broke powerpc (9c68b43915
) * [awaiting backport] Fix RelLookupTableConverter on gnux32 (639388a05f
/ https://github.com/llvm/llvm-project/issues/57021) Tested images: dist-x86_64-linux, armhf-gnu, arm-android, dist-s390x-linux, dist-x86_64-illumos, dist-x86_64-freebsd, wasm32, dist-x86_64-musl, dist-various-1, dist-riscv64-linux, dist-mips-linux, dist-mipsel-linux, dist-powerpc-linux, dist-aarch64-linux, dist-x86_64-apple, x86_64-msvc-1, x86_64-msvc-2, dist-various-2, dist-arm-linux Tested up to the usual ipv6 error: test-various, i686-gnu, x86_64-gnu-nopt r? `@ghost`
This commit is contained in:
commit
e2b52ff73e
22 changed files with 73 additions and 28 deletions
|
@ -13,7 +13,9 @@ pub fn target() -> Target {
|
|||
abi: "eabi".into(),
|
||||
// The ARMv6-M architecture doesn't support unaligned loads/stores so we disable them
|
||||
// with +strict-align.
|
||||
features: "+strict-align".into(),
|
||||
// Also force-enable 32-bit atomics, which allows the use of atomic load/store only.
|
||||
// The resulting atomics are ABI incompatible with atomics backed by libatomic.
|
||||
features: "+strict-align,+atomics-32".into(),
|
||||
// There are no atomic CAS instructions available in the instruction set of the ARMv6-M
|
||||
// architecture
|
||||
atomic_cas: false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue