- Aug 01, 2018
-
-
bors authored
Add libc definitions for HermitCore (https://hermitcore.org) HermitCore is based on lwIP, newlib, and pthread-embedded. Some definitions are similar to other targets using newlib, however some are different enough to justify an own "hermit" port and not base on the existing "newlib" port.
-
Alex Crichton authored
Fix OSX builders on CI
-
Alex Crichton authored
-
Alex Crichton authored
Looks like Travis has moved on from our old images, so we're forced to update.
-
- Jul 31, 2018
-
-
Colin Finck authored
-
bors authored
Add the FIO* consts for *-apple-* Previously only FIONREAD was implemented for x86_64 apple. The constant is shared between i{3..6}86 and x86_64, so I've moved it into the shared module rather than the 64 bit specific one. They're defined like this in sys/filio.h: ``` #define FIOCLEX _IO('f', 1) /* set close on exec on fd */ #define FIONCLEX _IO('f', 2) /* remove close on exec */ #define FIONREAD _IOR('f', 127, int) /* get # bytes to read */ #define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */ #define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */ #define FIOSETOWN _IOW('f', 124, int) /* set owner */ #define FIOGETOWN _IOR('f', 123, int) /* get owner */ #define FIODTYPE _IOR('f', 122, int) /* get d_type */ ``` Rather than decipher the C macros I got the values like so: ``` #include <stdio.h> #include <sys/ioctl.h> int main() { printf("pub const FIOCLEX: ::c_uint = 0x%x;\n", FIOCLEX); printf("pub const FIONCLEX: ::c_uint = 0x%x;\n", FIONCLEX); printf("pub const FIONREAD: ::c_ulong = 0x%lx;\n", FIONREAD); printf("pub const FIONBIO: ::c_ulong = 0x%lx;\n", FIONBIO); printf("pub const FIOASYNC: ::c_ulong = 0x%lx;\n", FIOASYNC); printf("pub const FIOSETOWN: ::c_ulong = 0x%lx;\n", FIOSETOWN); printf("pub const FIOGETOWN: ::c_ulong = 0x%lx;\n", FIOGETOWN); printf("pub const FIODTYPE: ::c_ulong = 0x%lx;\n", FIODTYPE); } $ gcc --target=i686-apple-darwin -o x x.c && file ./x && ./x ./x: Mach-O executable i386 pub const FIOCLEX: ::c_uint = 0x20006601; pub const FIONCLEX: ::c_uint = 0x20006602; pub const FIONREAD: ::c_ulong = 0x4004667f; pub const FIONBIO: ::c_ulong = 0x8004667e; pub const FIOASYNC: ::c_ulong = 0x8004667d; pub const FIOSETOWN: ::c_ulong = 0x8004667c; pub const FIOGETOWN: ::c_ulong = 0x4004667b; pub const FIODTYPE: ::c_ulong = 0x4004667a; $ gcc --target=x86_64-apple-darwin -o x x.c && file ./x && ./x ./x: Mach-O 64-bit executable x86_64 pub const FIOCLEX: ::c_uint = 0x20006601; pub const FIONCLEX: ::c_uint = 0x20006602; pub const FIONREAD: ::c_ulong = 0x4004667f; pub const FIONBIO: ::c_ulong = 0x8004667e; pub const FIOASYNC: ::c_ulong = 0x8004667d; pub const FIOSETOWN: ::c_ulong = 0x8004667c; pub const FIOGETOWN: ::c_ulong = 0x4004667b; pub const FIODTYPE: ::c_ulong = 0x4004667a; ``` I'm just awaiting an XCode install to check they're the same on arm.
-
- Jul 30, 2018
-
-
alecmocatta authored
-
alecmocatta authored
-
bors authored
Add alignment feature and use #[repr(align(x))] Trying to solve #1042. Here I introduce the discussed feature that will allow going from struct alignment with a private `__align` field to using `#[repr(align(x))]`. However, I have not implemented it for all structs that require alignment yet, only `in6_addr`. This because I did not want to spend too much time before we have discussed and solved the remaining questions regarding this. One thing to discuss is testing. I have so far not done anything to the CI scripts. So currently they will still test the crate only with the `align` feature disabled. Thus they will make sure the `__align` fields are still correct. But no automatic tests make sure everything is correct when the `align` feature is turned on. What do we want to do about that? Can we insert another `cargo test` with `--features align` to make all the Travis jobs run the test suite twice, or will that slow things down too much? I have tried using this version of libc in rustc and the standard library. And successfully changed `Ipv6Addr::new` to not use any `unsafe` and to become a `const fn`. Whether or not we want that is out of scope for this PR, but my point was that the changes introduced with this PR allow much more flexible usage of the libc structs that have alignment.
-
Linus Färnstrand authored
-
https://hermitcore.orgColin Finck authored
HermitCore is based on lwIP, newlib, and pthread-embedded.
-
- Jul 29, 2018
-
-
Linus Färnstrand authored
-
Linus Färnstrand authored
-
Linus Färnstrand authored
-
Linus Färnstrand authored
-
bors authored
Add some posix_spawn apple extension flags
-
Hiroki Noda authored
-
- Jul 22, 2018
-
-
bors authored
Revert "Link to libgcc when statically linking musl" This causes linker errors due to duplicated symbols. See https://github.com/rust-lang/rust/pull/52157
-
- Jul 21, 2018
-
-
Amanieu d'Antras authored
This reverts commit 920cfeac.
-
- Jul 18, 2018
-
-
bors authored
Add MODULE_INIT_ constants These are flags required to implement the linux kernel loading mechanism. Specifically finit_module.
-
Pascal Bach authored
-
Pascal Bach authored
-
- Jul 17, 2018
-
-
Pascal Bach authored
-
Pascal Bach authored
-
Pascal Bach authored
These are flags required to implement the linux kernel loading mechanism. Specifically finit_module.
-
bors authored
Implement statfs for dragonfly, freebsd and openbsd
-
alesharik authored
-
- Jul 16, 2018
- Jul 14, 2018
-
-
Sébastien Marie authored
-
Sébastien Marie authored
-
Sébastien Marie authored
-
Sébastien Marie authored
-
Sébastien Marie authored
-
Sébastien Marie authored
they doesn't exists on OpenBSD. put them under NetBSD specific tree.
-
- Jul 12, 2018
-
-
bors authored
Fix netbsd build with "stdbuild" A bug was introduced in #930 which caused netbsd to not link to libm. r? @alexcrichton
-
Amanieu d'Antras authored
-
Amanieu d'Antras authored
-
- Jul 10, 2018
-
-
bors authored
Fix a #[cfg] attribute It looks like this was a mistake of #930 but should be easy to fix!
-
Alex Crichton authored
It looks like this was a mistake of #930 but should be easy to fix!
-