Update abi-cafe
This has found a couple of new abi issues. I also had to disable the abi-cafe tests for the MinGW target as one of these abi issues causes a hang and abi-cafe doesn't yet support timeouts.
This commit is contained in:
parent
c48b010845
commit
e52af665f5
9
.github/workflows/abi-cafe.yml
vendored
9
.github/workflows/abi-cafe.yml
vendored
@ -8,7 +8,7 @@ permissions: {}
|
|||||||
jobs:
|
jobs:
|
||||||
abi_cafe:
|
abi_cafe:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: 60
|
timeout-minutes: 30
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os }}-${{ matrix.env.TARGET_TRIPLE }}
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os }}-${{ matrix.env.TARGET_TRIPLE }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
@ -30,9 +30,10 @@ jobs:
|
|||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
env:
|
env:
|
||||||
TARGET_TRIPLE: x86_64-pc-windows-msvc
|
TARGET_TRIPLE: x86_64-pc-windows-msvc
|
||||||
- os: windows-latest
|
# FIXME Currently hangs. Re-enable once this is fixed or abi-cafe adds a timeout.
|
||||||
env:
|
#- os: windows-latest
|
||||||
TARGET_TRIPLE: x86_64-pc-windows-gnu
|
# env:
|
||||||
|
# TARGET_TRIPLE: x86_64-pc-windows-gnu
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
static ABI_CAFE_REPO: GitRepo = GitRepo::github(
|
static ABI_CAFE_REPO: GitRepo = GitRepo::github(
|
||||||
"Gankra",
|
"Gankra",
|
||||||
"abi-cafe",
|
"abi-cafe",
|
||||||
"4c6dc8c9c687e2b3a760ff2176ce236872b37212",
|
"f1220cfd13b57f5c0082c26529163865ee25e115",
|
||||||
"588df6d66abbe105",
|
"fe93a9acd461425d",
|
||||||
"abi-cafe",
|
"abi-cafe",
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -38,17 +38,23 @@ pub(crate) fn run(
|
|||||||
eprintln!("Running abi-cafe");
|
eprintln!("Running abi-cafe");
|
||||||
|
|
||||||
let pairs = ["rustc_calls_cgclif", "cgclif_calls_rustc", "cgclif_calls_cc", "cc_calls_cgclif"];
|
let pairs = ["rustc_calls_cgclif", "cgclif_calls_rustc", "cgclif_calls_cc", "cc_calls_cgclif"];
|
||||||
|
let pairs =
|
||||||
let mut cmd = ABI_CAFE.run(bootstrap_host_compiler, dirs);
|
|
||||||
cmd.arg("--");
|
|
||||||
cmd.arg("--pairs");
|
|
||||||
cmd.args(
|
|
||||||
if cfg!(not(any(target_os = "macos", all(target_os = "windows", target_env = "msvc")))) {
|
if cfg!(not(any(target_os = "macos", all(target_os = "windows", target_env = "msvc")))) {
|
||||||
&pairs[..]
|
&pairs[..]
|
||||||
} else {
|
} else {
|
||||||
&pairs[..2]
|
&pairs[..2]
|
||||||
},
|
};
|
||||||
);
|
|
||||||
|
let mut cmd = ABI_CAFE.run(bootstrap_host_compiler, dirs);
|
||||||
|
cmd.arg("--");
|
||||||
|
|
||||||
|
// stdcall, vectorcall and such don't work yet
|
||||||
|
cmd.arg("--conventions").arg("c").arg("--conventions").arg("rust");
|
||||||
|
|
||||||
|
for pair in pairs {
|
||||||
|
cmd.arg("--pairs").arg(pair);
|
||||||
|
}
|
||||||
|
|
||||||
cmd.arg("--add-rustc-codegen-backend");
|
cmd.arg("--add-rustc-codegen-backend");
|
||||||
match cg_clif_dylib {
|
match cg_clif_dylib {
|
||||||
CodegenBackend::Local(path) => {
|
CodegenBackend::Local(path) => {
|
||||||
@ -58,6 +64,7 @@ pub(crate) fn run(
|
|||||||
cmd.arg(format!("cgclif:{name}"));
|
cmd.arg(format!("cgclif:{name}"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.current_dir(ABI_CAFE.source_dir(dirs));
|
cmd.current_dir(ABI_CAFE.source_dir(dirs));
|
||||||
|
|
||||||
spawn_and_wait(cmd);
|
spawn_and_wait(cmd);
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
From 2b15fee2bb5fd14e34c7e17e44d99cb34f4c555d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Afonso Bordado <afonsobordado@az8.co>
|
|
||||||
Date: Tue, 27 Sep 2022 07:55:17 +0100
|
|
||||||
Subject: [PATCH] Disable some test on x86_64-pc-windows-gnu
|
|
||||||
|
|
||||||
---
|
|
||||||
src/report.rs | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/report.rs b/src/report.rs
|
|
||||||
index eeec614..f582867 100644
|
|
||||||
--- a/src/report.rs
|
|
||||||
+++ b/src/report.rs
|
|
||||||
@@ -48,6 +48,15 @@ pub fn get_test_rules(test: &TestKey, caller: &dyn AbiImpl, callee: &dyn AbiImpl
|
|
||||||
//
|
|
||||||
// THIS AREA RESERVED FOR VENDORS TO APPLY PATCHES
|
|
||||||
|
|
||||||
+ // x86_64-pc-windows-gnu has some broken i128 tests that aren't disabled by default
|
|
||||||
+ if cfg!(all(target_os = "windows", target_env = "gnu")) && test.test_name == "ui128" {
|
|
||||||
+ result.run = Link;
|
|
||||||
+ result.check = Pass(Link);
|
|
||||||
+ } else if test.test_name == "ui128" {
|
|
||||||
+ result.run == Check;
|
|
||||||
+ result.check = Pass(Check);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// END OF VENDOR RESERVED AREA
|
|
||||||
//
|
|
||||||
//
|
|
||||||
--
|
|
||||||
2.30.1.windows.1
|
|
||||||
|
|
44
patches/0002-abi-cafe-Disable-broken-tests.patch
Normal file
44
patches/0002-abi-cafe-Disable-broken-tests.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From 378d9e451a8af1045b8cb32841198cd5ad5464a3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
|
||||||
|
Date: Tue, 9 Jul 2024 11:25:14 +0000
|
||||||
|
Subject: [PATCH] Disable broken tests
|
||||||
|
|
||||||
|
---
|
||||||
|
src/abis/mod.rs | 6 +++---
|
||||||
|
src/report.rs | 4 ++++
|
||||||
|
2 files changed, 7 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/report.rs b/src/report.rs
|
||||||
|
index acfce38..b3ab842 100644
|
||||||
|
--- a/src/report.rs
|
||||||
|
+++ b/src/report.rs
|
||||||
|
@@ -45,6 +45,26 @@ pub fn get_test_rules(test: &TestKey, caller: &dyn AbiImpl, callee: &dyn AbiImpl
|
||||||
|
//
|
||||||
|
// THIS AREA RESERVED FOR VENDORS TO APPLY PATCHES
|
||||||
|
|
||||||
|
+ if cfg!(target_arch = "aarch64") && test.test == "F32Array" && test.options.convention == CallingConvention::C {
|
||||||
|
+ result.check = Busted(Check);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if cfg!(target_arch = "aarch64") && test.test == "OptionU128" && test.options.convention == CallingConvention::Rust && test.options.repr == LangRepr::C {
|
||||||
|
+ result.check = Busted(Check);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if cfg!(target_arch = "x86_64") && test.test == "OptionU128" && test.options.convention == CallingConvention::Rust && test.options.repr == LangRepr::Rust {
|
||||||
|
+ result.check = Busted(Run);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if cfg!(windows) && (test.test == "OptionU128" || test.test == "I64Array" || test.test == "simple") {
|
||||||
|
+ result.run = Skip; // Gives SIGILL on x86_64 windows.
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if test.test == "f16" || test.test == "f128" {
|
||||||
|
+ result.run = Skip;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// END OF VENDOR RESERVED AREA
|
||||||
|
//
|
||||||
|
//
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user