Jorge Aparicio
c1ef69f2a0
fix the test suite for the thumb targets
2016-12-11 11:18:48 -05:00
Jorge Aparicio
5c0e0f2070
CI: use Xargo 0.2.x
...
this version uses the rust-src component that rustup installs instead
of fetching the source tarball from static.r-l.o, which sometimes went
wrong due to the fallible logic that Xargo 0.1.x used
2016-11-23 12:47:42 -05:00
Jorge Aparicio
e2fc5a0771
merge apt-get commands
2016-11-12 17:36:59 -05:00
Matt Ickstadt
2a8cca03d8
Fix apt 404s in Docker
...
`apt update` and `apt install` should be in the same Docker RUN statement, otherwise `apt update` will be cached and `apt install` will 404 if a package no longer exists.
2016-11-12 16:08:13 -06:00
Jorge Aparicio
86e3b955cd
test the mips64 targets
2016-10-14 20:26:59 -05:00
Jorge Aparicio
5d164a4eda
fix the powerpc64le target
...
by selecting a CPU that's compatible with the instructions that `rustc`
generates
2016-10-14 09:59:21 -05:00
Jorge Aparicio
e441058be7
ci/run.sh: remove debug stuff
2016-10-10 20:53:21 -05:00
Jorge Aparicio
e05caa1227
fix warnings
2016-10-10 19:45:34 -05:00
Jorge Aparicio
96ddd4ed8d
use test::black_box instead of ptr::*_volatile
...
both prevent LLVM from optimizing away the intrinsics but the former
doesn't produce an `intrinsics` binary that segfaults
2016-10-07 18:26:21 -05:00
Jorge Aparicio
c82403551d
fix unsafe warnings
2016-10-07 18:19:40 -05:00
Jorge Aparicio
fd69beba29
get profile.dev (-debug-assertions) + LTO working
2016-10-07 18:19:40 -05:00
Jorge Aparicio
a2ffc799d0
check that we don't have any call to panic in our implementations
2016-10-07 18:19:40 -05:00
Jorge Aparicio
24c2a15f3d
fix path to .rlib on OSX
2016-10-07 15:03:22 -05:00
Jorge Aparicio
213d929f86
drop the target files
2016-10-06 23:20:09 -05:00
Jorge Aparicio
8a32bd3424
fix duplicate symbol test
2016-10-03 20:20:23 -05:00
Jorge Aparicio
0827f8c7f1
hide the thumbv* target files
...
due to how Cargo works, the rustc-cfg in build.rs was picking our target
specifications rather than the one the user meant to use. Placing our
target files in any place other than the root of the Cargo project
avoids the issue.
2016-10-02 19:23:54 -05:00
Jorge Aparicio
89ebc46f37
pick target during Xargo installation
2016-09-30 20:41:59 -05:00
Jorge Aparicio
d0a57cb871
give Xargo a $HOME
2016-09-30 20:21:15 -05:00
Jorge Aparicio
fb5cb0e4c1
fix Xargo installation
2016-09-30 20:20:15 -05:00
Jorge Aparicio
36a437a445
fix nm call
...
the prefix was missing a '-', i.e. arm-linux-gnueabinm was being called.
This also sets -e in run.sh to catch this sort of errors.
2016-09-30 19:04:48 -05:00
Jorge Aparicio
b60d2515ff
use docker run --user
instead of manually creating a user
2016-09-30 18:37:41 -05:00
Jorge Aparicio
43e019dfc4
cache Cargo artifacts
...
notable changes in the docker-based testing infrastructure
- the docker containers can now modify $CARGO_HOME, to re-use the outer
Cargo registry, and the target directory to re-use build artifacts.
- the docker containers are removed when their execution finishes
because it's no longer necessary to re-start them to inspect them
because all the interesting output is in the outer target directory
2016-09-30 17:39:36 -05:00
Jorge Aparicio
cab88e6133
only x86-ish targets can use an unprefixed nm
2016-09-30 13:57:06 -05:00
Jorge Aparicio
62258b5188
ignore duplicated get_pc_thunk symbols
2016-09-29 19:20:34 -05:00
Jorge Aparicio
b5797dc2a2
adapt to new testing infrastructure
2016-09-29 18:50:04 -05:00
Alex Crichton
8e161a791a
Expand and refactor teting infrastructure
...
This commit moves over most of the testing infrastructure to in-tree docker
images that are all dispatched to from Travis (no other test configuration).
This allows versioning modifications to the test infrastructure as well as the
code itself. Additionally separate docker images allows for easy modification of
one without worrying about tampering of others as well as easy addition of new
targets by simply adding a new `Dockerfile`.
Additionally this commit bundles the master version of the `compiler-rt` source
repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt
library itself is compiled as a `cdylib` which is then dynamically located at
runtime and we look for symbols in. There's a few hoops here, but they currently
get the job done.
All tests now execute against both gcc_s and compiler-rt, and this
testing strategy is now all hidden behind a macro as well (refactoring
all existing tests along the way).
2016-09-28 22:09:55 -07:00
Jorge Aparicio
b7fa7d3a59
put weak mem* symbols behind an opt-in Cargo feature
...
closes #64
cc #66
2016-09-22 18:02:25 -05:00
Jorge Aparicio
0404438809
test the thumbv7em-none-eabihf target
2016-09-22 06:15:05 -05:00
Jorge Aparicio
170a977587
tell cargo which linker to use
2016-08-29 21:35:53 -05:00
Jorge Aparicio
f0b6314737
install less stuff
...
it's already installed in the docker image
2016-08-29 21:25:23 -05:00
Jorge Aparicio
9b47cff39b
travis: use latest docker image
2016-08-29 21:21:59 -05:00
Jorge Aparicio
bc8f572c9f
pin xargo and gist versions
2016-08-29 20:37:41 -05:00
Jorge Aparicio
2f41babd74
fix typo
2016-08-29 20:36:52 -05:00
Jorge Aparicio
1ac627839d
travis: simplify ci scripts
2016-08-29 19:31:49 -05:00
Jorge Aparicio
948ada48b5
print rustup version
2016-08-27 12:34:39 -05:00
Jorge Aparicio
2a8b2c25a4
use newer docker image
...
it comes with ruby pre-installed
2016-08-23 21:19:18 -05:00
Jorge Aparicio
51aabf3c32
use the gist gem instead of the gist crate
...
hopefully this will work on osx and will make everything more
uniform (appveyor is already using the gem instead of the crate)
closes #51
2016-08-23 20:48:24 -05:00
Jorge Aparicio
316f5cb9ba
use the gist crate
...
but not on OSX because it doesn't work there
closes #53
cc #51
2016-08-22 21:22:16 -05:00
Matt Ickstadt
27cbb963a3
travis: Use wgetpaste to post disassemblies to gist
2016-08-22 17:49:39 -05:00
Jorge Aparicio
10fdc9b535
only show disassembly of optimized build
...
we can't really compare the disassembly of the debug build to
libcompiler-rt.a anyways
2016-08-21 11:09:32 -05:00
Jorge Aparicio
94ab3e09c5
adjust test: weak symbols are now in librlibc.rlib
2016-08-15 20:22:58 -05:00
Jorge Aparicio
5abf6b5d7c
check presence of weak symbols
2016-08-14 22:02:43 -05:00
Jorge Aparicio
95651f62a9
disable tests for ppc64le, drop logic around QEMU_ARCH
2016-08-13 19:56:34 -05:00
Jorge Aparicio
9bee966c00
add missing apt-get update
2016-08-13 19:30:30 -05:00
Jorge Aparicio
c34b356c44
try 32-bit qemu for ppc64le
2016-08-13 18:58:41 -05:00
Jorge Aparicio
b5b28c02ba
qemu-ppc64le still doesn't work
2016-08-13 18:33:40 -05:00
Jorge Aparicio
9c651118fe
enable tests for ppc64le
2016-08-13 18:00:49 -05:00
Jorge Aparicio
a2135c1a5c
no need to explicitly call qemu-$ARCH
2016-08-13 17:45:43 -05:00
Jorge Aparicio
480bbec3cd
don't call docker inside docker
2016-08-13 17:36:00 -05:00
Jorge Aparicio
aa9a282c61
actually enter docker
2016-08-13 17:27:18 -05:00
Jorge Aparicio
c277cc67be
fix bash syntax
2016-08-13 17:24:52 -05:00
Jorge Aparicio
0c2ef10160
CI: run all Linux targets inside docker
2016-08-13 17:22:12 -05:00
Jorge Aparicio
11cd95f25d
install libssh2
2016-08-13 12:58:44 -05:00
Jorge Aparicio
2f9c64a577
change Xargo installation path
2016-08-13 12:55:09 -05:00
Jorge Aparicio
164b21991c
binutils -> gcc
2016-08-13 12:47:59 -05:00
Jorge Aparicio
10ea089eb2
no rust-std for these targets
2016-08-13 12:45:37 -05:00
Jorge Aparicio
e7b10e53ac
install binutils manually
2016-08-13 12:41:50 -05:00
Jorge Aparicio
ba3bb2952f
CI: test ARM Cortex targets
...
closes #32
2016-08-13 12:12:37 -05:00
Jorge Aparicio
39ede7ee27
and libc6-dev
2016-08-11 00:26:16 -05:00
Jorge Aparicio
732f1e20af
some targets need gcc to be installed
2016-08-11 00:26:16 -05:00
Jorge Aparicio
c6f0124540
ppc64: test on 32-bit QEMU
2016-08-10 13:01:22 -05:00
Jorge Aparicio
67ed0e4553
mips: run test on 32-bit QEMU
...
cc #2
2016-08-10 11:50:41 -05:00
Jorge Aparicio
93d2342318
libgcc_s dev version
2016-08-09 16:17:06 -05:00
Jorge Aparicio
b409422782
32-bit version of libgcc
2016-08-09 15:55:25 -05:00
Jorge Aparicio
aeb057cc57
add libgcc
2016-08-09 15:46:57 -05:00
Jorge Aparicio
8c029ed1b4
use docker
2016-08-09 15:37:24 -05:00
Jorge Aparicio
ff334e9b89
fix bash syntax
2016-08-09 12:04:24 -05:00
Jorge Aparicio
d13ff6d710
fix armv7
2016-08-09 11:53:49 -05:00
Jorge Aparicio
09935e24eb
don't run tests on targets that have QEMU issues
...
cc #2
2016-08-09 11:49:55 -05:00
Jorge Aparicio
a4f06b9a8e
CI: test mipsel-unknown-linux-gnu
2016-08-08 23:26:13 -05:00
Jorge Aparicio
0c7f25bdbd
CI: test powerpc64-unknown-linux-gnu
2016-08-08 23:05:25 -05:00
Jorge Aparicio
ed068e6728
fix case syntax
2016-08-08 22:31:14 -05:00
Jorge Aparicio
edbde8c2ea
CI: test mips-unknown-linux-gnu
2016-08-08 22:03:44 -05:00
Jorge Aparicio
2485284910
fix target name in case
2016-08-08 21:49:31 -05:00
Jorge Aparicio
4b07c4bfb9
fix package name
2016-08-08 21:46:24 -05:00
Jorge Aparicio
e7c9550447
no sudo
2016-08-08 21:43:01 -05:00
Jorge Aparicio
b47fcb8a24
fix installation of c toolchain
2016-08-08 21:37:48 -05:00
Jorge Aparicio
a4077112be
apt-get update
2016-08-08 21:32:12 -05:00
Jorge Aparicio
4b453fbd0a
really install curl inside docker
2016-08-08 21:27:08 -05:00
Jorge Aparicio
a633b0cba3
install curl inside docker
2016-08-08 21:20:46 -05:00
Jorge Aparicio
66d3efdce3
don't skip install phase inside docker
2016-08-08 21:14:04 -05:00
Jorge Aparicio
cc0f2acf76
set PATH inside docker
2016-08-08 21:02:07 -05:00
Jorge Aparicio
95eb812d38
don't recursively call docker
2016-08-08 20:56:05 -05:00
Jorge Aparicio
d9deff7103
install toolchain in docker
2016-08-08 20:41:08 -05:00
Jorge Aparicio
8f85ab545d
run in xenial (docker)
2016-08-08 20:37:04 -05:00
Jorge Aparicio
6c835ef73e
explicitly use qemu-ppc64le
2016-08-08 20:04:17 -05:00
Jorge Aparicio
7e29b4a15f
CI: test powerpc64le-unknown-linux-gnu
2016-08-08 19:44:55 -05:00
Jorge Aparicio
8c9173e770
CI: test powerpc-unknown-linux-gnu
2016-08-08 19:31:37 -05:00
Jorge Aparicio
0cc4667719
macOS: actually install binutils
2016-08-07 17:32:53 -05:00
Jorge Aparicio
c7c04f8c48
macOS: use gnu binutils
2016-08-07 17:29:31 -05:00
Jorge Aparicio
fda97847bb
macOS: install binutils
2016-08-07 17:23:30 -05:00
Jorge Aparicio
994c5a2a01
nm: drop --defined-only flag
...
it doesn't work on macOS
2016-08-07 17:18:37 -05:00
Jorge Aparicio
a16950e580
ignore objdump exit code
2016-08-07 17:14:30 -05:00
Jorge Aparicio
1c98c8238a
fix objdump commands
2016-08-07 17:07:58 -05:00
Jorge Aparicio
a1334edbcd
swap install.sh and script.sh
2016-08-07 17:03:44 -05:00
Jorge Aparicio
b1846b794b
travis CI
2016-08-07 16:55:30 -05:00