tests/run-make: add missing needs-llvm-components

Without suitable `needs-llvm-components` directives, these tests that
rely on target-specific codegen can fail if used with a LLVM that is
built without the required components.
This commit is contained in:
许杰友 Jieyou Xu (Joe) 2024-08-26 18:20:32 +08:00
parent 92b10819ef
commit beaf9d1c14
4 changed files with 32 additions and 11 deletions

View File

@ -5,6 +5,11 @@
//! //!
//! It also checks that some targets have the correct set cfgs. //! It also checks that some targets have the correct set cfgs.
// ignore-tidy-linelength
//@ needs-llvm-components: arm x86
// Note: without the needs-llvm-components it will fail on LLVM built without the required
// components listed above.
use std::collections::HashSet; use std::collections::HashSet;
use std::iter::FromIterator; use std::iter::FromIterator;
use std::path::PathBuf; use std::path::PathBuf;

View File

@ -1,10 +1,15 @@
// Checks that all the targets returned by `rustc --print target-list` are valid // Checks that all the targets returned by `rustc --print target-list` are valid target
// target specifications // specifications.
// ignore-tidy-linelength
//@ needs-llvm-components: aarch64 arm avr bpf csky hexagon loongarch m68k mips msp430 nvptx powerpc riscv sparc systemz webassembly x86
// FIXME(jieyouxu): there has to be a better way to do this, without the needs-llvm-components it
// will fail on LLVM built without all of the components listed above.
use run_make_support::bare_rustc; use run_make_support::bare_rustc;
// FIXME(127877): certain experimental targets fail with creating a 'LLVM TargetMachine' // FIXME(#127877): certain experimental targets fail with creating a 'LLVM TargetMachine' in CI, so
// in CI, so we skip them // we skip them.
const EXPERIMENTAL_TARGETS: &[&str] = &["avr", "m68k", "csky", "xtensa"]; const EXPERIMENTAL_TARGETS: &[&str] = &["avr", "m68k", "csky", "xtensa"];
fn main() { fn main() {

View File

@ -1,5 +1,11 @@
//! This checks the output of some `--print` options when //! This checks the output of some `--print` options when output to a file (instead of stdout)
//! output to a file (instead of stdout)
// ignore-tidy-linelength
//@ needs-llvm-components: aarch64 arm avr bpf csky hexagon loongarch m68k mips msp430 nvptx powerpc riscv sparc systemz webassembly x86
// FIXME(jieyouxu): there has to be a better way to do this, without the needs-llvm-components it
// will fail on LLVM built without all of the components listed above. If adding a new target that
// relies on a llvm component not listed above, it will need to be added to the required llvm
// components above.
use std::path::PathBuf; use std::path::PathBuf;

View File

@ -1,8 +1,13 @@
// ARM Cortex-M are a class of processors supported by the rust compiler. However, // ARM Cortex-M are a class of processors supported by the rust compiler. However, they cannot
// they cannot support any atomic features, such as Arc. This test simply prints // support any atomic features, such as Arc. This test simply prints the configuration details of
// the configuration details of one Cortex target, and checks that the compiler // one Cortex target, and checks that the compiler does not falsely list atomic support.
// does not falsely list atomic support. // See <https://github.com/rust-lang/rust/pull/36874>.
// See https://github.com/rust-lang/rust/pull/36874
// ignore-tidy-linelength
//@ needs-llvm-components: arm
// Note: without the needs-llvm-components it will fail on LLVM built without all of the components
// listed above. If any new targets are added, please double-check their respective llvm components
// are specified above.
use run_make_support::rustc; use run_make_support::rustc;