Fix cross compilations (#664)

This commit is contained in:
Trangar 2023-09-19 18:03:04 +02:00 committed by GitHub
parent 70fefd6dcc
commit feae25878a
1 changed files with 158 additions and 88 deletions

View File

@ -16,78 +16,118 @@
} }
}, },
"jobs": { "jobs": {
"test_cross": { "test_cross_std": {
"name": "Cross platform test", "name": "Cross platform test (platforms with standard library)",
"runs-on": "ubuntu-latest", "runs-on": "ubuntu-latest",
"strategy": { "strategy": {
"fail-fast": false, "fail-fast": false,
"matrix": { "matrix": {
"platform": [ "platform": [
# Tier 1
"aarch64-unknown-linux-gnu",
"i686-pc-windows-gnu",
# `cross` does not provide a Docker image for target i686-pc-windows-msvc
# "i686-pc-windows-msvc",
"i686-unknown-linux-gnu",
# `cross` does not provide a Docker image for target x86_64-apple-darwin
# "x86_64-apple-darwin",
"x86_64-pc-windows-gnu",
# `cross` does not provide a Docker image for target x86_64-pc-windows-msvc
# "x86_64-pc-windows-msvc",
"x86_64-unknown-linux-gnu",
# Tier 2
# `cross` does not provide a Docker image for target aarch64-apple-darwin
# "aarch64-apple-darwin",
# `cross` does not provide a Docker image for target aarch64-pc-windows-msvc
# "aarch64-pc-windows-msvc",
"aarch64-unknown-linux-musl", "aarch64-unknown-linux-musl",
"arm-linux-androideabi",
"arm-unknown-linux-gnueabi", "arm-unknown-linux-gnueabi",
"arm-unknown-linux-gnueabihf", "arm-unknown-linux-gnueabihf",
"armv7-unknown-linux-gnueabihf",
# `cross` does not provide a Docker image for target loongarch64-unknown-linux-gnu
# "loongarch64-unknown-linux-gnu",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "mips-unknown-linux-gnu",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "mips64-unknown-linux-gnuabi64",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "mips64el-unknown-linux-gnuabi64",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "mipsel-unknown-linux-gnu",
"powerpc-unknown-linux-gnu",
"powerpc64-unknown-linux-gnu",
"powerpc64le-unknown-linux-gnu",
"riscv64gc-unknown-linux-gnu",
"s390x-unknown-linux-gnu",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "x86_64-unknown-freebsd",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "x86_64-unknown-illumos",
"x86_64-unknown-linux-musl",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "x86_64-unknown-netbsd",
# Tier 3, only those that have std
# `cross` does not provide a Docker image for target aarch64-apple-ios
# "aarch64-apple-ios",
# `cross` does not provide a Docker image for target aarch64-apple-ios-sim
# "aarch64-apple-ios-sim",
# `cross` does not provide a Docker image for target aarch64-fuchsia
# "aarch64-fuchsia",
# `cross` does not provide a Docker image for target aarch64-unknown-fuchsia
# "aarch64-unknown-fuchsia",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/1222): currently broken
# "aarch64-linux-android",
"arm-linux-androideabi",
"arm-unknown-linux-musleabi", "arm-unknown-linux-musleabi",
"arm-unknown-linux-musleabihf", "arm-unknown-linux-musleabihf",
"armv5te-unknown-linux-gnueabi", "armv5te-unknown-linux-gnueabi",
"armv5te-unknown-linux-musleabi", "armv5te-unknown-linux-musleabi",
"armv7-linux-androideabi", "armv7-linux-androideabi",
"armv7-unknown-linux-gnueabihf", "armv7-unknown-linux-gnueabi",
"armv7-unknown-linux-musleabi",
"armv7-unknown-linux-musleabihf", "armv7-unknown-linux-musleabihf",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/634): broken
# BlockedTODO: https://github.com/chronotope/chrono/issues/674
# Fixed in https://github.com/chronotope/chrono/pull/593
# "asmjs-unknown-emscripten", # "asmjs-unknown-emscripten",
# These seem to fail on `-lunwind` not being available
# "i686-linux-android",
# "x86_64-linux-android",
"i586-unknown-linux-gnu", "i586-unknown-linux-gnu",
"i586-unknown-linux-musl", "i586-unknown-linux-musl",
"i686-unknown-linux-gnu", # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/1222): currently broken
# "i686-linux-android",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "i686-unknown-freebsd",
"i686-unknown-linux-musl", "i686-unknown-linux-musl",
"mips-unknown-linux-gnu",
"mips-unknown-linux-musl", "mips-unknown-linux-musl",
"mips64-unknown-linux-gnuabi64", "mips64-unknown-linux-muslabi64",
"mips64el-unknown-linux-gnuabi64", "mips64el-unknown-linux-muslabi64",
"mipsel-unknown-linux-gnu",
"mipsel-unknown-linux-musl", "mipsel-unknown-linux-musl",
"powerpc-unknown-linux-gnu", "sparc64-unknown-linux-gnu",
# BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# Seems to have a bug in qemu, where all floats are `0.0` and aren't equal with each other
# "powerpc64le-unknown-linux-gnu",
"riscv64gc-unknown-linux-gnu",
"s390x-unknown-linux-gnu",
# Seems to not be able to link to certain files
# - cannot find -lsendfile
# - cannot find -llgrp
# "sparcv9-sun-solaris", # "sparcv9-sun-solaris",
"thumbv7neon-linux-androideabi",
# These have no `std` "thumbv7neon-unknown-linux-gnueabihf",
# "thumbv6m-none-eabi", # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "thumbv7em-none-eabi",
# "thumbv7em-none-eabihf",
# "thumbv7m-none-eabi",
# BlockedTODO: https://github.com/chronotope/chrono/issues/674
# Fixed in https://github.com/chronotope/chrono/pull/593
# "wasm32-unknown-emscripten", # "wasm32-unknown-emscripten",
# `cross` does not provide a Docker image for target wasm32-unknown-unknown
# Seems to not be able to link to certain files # "wasm32-unknown-unknown",
# - cannot find -lsendfile # `cross` does not provide a Docker image for target wasm32-wasi
# - cannot find -llgrp # "wasm32-wasi",
# "x86_64-sun-solaris", # `cross` does not provide a Docker image for target x86_64-apple-ios
# "x86_64-apple-ios",
"x86_64-unknown-linux-gnu", # `cross` does not provide a Docker image for target x86_64-fortanix-unknown-sgx
"x86_64-unknown-linux-musl", # "x86_64-fortanix-unknown-sgx",
# `cross` does not provide a Docker image for target x86_64-fuchsia
# Seems to immediately bail # "x86_64-fuchsia",
# error: test failed, to rerun pass '--lib' # `cross` does not provide a Docker image for target x86_64-unknown-fuchsia
# could not execute process `...` (never executed) # "x86_64-unknown-fuchsia",
# "x86_64-unknown-netbsd", # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975): currently broken
# "x86_64-linux-android",
# `cross` does not provide a Docker image for target x86_64-pc-solaris
# "x86_64-pc-solaris",
# `cross` does not provide a Docker image for target x86_64-unknown-linux-gnux32
# "x86_64-unknown-linux-gnux32",
# `cross` does not provide a Docker image for target x86_64-unknown-redox
# "x86_64-unknown-redox",
] ]
} }
}, },
@ -122,43 +162,73 @@
} }
] ]
}, },
"test_windows": { # None of these work, needs more investigation
"name": "Cross platform test", # "test_cross_no_std": {
"runs-on": "windows-latest", # "name": "Cross platform test (no_std, platforms without standard library)",
"strategy": { # "runs-on": "ubuntu-latest",
"fail-fast": false, # "strategy": {
"matrix": { # "fail-fast": false,
"platform": [ # "matrix": {
# linker `i686-w64-mingw32-gcc` not found # "platform": [
# "i686-pc-windows-gnu", # # Tier 3
# "aarch64-unknown-none-softfloat",
"x86_64-pc-windows-gnu", # "aarch64-unknown-none",
] # "aarch64-unknown-uefi",
} # "armebv7r-none-eabi",
}, # "armebv7r-none-eabihf",
"steps": [ # "armv7a-none-eabi",
{ # "armv7r-none-eabi",
"uses": "actions/checkout@v4", # "armv7r-none-eabihf",
"name": "Checkout" # "i586-pc-windows-msvc",
}, # "i686-unknown-uefi",
{ # "nvptx64-nvidia-cuda",
"uses": "actions-rs/toolchain@v1", # "riscv32i-unknown-none-elf",
"with": { # "riscv32imac-unknown-none-elf",
"profile": "minimal", # "riscv32imc-unknown-none-elf",
"toolchain": "stable", # "riscv64gc-unknown-none-elf",
"target": "${{ matrix.platform }}", # "riscv64imac-unknown-none-elf",
"override": true # "thumbv6m-none-eabi",
}, # "thumbv7em-none-eabi",
"name": "Install Rust stable" # "thumbv7em-none-eabihf",
}, # "thumbv7m-none-eabi",
{ # "thumbv8m.base-none-eabi",
"run": "cargo test --target ${{ matrix.platform }}", # "thumbv8m.main-none-eabi",
"name": "Run tests", # "thumbv8m.main-none-eabihf",
"env": { # "x86_64-unknown-none",
"RUSTFLAGS": "-D warnings" # "x86_64-unknown-uefi",
} # ]
} # }
] # },
} # "steps": [
# {
# "uses": "actions/checkout@v4",
# "name": "Checkout"
# },
# {
# "uses": "actions-rs/toolchain@v1",
# "with": {
# "profile": "minimal",
# "toolchain": "stable",
# "override": true
# },
# "name": "Install Rust stable"
# },
# {
# "uses": "actions-rs/install@v0.1",
# "with": {
# "crate": "cross"
# },
# "name": "Install cargo cross"
# },
# {
# "run": "cross test --target ${{ matrix.platform }} --no-default-features --features alloc,derive",
# "name": "Run tests",
# "env": {
# "RUSTFLAGS": "-D warnings",
# "RUST_BACKTRACE": "1",
# }
# }
# ]
# }
} }
} }