summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bump ctest from 0.2.0 to 0.2.1dependabot/cargo/ctest-0.2.1dependabot[bot]2018-09-051-3/+3
| | | | | | | Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.0 to 0.2.1. - [Release notes](https://github.com/alexcrichton/ctest/releases) - [Commits](https://github.com/alexcrichton/ctest/compare/0.2.0...0.2.1) Signed-off-by: dependabot[bot] <support@dependabot.com>
* Auto merge of #1072 - sfackler:more-elf, r=alexcrichtonbors2018-09-032-1/+53
|\ | | | | | | Add some more elf types
| * Add some more elf typesSteven Fackler2018-09-022-1/+53
|/
* Auto merge of #1071 - Lytigas:master, r=alexcrichtonbors2018-09-021-0/+14
|\ | | | | | | | | | | | | Add mallopt First time contributor. Thanks for the excellent contributing guide. I'm not quite sure I put the method in the right place. [The GNULib docs](https://www.gnu.org/software/gnulib/manual/html_node/mallopt.html) say its not on Android 7.1, but there are [mentions of it in some android headers](https://android.googlesource.com/platform/bionic/+/master/libc/include/malloc.h).
| * Move mallopt to exclude from muslJosh Hejna2018-09-022-15/+14
| |
| * Add malloptJosh Hejna2018-09-021-0/+15
|/
* Auto merge of #1070 - redox-os:relibc, r=alexcrichtonbors2018-08-241-4/+8
|\ | | | | | | | | | | Add additional Redox OS functions This adds `chown`, `fchown`, `setenv`, and `unsetenv` to the `redox` module, and reorders the functions by name
| * Fix styleJeremy Soller2018-08-241-2/+4
| |
| * Merge branch 'master' into relibcJeremy Soller2018-08-2482-859/+5216
| |\ | |/ |/|
* | Merge pull request #1069 from cramertj/undo-fuchsia-repr-fixAlex Crichton2018-08-241-7/+1
|\ \ | | | | | | Undo division of in6_addr on Fuchsia
| * | Undo division of in6_addr on FuchsiaTaylor Cramer2018-08-241-7/+1
|/ /
* | Auto merge of #1068 - gnzlbg:patch-1, r=alexcrichtonbors2018-08-241-2/+0
|\ \ | | | | | | | | | | | | | | | sparc64 tests are passing again Closes #1064 .
| * | sparc64 tests are passing againgnzlbg2018-08-241-2/+0
|/ / | | | | Closes #1064 .
* | Auto merge of #1067 - cramertj:fuchsia-fixes, r=alexcrichtonbors2018-08-223-146/+24
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix and cleanup Fuchsia Remove false support for power and mips. Fix aarch64 definitions of nlink_t and blksize_t. r? @alexcrichton cc @sulanov
| * | Fix and cleanup FuchsiaTaylor Cramer2018-08-223-146/+24
|/ / | | | | | | | | Remove false support for power and mips. Fix aarch64 definitions of nlink_t and blksize_t.
* | Auto merge of #1065 - eeyun:eeyun/solaris_termios, r=alexcrichtonbors2018-08-161-0/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add TIOCGWINSZ accessor to solaris module Signed-off-by: Ian Henry <ihenry@chef.io> I recently noticed downstream that these request values were unavailable and needed for things like [the pb crate](https://github.com/a8m/pb). To get access to the request value I ran the following simple C code: ``` #include <sys/ioctl.h> #include <stdio.h> #include <sys/termios.h> int main(int argc, char **argv) { printf("Code: 0x%04lx\n", TIOCGWINSZ); printf("Code: 0x%04lx\n", TIOCSWINSZ); return 0; } ``` To then validate the change I ran the following simple rust: ``` extern crate libc; use libc::{ioctl, winsize, STDOUT_FILENO, TIOCGWINSZ}; fn main() { let mut wsize = winsize { ws_row: 0, ws_col: 0, ws_xpixel: 0, ws_ypixel: 0, }; unsafe { ioctl(STDOUT_FILENO, TIOCGWINSZ, &mut wsize); } println!("Sizes: {{ rows: {}, cols: {}, xpixel: {}, ypixel: {} }}", wsize.ws_row, wsize.ws_col, wsize.ws_xpixel, wsize.ws_ypixel); } ```
| * | Add TIOCGWINSZ accessor to solaris moduleIan Henry2018-08-161-0/+3
| | | | | | | | | | | | Signed-off-by: Ian Henry <ihenry@chef.io>
* | | Fix allow_failures sectionAlex Crichton2018-08-161-5/+2
|/ /
* | Allow sparc64 to fail on CIAlex Crichton2018-08-151-0/+2
| |
* | Merge pull request #1063 from jakllsch/netbsd-time50-fixesAlex Crichton2018-08-152-0/+4
|\ \ | | | | | | NetBSD: correct link_name of some time-related functions
| * | NetBSD: correct link_name of some time-related functionsJonathan A. Kollasch2018-08-152-0/+4
| | | | | | | | | | | | | | | | | | The futimes(), lutimes(), mq_timedreceive(), and mq_timedsend() functions were linking against legacy library symbols that need 32-bit time_t in structures, resulting in an ABI mismatch with 64-bit time_t.
* | | Merge pull request #1052 from debris/exchangedataAlex Crichton2018-08-152-0/+12
|\ \ \ | |/ / |/| | Add exchangedata for osx
| * | Push function into lower modulesdebris2018-08-153-8/+12
| | |
| * | Two variants of exchangedatadebris2018-08-141-1/+6
| | |
| * | Merge branch 'master' of github.com:rust-lang/libc into exchangedatadebris2018-08-1422-109/+978
| |\ \ | |/ / |/| |
* | | Auto merge of #1062 - alexcrichton:update-ctest, r=alexcrichtonbors2018-08-132-38/+38
|\ \ \ | | | | | | | | | | | | Update ctest to 0.2
| * | | Update ctest to 0.2Alex Crichton2018-08-132-38/+38
|/ / /
* | | Auto merge of #1050 - MegatonHammer:master, r=alexcrichtonbors2018-08-072-0/+54
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add libc definitions for Megaton-Hammer, a Switch Homebrew toolchain I'm working on a pure-rust toolchain to write homebrew for the Nintendo Switch called [Megaton-Hammer](http://github.com/megatonhammer/megaton-hammer). I'm hoping to get those definitions upstreamed to simplify my life :). This toolchain does not depend on a C compiler or a libc (it reimplements everything in rust) - but given many crates in the Rust ecosystem rely on the libc crate for the definition of various common types, this is what I came up with. I was wondering what a good target triple would be ? I currently gate the implementation behind `target_os = "switch"`, but if this goes upstream I figure that might cause trouble for people using the Nintendo SDK (they might already be using `target_os = "switch"` for some things). Would it be better to go with `target_env = "megatonhammer"`?
| * | | Add some switch-related libc typedefsroblabla2018-08-022-0/+54
| | | |
* | | | Auto merge of #1058 - jakllsch:netbsd-283b36ac-fab0-4e5f-b620-4325f8cedc80, ↵bors2018-08-072-1/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | r=alexcrichton NetBSD: add basic types for aarch64
| * | | | NetBSD: add basic types for aarch64Jonathan A. Kollasch2018-08-062-1/+7
|/ / / /
* | | | Auto merge of #1057 - jakllsch:netbsd-5298beff-d081-4368-ab2a-0987e84c6d02, ↵bors2018-08-067-17/+31
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | r=alexcrichton NetBSD: correct c_char signedness on arm and powerpc
| * | | | fix syntax error in previousJonathan A. Kollasch2018-08-061-1/+1
| | | | |
| * | | | NetBSD: correct c_char signedness on arm and powerpcJonathan A. Kollasch2018-08-067-17/+31
|/ / / /
* | | | Auto merge of #1056 - faern:release, r=alexcrichton0.2.43bors2018-08-062-59/+59
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | Bump version to 0.2.43 Would be nice to have the new align feature from #1044 available for general use. But mostly I want this released since I have problems using the align feature for a PR on libstd, and I suspect it's somehow because I try to use an unpublished libc (https://github.com/rust-lang/rust/pull/52872).
| * | | Bump version to 0.2.43Linus Färnstrand2018-08-062-59/+59
|/ / /
* | | Auto merge of #1053 - papertigers:illumos-epoll-event, r=alexcrichtonbors2018-08-011-0/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | illumos epoll_event struct should be packed While attempting to run `cargo test` within the mio crate on illumos I noticed a number of the tests fail. Digging into the various epoll calls I discovered that the epoll_event struct was misaligned due to extra padding. The fix is to pack the epoll_event struct with the same compiler setting that the linux variant is using. A simple rust example that demonstrates the issue: ```rust extern crate libc; use libc::epoll_event; use std::mem; fn main() { println!("{}", mem::size_of::<u64>()); println!("{}", mem::size_of::<epoll_event>()); } ``` Running the above code on Linux results in: ``` 8 12 ``` while on illumos it currently results in: ``` 8 16 ``` Looking at the `test_close_on_drop` test from mio I traced the `epoll_ctl` calls and saw the following: ``` [root@rustdev ~/src/mio]# dtrace -wn 'pid$target::epoll_ctl:entry {this->ev = arg3; printf("%d\n", arg2); print((struct epoll_event *)this->ev); stop()}' -c "/root/src/mio/target/debug/deps/test-109e1422fb40f621 test_close_on_drop" dtrace: description 'pid$target::epoll_ctl:entry ' matched 1 probe dtrace: allowing destructive actions running 1 test CPU ID FUNCTION:NAME 6 92874 epoll_ctl:entry 4 struct epoll_event * 0xfffffc7fee7feda8 test test_close_on_drop::test_close_on_drop ... test test_close_on_drop::test_close_on_drop has been running for over 60 seconds 6 92874 epoll_ctl:entry 6 struct epoll_event * 0xfffffc7fee7fee18 ^[[A 6 92874 epoll_ctl:entry 7 struct epoll_event * 0xfffffc7fee7fee18 ``` I dumped each of the epoll_event's with mdb: ``` [root@rustdev ~/src/mio]# mdb -Fp 219856 Loading modules: [ libumem.so.1 libc.so.1 ] > 0xfffffc7fee7feda8::print mdb: no symbol information for 0xfffffc7fee7feda8: no symbol corresponds to address > 0xfffffc7fee7feda8::print struct epoll_event { events = 0x80000001 data = { ptr = 0xfffffffffffffc7f fd = 0xfffffc7f u32 = 0xfffffc7f u64 = 0xfffffffffffffc7f } } > [root@rustdev ~/src/mio]# prun 219856 [root@rustdev ~/src/mio]# mdb -Fp 219856 Loading modules: [ libumem.so.1 libc.so.1 ] > 0xfffffc7fee7fee18::print struct epoll_event { events = 0x80000001 data = { ptr = 0 fd = 0 u32 = 0 u64 = 0 } } > [root@rustdev ~/src/mio]# prun 219856 [root@rustdev ~/src/mio]# mdb -Fp 2198 Loading modules: [ libumem.so.1 libc.so.1 ] > 0xfffffc7fee7fee18::print struct epoll_event { events = 0x80000004 data = { ptr = 0x100000000 fd = 0 u32 = 0 u64 = 0x100000000 } } ``` The output from the last two `epoll_event`'s represent `Token(0)` the Client and `Token(1)` from the mio test. The first one however is from `AWAKEN` which is defined as `usize::MAX`. This value should be 18446744073709551615. However if we convert the hex value we see something else: ``` > 0xfffffffffffffc7f=E 18446744073709550719 ``` Because of the extra 4 bytes of padding currently present in the illumos `epoll_event` definition the low order bits are picking up some junk from other memory. All of the poll-related mio tests pass with this change. Two other tests are still failing, which appears to be caused by an OS bug, not a problem with mio or libc.
| * | | illumos epoll_event struct should be packedMike Zeller2018-08-011-0/+1
| | | |
* | | | Auto merge of #1048 - ColinFinck:master, r=alexcrichtonbors2018-08-014-0/+748
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Fix coding style.Colin Finck2018-07-312-6/+13
| | | | |
| * | | | Add libc definitions for HermitCore (https://hermitcore.org)Colin Finck2018-07-304-0/+741
| | | | | | | | | | | | | | | | | | | | HermitCore is based on lwIP, newlib, and pthread-embedded.
* | | | | Merge pull request #1051 from alexcrichton/fix-appleAlex Crichton2018-08-015-27/+73
|\ \ \ \ \ | |_|/ / / |/| | | | Fix OSX builders on CI
| * | | | Allow iOS to failAlex Crichton2018-08-011-0/+7
| | | | |
| * | | | Fix OSX builders on CIAlex Crichton2018-08-015-27/+66
|/ / / / | | | | | | | | | | | | | | | | Looks like Travis has moved on from our old images, so we're forced to update.
| | * | Use u32 for exchangedatadebris2018-08-141-1/+1
| | | |
| | * | change exchangedata param c_long -> c_ulongdebris2018-08-011-1/+1
| | | |
| | * | exchangedata is osx only, fix the function signaturedebris2018-08-012-3/+3
| | | |
| | * | Merge branch 'master' into exchangedatadebris2018-08-0142-571/+1248
| | |\ \ | |_|/ / |/| | |
* | | | Auto merge of #1049 - alecmocatta:master, r=alexcrichtonbors2018-07-312-2/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | remove FIOCLEX and FIONBIO which were shadowing a bsd-wide declarationalecmocatta2018-07-301-2/+0
| | | | |