Commit Graph

180 Commits

Author SHA1 Message Date
gnzlbg
0180e40f22 Libcore fails to build for sparc-unknown-linux-gnu 2019-02-20 11:21:38 +01:00
gnzlbg
bbe4571216 Remove non-existent uclib targets 2019-02-20 11:21:38 +01:00
gnzlbg
0ffba9f96b Test that targets without a libstd component build on CI using xargo 2019-02-20 11:21:38 +01:00
gnzlbg
a423d87417 Re-enable debug output in dox.sh and remove unused variable in runtest 2019-02-13 18:04:10 +01:00
gnzlbg
83298283c7 Generate a proper landing page for the master docs 2019-02-13 14:48:50 +01:00
gnzlbg
4a56c47a17 Increase the number of retries for curl 2019-02-09 18:22:35 +01:00
gnzlbg
8f1acf4643 Build all platforms in CI
This commit adds a `ci/build.sh` script that checks that libc builds correctly
for some common configurations (`--no-default-features`, `default`,
`extra_traits`) on most targets supported by Rust since Rust 1.13.0 (the oldest
Rust version that libc supports).

The build matrix is refactored into two stages.

The first stage is called `tools-and-build-and-tier1` and it aims to discover
issues quickly by running the documentation and linter builds, as well as
checking that the library builds correctly on all targets in all supported
channels and "problematic" Rust versions; Rust versions adding major new
features like `repr(align)`, `union`, etc. This first stage also runs
libc-test for the tier-1 targets on linux and osx. These builds finish
quickly because no emulation is necessary.

The second stage is called `tier2` and it runs libc-test for all other targets
for which we are currently able to do so.

Closes #1229 .
2019-02-07 13:44:32 +01:00
Alan Somers
38cf5b15c6 Add an integration test for the cmsg(3) functions.
Since these are defined in C as macros, they must be reimplemented in
libc as Rust functions.  They're hard to get exactly right, and they
vary from platform to platform.  The test builds custom C code that uses
the real macros, and compares its output to the Rust versions' output
for various inputs.

Skip the CMSG_NXTHDR test on sparc64 linux because it hits a Bus Error.

Issue #1239

Skip the entire cmsg test program on s390x because it dumps core
seemingly before the kernel finishes booting.

Issue #1240
2019-02-05 08:26:17 -07:00
bors
be1a8dedf0 Auto merge of #1234 - gnzlbg:android_runtest, r=gnzlbg
Update runtest-android

Keep the implementation in sync with packed_simd and stdsimd.
2019-02-05 08:36:09 +00:00
Bryant Mairs
868a85d05d Implement PartialEq,Eq for all types 2019-02-02 13:06:58 -08:00
gnzlbg
6732bf1d41 Update runtest-android 2019-01-30 15:35:08 +01:00
gnzlbg
45adbf88dd Re-enables android build jobs
Closes #1170 .
2019-01-21 20:34:43 +01:00
Alex Crichton
c66221d07d
Merge pull request #1172 from piersfinlayson/master
Fix for rust-lang/rust issue #50583
2018-12-11 15:47:36 -06:00
Piers Finlayson
a01c32d6c8 Fix for rust-lang/rust issue #50583 2018-12-10 19:55:38 +00:00
Alan Somers
e88e6b99de Move FreeBSD testing from Travis/QEMU to Cirrus-CI
Fixes #1163
2018-12-07 13:11:09 -07:00
bors
aee584c3c0 Auto merge of #1130 - palfrey:strcase-various, r=alexcrichton
Add various strcase* functions and getline

Adds
* `strcasestr`
* `strcasecmp`
* `strncasecmp`
*  `getline`

I *think* they're semi-universal, but shall see what CI pops up...
2018-11-27 01:51:49 +00:00
Tom Parker-Shemilt
b46b6e2e72 Retry all curl operations 2018-11-26 21:34:43 +00:00
Tom Parker-Shemilt
0942070c31 Remove hacky Travis workaround 2018-11-26 12:07:34 +00:00
Tom Parker-Shemilt
9a04c39566 Remove non-POSIX loop construct 2018-11-24 19:27:22 +00:00
Tom Parker-Shemilt
b05e05819d Download Docker images first as that seems to work better at least locally 2018-11-24 19:18:51 +00:00
gnzlbg
92172d9161 Add SGX C types. 2018-11-20 23:15:07 +01:00
gnzlbg
37a0bd3251 Fix shellcheck issues 2018-11-20 10:25:26 +01:00
Jonathan A. Kollasch
7cd5d11494 style: allow target_arch #[cfg()] statements 2018-10-30 22:10:53 +00:00
Alex Crichton
83f78df8c6 Fix OSX builders on CI
Looks like Travis has moved on from our old images, so we're forced to
update.
2018-08-01 07:49:22 -07:00
Linus Färnstrand
5f38367da3 Add testing with align feature 2018-07-29 18:54:45 +02:00
Pascal Bach
23657074d9 provide linux/module.h in debian sparc64 build 2018-07-18 21:56:14 +02:00
Pascal Bach
1abcbda8c4 use new headers for musl build 2018-07-18 21:56:14 +02:00
Pascal Bach
aa41265f3f Update musl ci jobs to 1.1.19 2018-07-17 22:15:19 +02:00
Amanieu d'Antras
3d763ae4aa Disable test for --no-default-features on rumprun 2018-07-12 17:47:31 +01:00
Bryant Mairs
d41e62ac29 Correct path for sparc64 debian image 2018-05-31 19:24:53 -07:00
Mike Hommey
d9013273a0 Add PTHREAD_*_MUTEX_INITIALIZER_NP for glibc
`pthread_mutex_t` varies across architectures, in several ways:
- endianness alters the ordering of bytes, since the contents of the
  struct are larger than 8-bit.
