- Feb 29, 2020
-
-
Yuki Okushi authored
-
- Feb 21, 2020
-
-
Lzu Tao authored
-
- Sep 16, 2019
-
-
Magnus Ulimoen authored
-
- Sep 12, 2019
-
-
gnzlbg authored
-
- May 29, 2019
-
-
gnzlbg authored
-
- Feb 13, 2019
-
-
gnzlbg authored
-
- Feb 07, 2019
-
-
gnzlbg authored
This PR fixes the build on all platforms and all Rust version down to the minimum Rust version supported by libc: Rust 1.13.0. The `build.rs` is extended with logic to detect the newer Rust features used by `libc` since Rust 1.13.0: * Rust 1.19.0: `untagged_unions`. APIs using untagged unions are gated on `cfg(libc_unions)` and not available on older Rust versions. * Rust 1.25.0: `repr(align)`. Because `repr(align)` cannot be parsed by older Rust versions, all uses of `repr(align)` are split into `align.rs` and `no_align.rs` modules, which are gated on the `cfg(libc_align)` at the top level. These modules sometimes contain macros that are expanded at the top level to avoid privacy issues (`pub(crate)` is not available in older Rust versions). Closes #1242 . * Rust : `const` `mem::size_of`. These uses are worked around with hardcoded constants on older Rust versions. Also, `repr(packed)` structs cannot automatically `derive()` some traits like `Debug`. These have been moved into `s_no_extra_traits!` and the lint of missing `Debug` implementations on public items is silenced for these. We can manually implement the `extra_traits` for these in a follow up PR. This is tracked in #1243. Also, `extra_traits` does not enable `align` manually anymore. Since `f64::to_bits` is not available in older Rust versions, its usage has been replaced with a `transmute` to an `u64` which is what that method does under the hood. Closes #1232 .
-
- Feb 03, 2019
-
-
Bryant Mairs authored
-
Bryant Mairs authored
This was not compile-tested on all platforms, but instead all `pub enum` types had a `Debug` impl derived for them.
-
- Dec 10, 2018
-
-
Alex Crichton authored
-
- Nov 23, 2018
-
-
Tom Parker-Shemilt authored
-
- Nov 21, 2018
-
-
gnzlbg authored
-
- Jan 09, 2018
-
-
Ed Schouten authored
-
Ed Schouten authored
On ARM64, it is supposed to be unsigned char: $ aarch64-unknown-cloudabi-cc -dM -E - < /dev/null | grep __CHAR_UNSIGNED__ #define __CHAR_UNSIGNED__ 1
-
- Jan 07, 2018
-
-
Ed Schouten authored
Even though this data type is not used by libstd in any platform independent code, one of the unit tests in src/libstd/time/mod.rs refers to it. Instead of making that unit test more complicated, simply add time_t, matching the type used by the C library.
-
- Jan 02, 2018
-
-
Ed Schouten authored
This constant is not used by the C library, which is why I didn't add it initially. It is, however, used by libtest to determine the parallelism for the execution of tests.
-
- Dec 28, 2017
-
-
Ed Schouten authored
These are now used by libstd's termination.rs.
-
Ed Schouten authored
-
- Dec 27, 2017
-
-
Ed Schouten authored
-
Ed Schouten authored
-
Ed Schouten authored
CloudABI is a sandboxed UNIX-like runtime environment, based on the principle of capability-based security. As CloudABI is intended to be cross-platform, the system call layer is specified here: https://github.com/NuxiNL/cloudabi/blob/master/cloudabi.txt From these definitions, we automatically generate C and Rust bindings. The latter is published on crates.io: https://crates.io/crates/cloudabi My goal is to implement libstd for CloudABI in such a way that it uses the C library as little as possible; only in places where it would ease interfacing with C code (e.g., thread creation). In places where constants in the C library are directly based on the CloudABI specification (e.g., errnos), use the constants provided by the cloudabi crate.
-