Merge commit '3270432f4b
' into sync_cg_clif-2024-05-13
This commit is contained in:
commit
75f8bdbca4
31 changed files with 481 additions and 166 deletions
|
@ -11,3 +11,6 @@ path = "main.rs"
|
|||
unstable-features = [] # for rust-analyzer
|
||||
|
||||
# Do not add any dependencies
|
||||
|
||||
[profile.dev]
|
||||
debug = 1
|
||||
|
|
|
@ -267,12 +267,16 @@ fn build_clif_sysroot_for_triple(
|
|||
prefix.to_str().unwrap()
|
||||
));
|
||||
}
|
||||
rustflags.push("-Zunstable-options".to_owned());
|
||||
for (name, values) in EXTRA_CHECK_CFGS {
|
||||
rustflags.push(check_cfg_arg(name, *values));
|
||||
}
|
||||
compiler.rustflags.extend(rustflags);
|
||||
let mut build_cmd = STANDARD_LIBRARY.build(&compiler, dirs);
|
||||
if channel == "release" {
|
||||
build_cmd.arg("--release");
|
||||
}
|
||||
build_cmd.arg("--features").arg("compiler-builtins-no-asm backtrace panic-unwind");
|
||||
build_cmd.arg("--features").arg("backtrace panic-unwind");
|
||||
build_cmd.env("CARGO_PROFILE_RELEASE_DEBUG", "true");
|
||||
build_cmd.env("__CARGO_DEFAULT_LIB_METADATA", "cg_clif");
|
||||
if compiler.triple.contains("apple") {
|
||||
|
@ -326,3 +330,34 @@ fn build_rtstartup(dirs: &Dirs, compiler: &Compiler) -> Option<SysrootTarget> {
|
|||
|
||||
Some(target_libs)
|
||||
}
|
||||
|
||||
// Copied from https://github.com/rust-lang/rust/blob/4fd98a4b1b100f5329c6efae18031791f64372d2/src/bootstrap/src/utils/helpers.rs#L569-L585
|
||||
/// Create a `--check-cfg` argument invocation for a given name
|
||||
/// and it's values.
|
||||
fn check_cfg_arg(name: &str, values: Option<&[&str]>) -> String {
|
||||
// Creating a string of the values by concatenating each value:
|
||||
// ',values("tvos","watchos")' or '' (nothing) when there are no values.
|
||||
let next = match values {
|
||||
Some(values) => {
|
||||
let mut tmp = values.iter().flat_map(|val| [",", "\"", val, "\""]).collect::<String>();
|
||||
|
||||
tmp.insert_str(1, "values(");
|
||||
tmp.push(')');
|
||||
tmp
|
||||
}
|
||||
None => "".to_string(),
|
||||
};
|
||||
format!("--check-cfg=cfg({name}{next})")
|
||||
}
|
||||
|
||||
const EXTRA_CHECK_CFGS: &[(&str, Option<&[&str]>)] = &[
|
||||
("bootstrap", None),
|
||||
("stdarch_intel_sde", None),
|
||||
("no_fp_fmt_parse", None),
|
||||
("no_global_oom_handling", None),
|
||||
("no_rc", None),
|
||||
("no_sync", None),
|
||||
("netbsd10", None),
|
||||
("backtrace_in_libstd", None),
|
||||
("target_arch", Some(&["xtensa"])),
|
||||
];
|
||||
|
|
|
@ -147,9 +147,11 @@ fn main() {
|
|||
|
||||
let rustup_toolchain_name = match (env::var("CARGO"), env::var("RUSTC"), env::var("RUSTDOC")) {
|
||||
(Ok(_), Ok(_), Ok(_)) => None,
|
||||
(Err(_), Err(_), Err(_)) => Some(rustc_info::get_toolchain_name()),
|
||||
_ => {
|
||||
eprintln!("All of CARGO, RUSTC and RUSTDOC need to be set or none must be set");
|
||||
(_, Err(_), Err(_)) => Some(rustc_info::get_toolchain_name()),
|
||||
vars => {
|
||||
eprintln!(
|
||||
"If RUSTC or RUSTDOC is set, both need to be set and in addition CARGO needs to be set: {vars:?}"
|
||||
);
|
||||
process::exit(1);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -77,7 +77,7 @@ const BASE_SYSROOT_SUITE: &[TestCase] = &[
|
|||
),
|
||||
TestCase::build_lib("build.alloc_system", "example/alloc_system.rs", "lib"),
|
||||
TestCase::build_bin_and_run("aot.alloc_example", "example/alloc_example.rs", &[]),
|
||||
TestCase::jit_bin("jit.std_example", "example/std_example.rs", ""),
|
||||
TestCase::jit_bin("jit.std_example", "example/std_example.rs", "arg"),
|
||||
TestCase::build_bin_and_run("aot.std_example", "example/std_example.rs", &["arg"]),
|
||||
TestCase::build_bin_and_run("aot.dst_field_align", "example/dst-field-align.rs", &[]),
|
||||
TestCase::build_bin_and_run(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue