Clean up CI configuration and add s390x

We can't test s390x because qemu segfaults but we can at least verify that it
compiles.

Closes #650
This commit is contained in:
Alex Crichton 2017-07-07 14:18:19 -07:00
parent e8140b86ab
commit 7d74c0993c
6 changed files with 46 additions and 77 deletions

View File

@ -1,4 +1,5 @@
language: rust language: rust
rust: stable
sudo: required sudo: required
dist: trusty dist: trusty
services: services:
@ -22,109 +23,63 @@ env:
matrix: matrix:
include: include:
# 1.0.0 compat # 1.0.0 compat
- os: linux - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
rust: 1.0.0 rust: 1.0.0
script: cargo build script: cargo build
install: install:
# build documentation # build documentation
- os: linux - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
rust: nightly rust: nightly
script: sh ci/dox.sh script: sh ci/dox.sh
# stable compat # stable compat
- os: linux - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - env: TARGET=i686-unknown-linux-gnu
rust: stable
- os: linux
env: TARGET=i686-unknown-linux-gnu
rust: stable
- os: osx - os: osx
env: TARGET=x86_64-apple-darwin NO_ADD=1 env: TARGET=x86_64-apple-darwin NO_ADD=1
rust: stable
- os: osx - os: osx
env: TARGET=i686-apple-darwin env: TARGET=i686-apple-darwin
rust: stable - env: TARGET=arm-linux-androideabi
- os: linux - env: TARGET=aarch64-linux-android
env: TARGET=arm-linux-androideabi - env: TARGET=i686-linux-android
rust: stable - env: TARGET=x86_64-linux-android
- os: linux - env: TARGET=x86_64-unknown-linux-musl
env: TARGET=aarch64-linux-android - env: TARGET=i686-unknown-linux-musl
rust: stable - env: TARGET=arm-unknown-linux-gnueabihf
- os: linux - env: TARGET=aarch64-unknown-linux-gnu
env: TARGET=i686-linux-android
rust: stable
# as of 2017/05/03 x86_64-linux-android are not on stable
- os: linux
env: TARGET=x86_64-linux-android
rust: beta
- os: linux
env: TARGET=x86_64-unknown-linux-musl
rust: stable
- os: linux
env: TARGET=i686-unknown-linux-musl
rust: stable
- os: linux
env: TARGET=arm-unknown-linux-gnueabihf
rust: stable
- os: linux
env: TARGET=aarch64-unknown-linux-gnu
rust: stable
- os: osx - os: osx
osx_image: xcode8.2 osx_image: xcode8.2
env: TARGET=i386-apple-ios env: TARGET=i386-apple-ios
rust: stable
- os: osx - os: osx
osx_image: xcode8.2 osx_image: xcode8.2
env: TARGET=x86_64-apple-ios env: TARGET=x86_64-apple-ios
rust: stable - env: TARGET=x86_64-rumprun-netbsd
- os: linux - env: TARGET=powerpc-unknown-linux-gnu
env: TARGET=x86_64-rumprun-netbsd - env: TARGET=powerpc64-unknown-linux-gnu
rust: stable - env: TARGET=mips-unknown-linux-musl
- os: linux - env: TARGET=mipsel-unknown-linux-musl
env: TARGET=powerpc-unknown-linux-gnu - env: TARGET=mips64-unknown-linux-gnuabi64
rust: stable - env: TARGET=mips-unknown-linux-gnu
- os: linux - env: TARGET=s390x-unknown-linux-gnu
env: TARGET=powerpc64-unknown-linux-gnu
rust: beta
- os: linux
env: TARGET=mips-unknown-linux-musl
rust: stable
- os: linux
env: TARGET=mipsel-unknown-linux-musl
rust: stable
- os: linux
env: TARGET=mips64-unknown-linux-gnuabi64
rust: beta
- os: linux
env: TARGET=mips-unknown-linux-gnu
rust: beta
# beta # beta
- os: linux - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
rust: beta rust: beta
- os: osx - os: osx
env: TARGET=x86_64-apple-darwin NO_ADD=1 env: TARGET=x86_64-apple-darwin NO_ADD=1
rust: beta rust: beta
# nightly # nightly
- os: linux - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
rust: nightly rust: nightly
- os: osx - os: osx
env: TARGET=x86_64-apple-darwin NO_ADD=1 env: TARGET=x86_64-apple-darwin NO_ADD=1
rust: nightly rust: nightly
# QEMU based targets that compile in an emulator # QEMU based targets that compile in an emulator
- os: linux - env: TARGET=x86_64-unknown-freebsd
env: TARGET=x86_64-unknown-freebsd - env: TARGET=x86_64-unknown-openbsd QEMU=openbsd.qcow2
rust: stable
- os: linux
env: TARGET=x86_64-unknown-openbsd QEMU=openbsd.qcow2
rust: stable
script: sh ci/run-docker.sh $TARGET script: sh ci/run-docker.sh $TARGET
install: install:

10
Cargo.lock generated
View File

@ -3,7 +3,7 @@ name = "libc-test"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"ctest 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "ctest 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.25", "libc 0.2.26",
] ]
[[package]] [[package]]
@ -43,12 +43,12 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.24" version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.25" version = "0.2.26"
[[package]] [[package]]
name = "log" name = "log"
@ -66,7 +66,7 @@ version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
"term 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "term 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
@ -102,7 +102,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum ctest 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ca66d610c7d9d6b7c51834ceeffe83b40b71be9f6793e350cff093428f73591" "checksum ctest 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ca66d610c7d9d6b7c51834ceeffe83b40b71be9f6793e350cff093428f73591"
"checksum gcc 0.3.51 (registry+https://github.com/rust-lang/crates.io-index)" = "120d07f202dcc3f72859422563522b66fe6463a4c513df062874daad05f85f0a" "checksum gcc 0.3.51 (registry+https://github.com/rust-lang/crates.io-index)" = "120d07f202dcc3f72859422563522b66fe6463a4c513df062874daad05f85f0a"
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
"checksum libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)" = "38f5c2b18a287cf78b4097db62e20f43cace381dc76ae5c0a3073067f78b7ddc" "checksum libc 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)" = "b807d3f9f61fec68ffa8b10389fffb9235aa0ffa32935be864b2329de5846b74"
"checksum log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b" "checksum log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b"
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
"checksum syntex_syntax 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)" = "82b078749c05271b2aebae7230331c903c38128d5a3dec72625d9e3a411a5b69" "checksum syntex_syntax 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)" = "82b078749c05271b2aebae7230331c903c38128d5a3dec72625d9e3a411a5b69"

View File

@ -1,7 +1,7 @@
[package] [package]
name = "libc" name = "libc"
version = "0.2.25" version = "0.2.26"
authors = ["The Rust Project Developers"] authors = ["The Rust Project Developers"]
license = "MIT/Apache-2.0" license = "MIT/Apache-2.0"
readme = "README.md" readme = "README.md"

View File

@ -0,0 +1,9 @@
FROM ubuntu:17.04
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
gcc-s390x-linux-gnu libc6-dev-s390x-cross
ENV CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc \
CC_s390x_unknown_linux_gnu=s390x-linux-gnu-gcc \
PATH=$PATH:/rust/bin

View File

@ -168,6 +168,11 @@ case "$TARGET" in
qemu-aarch64 -L /usr/aarch64-linux-gnu/ $CARGO_TARGET_DIR/$TARGET/debug/libc-test qemu-aarch64 -L /usr/aarch64-linux-gnu/ $CARGO_TARGET_DIR/$TARGET/debug/libc-test
;; ;;
s390x-unknown-linux-gnu)
# TODO: in theory we should execute this, but qemu segfaults immediately :(
# qemu-s390x -L /usr/s390x-linux-gnu/ $CARGO_TARGET_DIR/$TARGET/debug/libc-test
;;
*-rumprun-netbsd) *-rumprun-netbsd)
rumprun-bake hw_virtio /tmp/libc-test.img $CARGO_TARGET_DIR/$TARGET/debug/libc-test rumprun-bake hw_virtio /tmp/libc-test.img $CARGO_TARGET_DIR/$TARGET/debug/libc-test
qemu-system-x86_64 -nographic -vga none -m 64 \ qemu-system-x86_64 -nographic -vga none -m 64 \

View File

@ -16,6 +16,7 @@ pub type greg_t = u64;
pub type clock_t = i64; pub type clock_t = i64;
pub type __fsword_t = ::c_long; pub type __fsword_t = ::c_long;
pub type __priority_which_t = ::c_uint; pub type __priority_which_t = ::c_uint;
pub type __u64 = u64;
s! { s! {
pub struct aiocb { pub struct aiocb {
@ -777,7 +778,6 @@ pub const CMSPAR: ::tcflag_t = 0o10000000000;
pub const VSWTC: usize = 7; pub const VSWTC: usize = 7;
pub const OLCUC: ::tcflag_t = 0o000002; pub const OLCUC: ::tcflag_t = 0o000002;
pub const NLDLY: ::tcflag_t = 0o000400; pub const NLDLY: ::tcflag_t = 0o000400;
pub const NL1: ::tcflag_t = 0x00000100;
pub const CRDLY: ::tcflag_t = 0o003000; pub const CRDLY: ::tcflag_t = 0o003000;
pub const CR1: ::tcflag_t = 0x00000200; pub const CR1: ::tcflag_t = 0x00000200;
pub const CR2: ::tcflag_t = 0x00000400; pub const CR2: ::tcflag_t = 0x00000400;