- its length varies.
- the location of the mutex kind (`PTHREAD_MUTEX_RECURSIVE`,
  `PTHREAD_MUTEX_ERRORCHECK` or `PTHREAD_MUTEX_ADAPTIVE_NP`) varies
  between 32-bit and 64-bit: On 32-bit architectures, it is preceded by
  three int/unsigned int, while on 64-bit architectures, it is preceded
  by four of them.

These initializers are only available from <pthread.h> when _GNU_SOURCE
is defined.

Relax the cfg_if check in ci/style.rs to allow #[cfg(target_endian)]
tests.
2018-04-11 06:38:18 +09:00
Francis Gagné
18341fd23a Rename the dox configuration option to cross_platform_docs
The libc crate is used as a dependency of the Rust compiler. Its build
system passes `--cfg dox` to all crates when generating their
documentation. libc's documentation is generated when the build system
is asked to generate the compiler documentation because `cargo doc`
automatically documents all dependencies.

When the dox configuration option is enabled, libc disables its
dependency on the core crate and provides the necessary definitions
itself. The dox configuration option is meant for generating
documentation for a multitude of targets even if the core crate for that
target is not installed. However, when documenting the compiler, it's
not necessary to do that; we can just use core or std as usual.

This change is motivated by the changes made to the compiler in
rust-lang/rust#48171. With these changes, it's necessary to provide
implementations of the Clone and Copy traits for some primitive types in
the library that defines these traits (previously, these implementations
were provided by the compiler). Normally, these traits (and thus the
implementations) are provided by core, so any crate that uses
`#![no_core]` must now provide its own copy of the implementations.

Because libc doesn't provide its own copy of the implementations yet,
and because the compiler's build system passes `--cfg dox` to libc,
generating the documentation for the compiler fails when generating
documentation for libc. By renaming the configuration option, libc will
use core or std and will thus have the necessary definitions for the
documentation to be generated successfully.
2018-03-18 16:39:40 -04:00
Wesley Moore
c1fa4b68a8 Update FreeBSD docker CI to use FreeBSD 11.1 image 2018-03-16 08:23:01 +11:00
Wesley Moore
d3e6651ff8 Update the instructions for building a FreeBSD CI image 2018-03-15 21:22:00 +11:00
gnzlbg
f9c396803c perform ctest with and without std 2018-02-27 17:36:45 +01:00
gnzlbg
5b890a31bd fix ci script 2018-02-27 17:08:14 +01:00
gnzlbg
988843834f test --no-default-features and fix musl builds 2018-02-27 15:47:18 +01:00
Alex Crichton
ac4afe746f Switch to sparc64 to debian:stretch
Looks like ubuntu 17.04 is broken now and it fails to link on 17.10 and 18.04.
It seems to work on stretch though!
2018-01-18 11:24:40 -08:00
Alex Crichton
1f29ac3167 Move some containers to ubuntu 18.04
Apparently 17.04 is broken now?
2018-01-18 11:21:30 -08:00
Alex Crichton
6978440054 Fix wasm tests
Looks like `cargo test` is now trying to test too many files due to
rust-lang/cargo#4750 so add a clause to the wrapper to ignore the bogus ones for
now
2017-11-25 14:11:14 -08:00
Alex Crichton
4d7fa243c6 Fix the FreeBSD target
It wasn't expecting a `*.d` file to exist, now it does.
2017-11-25 13:56:29 -08:00
Sébastien Santoro
97a81d7920 Use more convenient and UNIX-agnostic shebang
Pure sh scripts should use /bin/sh as it's available on every platform.

When using bash-specific features, use env to find it, as bash can
be installed in different places according the OS.
2017-11-13 13:42:00 +00:00
Marco A L Barbosa
6fa3870e5b Run sparc64-unknown-linux-gnu tests on qemu system 2017-10-31 10:10:35 -02:00
Marco A L Barbosa
cd2e87d575 Run s390x test in qemu system instead of qemu user 2017-10-31 09:44:54 -02:00
bors
10ac3df173 Auto merge of #824 - malbarbo:x32-1, r=alexcrichton
Fixes and test for x86_64-unknown-linux-gnux32

This fixes all libc tests and almost all rustc tests (3 libstd tests and one run-pass test fails).

Fixes https://github.com/rust-lang/libc/issues/816https://github.com/rust-lang/libc/issues/816
2017-10-28 04:03:07 +00:00
bors
25fb72e359 Auto merge of #823 - malbarbo:sparc64-test, r=alexcrichton
Add sparc64-unknown-linux-gnu to CI (with disabled tests)

Tests are disabled because qemu segfaults, see https://github.com/rust-lang/libc/issues/822

The builder is still useful to catch some errors.
2017-10-28 03:34:15 +00:00
bors
c6abfc1f70 Auto merge of #821 - malbarbo:mips64el-test, r=alexcrichton
Add mips64el to CI
2017-10-28 03:04:32 +00:00
bors
84d72c659d Auto merge of #818 - malbarbo:powerpc64le-test, r=alexcrichton
Add powerpc64le to CI
2017-10-28 02:34:11 +00:00
Marco A L Barbosa
a9115d5e4b Fix android ci 2017-10-27 16:46:32 -02:00
Marco A L Barbosa
e63f46a0ce Add issue for linux x32 failing to build 2017-10-27 13:15:32 -02:00