File tree 4 files changed +190
-0
lines changed
4 files changed +190
-0
lines changed Original file line number Diff line number Diff line change
1
+ language : generic
2
+ sudo : false
3
+
4
+ matrix :
5
+ include :
6
+ - env : TARGET=aarch64-unknown-linux-gnu
7
+ os : linux
8
+ dist : trusty
9
+ sudo : required
10
+ addons :
11
+ apt :
12
+ packages :
13
+ - binfmt-support
14
+ - qemu-user-static
15
+ - env : TARGET=arm-unknown-linux-gnueabi
16
+ os : linux
17
+ sudo : required
18
+ addons :
19
+ apt :
20
+ packages :
21
+ - binfmt-support
22
+ - gcc-arm-linux-gnueabi
23
+ - libc6-armel-cross
24
+ - libc6-dev-armel-cross
25
+ - qemu-user-static
26
+ - env : TARGET=arm-unknown-linux-gnueabihf
27
+ os : linux
28
+ sudo : required
29
+ addons :
30
+ apt :
31
+ packages : &armhf
32
+ - binfmt-support
33
+ - gcc-arm-linux-gnueabihf
34
+ - libc6-armhf-cross
35
+ - libc6-dev-armhf-cross
36
+ - qemu-user-static
37
+ - env : TARGET=armv7-unknown-linux-gnueabihf
38
+ os : linux
39
+ sudo : required
40
+ addons :
41
+ apt :
42
+ packages : *armhf
43
+ - env : TARGET=i686-apple-darwin
44
+ os : osx
45
+ - env : TARGET=i686-unknown-linux-gnu
46
+ os : linux
47
+ addons :
48
+ apt :
49
+ packages :
50
+ - gcc-multilib
51
+ - env : TARGET=x86_64-apple-darwin
52
+ os : osx
53
+ - env : TARGET=x86_64-unknown-linux-gnu
54
+ os : linux
55
+
56
+ before_install :
57
+ - export PATH="$PATH:$HOME/.cargo/bin"
58
+
59
+ install :
60
+ - bash ci/install.sh
61
+
62
+ script :
63
+ - bash ci/script.sh
64
+
65
+ branches :
66
+ only :
67
+ - master
68
+
69
+ notifications :
70
+ email :
71
+ on_success : never
Original file line number Diff line number Diff line change
1
+ case $TRAVIS_OS_NAME in
2
+ linux)
3
+ export HOST=x86_64-unknown-linux-gnu
4
+ export NM=nm
5
+ export OBJDUMP=objdump
6
+ ;;
7
+ osx)
8
+ export HOST=x86_64-apple-darwin
9
+ export NM=gnm
10
+ export OBJDUMP=gobjdump
11
+ ;;
12
+ esac
13
+
14
+ case $TARGET in
15
+ aarch64-unknown-linux-gnu)
16
+ export PREFIX=aarch64-linux-gnu-
17
+ export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu
18
+ ;;
19
+ arm* -unknown-linux-gnueabi)
20
+ export PREFIX=arm-linux-gnueabi-
21
+ export QEMU_LD_PREFIX=/usr/arm-linux-gnueabi
22
+ ;;
23
+ arm* -unknown-linux-gnueabihf)
24
+ export PREFIX=arm-linux-gnueabihf-
25
+ export QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf
26
+ ;;
27
+ esac
Original file line number Diff line number Diff line change
1
+ set -ex
2
+
3
+ . $( dirname $0 ) /env.sh
4
+
5
+ install_binutils () {
6
+ case $TRAVIS_OS_NAME in
7
+ osx)
8
+ brew install binutils
9
+ ;;
10
+ * )
11
+ ;;
12
+ esac
13
+ }
14
+
15
+ install_c_toolchain () {
16
+ case $TARGET in
17
+ aarch64-unknown-linux-gnu)
18
+ sudo apt-get install -y --no-install-recommends \
19
+ gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross
20
+ ;;
21
+ * )
22
+ ;;
23
+ esac
24
+ }
25
+
26
+ install_rust () {
27
+ curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=nightly
28
+
29
+ rustc -V
30
+ cargo -V
31
+ }
32
+
33
+ add_rustup_target () {
34
+ if [[ $TARGET != $HOST ]]; then
35
+ rustup target add $TARGET
36
+ fi
37
+ }
38
+
39
+ configure_cargo () {
40
+ if [[ $PREFIX ]]; then
41
+ ${PREFIX} gcc -v
42
+
43
+ mkdir -p .cargo
44
+ cat >> .cargo/config << EOF
45
+ [target.$TARGET ]
46
+ linker = "${PREFIX} gcc"
47
+ EOF
48
+ fi
49
+ }
50
+
51
+ main () {
52
+ install_binutils
53
+ install_c_toolchain
54
+ install_rust
55
+ add_rustup_target
56
+ configure_cargo
57
+ }
58
+
59
+ main
Original file line number Diff line number Diff line change
1
+ set -ex
2
+
3
+ . $( dirname $0 ) /env.sh
4
+
5
+ build () {
6
+ cargo build --target $TARGET
7
+ cargo build --target $TARGET --release
8
+ }
9
+
10
+ run_tests () {
11
+ if [[ $QEMU_LD_PREFIX ]]; then
12
+ export RUST_TEST_THREADS=1
13
+ fi
14
+
15
+ cargo test --target $TARGET
16
+ cargo test --target $TARGET --release
17
+ }
18
+
19
+ inspect () {
20
+ $PREFIX$NM -g --defined-only target/** /debug/* .rlib
21
+ set +e
22
+ $PREFIX$OBJDUMP -Cd target/** /debug/* .rlib
23
+ $PREFIX$OBJDUMP -Cd target/** /release/* .rlib
24
+ set -e
25
+ }
26
+
27
+ main () {
28
+ build
29
+ run_tests
30
+ inspect
31
+ }
32
+
33
+ main
You can’t perform that action at this time.
0 commit comments