File tree 4 files changed +73
-11
lines changed
4 files changed +73
-11
lines changed Original file line number Diff line number Diff line change @@ -60,6 +60,10 @@ matrix:
60
60
- libc6-powerpc-cross
61
61
- libc6-dev-powerpc-cross
62
62
- qemu-user-static
63
+ - env : TARGET=powerpc64le-unknown-linux-gnu
64
+ os : linux
65
+ services : docker
66
+ sudo : required
63
67
- env : TARGET=x86_64-apple-darwin
64
68
os : osx
65
69
- env : TARGET=x86_64-unknown-linux-gnu
@@ -68,6 +72,9 @@ matrix:
68
72
# FIXME(#2)
69
73
- env : TARGET=armv7-unknown-linux-gnueabihf
70
74
os : linux
75
+ # FIXME QEMU blows up
76
+ - env : TARGET=powerpc64le-unknown-linux-gnu
77
+ os : linux
71
78
72
79
before_install :
73
80
- export PATH="$PATH:$HOME/.cargo/bin"
Original file line number Diff line number Diff line change @@ -28,4 +28,13 @@ case $TARGET in
28
28
export PREFIX=powerpc-linux-gnu-
29
29
export QEMU_LD_PREFIX=/usr/powerpc-linux-gnu
30
30
;;
31
+ powerpc64le-unknown-linux-gnu)
32
+ # NOTE $DOCKER values: 'y' (yes, call docker), 'i' (inside a docker container) or 'n' ("no)
33
+ if [[ -z $DOCKER ]]; then
34
+ export DOCKER=y
35
+ fi
36
+ export PREFIX=powerpc64le-linux-gnu-
37
+ export QEMU=qemu-ppc64le
38
+ export QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu
39
+ ;;
31
40
esac
Original file line number Diff line number Diff line change 2
2
3
3
. $( dirname $0 ) /env.sh
4
4
5
+ install_deps () {
6
+ if [[ ${DOCKER} == " i" ]]; then
7
+ apt-get update
8
+ apt-get install -y --no-install-recommends \
9
+ ca-certificates curl
10
+ fi
11
+ }
12
+
13
+ install_qemu () {
14
+ case $TARGET in
15
+ powerpc64le-unknown-linux-gnu)
16
+ apt-get install -y --no-install-recommends \
17
+ qemu-user
18
+ ;;
19
+ esac
20
+ }
21
+
5
22
install_binutils () {
6
23
case $TRAVIS_OS_NAME in
7
24
osx)
@@ -16,7 +33,11 @@ install_c_toolchain() {
16
33
case $TARGET in
17
34
aarch64-unknown-linux-gnu)
18
35
sudo apt-get install -y --no-install-recommends \
19
- gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross
36
+ gcc-aarch64-linux-gnu libc6-dev-arm64-cross
37
+ ;;
38
+ powerpc64le-unknown-linux-gnu)
39
+ apt-get install -y --no-install-recommends \
40
+ gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross
20
41
;;
21
42
* )
22
43
;;
49
70
}
50
71
51
72
main () {
52
- install_binutils
53
- install_c_toolchain
54
- install_rust
55
- add_rustup_target
56
- configure_cargo
73
+ if [[ ${DOCKER:- n} != " y" ]]; then
74
+ install_deps
75
+ install_qemu
76
+ install_binutils
77
+ install_c_toolchain
78
+ install_rust
79
+ add_rustup_target
80
+ configure_cargo
81
+ fi
57
82
}
58
83
59
84
main
Original file line number Diff line number Diff line change @@ -12,8 +12,15 @@ run_tests() {
12
12
export RUST_TEST_THREADS=1
13
13
fi
14
14
15
- cargo test --target $TARGET
16
- cargo test --target $TARGET --release
15
+ if [[ $QEMU ]]; then
16
+ cargo test --target $TARGET --no-run
17
+ $QEMU target/** /debug/rustc_builtins-*
18
+ cargo test --target $TARGET --release --no-run
19
+ $QEMU target/** /release/rustc_builtins-*
20
+ else
21
+ cargo test --target $TARGET
22
+ cargo test --target $TARGET --release
23
+ fi
17
24
}
18
25
19
26
inspect () {
@@ -25,9 +32,23 @@ inspect() {
25
32
}
26
33
27
34
main () {
28
- build
29
- run_tests
30
- inspect
35
+ if [[ $DOCKER == " y" ]]; then
36
+ docker run \
37
+ -e DOCKER=i \
38
+ -e TARGET=$TARGET \
39
+ -e TRAVIS_OS_NAME=$TRAVIS_OS_NAME \
40
+ -v $( pwd) :/mnt \
41
+ ubuntu:16.04 \
42
+ sh -c ' set -ex;
43
+ cd /mnt;
44
+ export PATH="$PATH:$HOME/.cargo/bin";
45
+ bash ci/install.sh;
46
+ bash ci/script.sh'
47
+ else
48
+ build
49
+ run_tests
50
+ inspect
51
+ fi
31
52
}
32
53
33
54
main
You can’t perform that action at this time.
0 commit comments