Commit Graph

103 Commits

Author SHA1 Message Date
Alex Crichton
a1377878c6 Test with the 'c' feature enabled on CI 2017-06-22 14:32:16 -07:00
Jorge Aparicio
19b2efdf36 move intrinsics test from src/bin to examples
with this change the libc crate is not required when calling `cargo build -p
compiler-builtins`
2017-04-11 17:09:05 -05:00
Jorge Aparicio
55294baf7a put test generation behind a Cargo feature
to reduce build time for the most common case of not running tests
2017-04-10 17:27:25 -05:00
Jorge Aparicio
3f723d1141 modify the CI setup to run tests on the thumb targets 2017-04-10 17:16:13 -05:00
Jorge Aparicio
3992ed1e7a CI: use a recent nightly
- add #[no_mangle] to the panic_fmt lang item to adjust to changes in
the visibility algorithm

- adjust to changes in the layout of Cargo's target directory

- use a newer Xargo to reduce the build time of the sysroot (only core
is compiled as part of the sysroot now)
2016-12-31 10:04:40 -05:00
bors
70009a311c Auto merge of #124 - japaric:rustbuild, r=alexcrichton
by default, mark this crate as the #![compiler_builtins] crate

as this is how most users will want to use this crate

r? @alexcrichton
2016-12-13 00:02:56 +00:00
Jorge Aparicio
3484b2b68e by default, mark this crate as the #![compiler_builtins] crate
as this is how most users will want to use this crate
2016-12-11 16:18:43 -05:00
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