Fix doc generation on travis.
Documentation generation appears to be failing on master (https://travis-ci.org/rust-lang/libc/jobs/183483333):
```
Collecting ghp-import
Downloading ghp-import-0.4.1.tar.gz
Collecting travis
Could not find a version that satisfies the requirement travis (from versions: )
No matching distribution found for travis
```
Basically `--user` doesn't appear to take an option, so `pip install ghp_import --user $USER` makes pip think the user is a package that needs to be installed (in this case `travis`). As there is no `travis` package, it dies.
Documentation generation appears to be failing on master (https://travis-ci.org/rust-lang/libc/jobs/183483333):
```
Collecting ghp-import
Downloading ghp-import-0.4.1.tar.gz
Collecting travis
Could not find a version that satisfies the requirement travis (from versions: )
No matching distribution found for travis
```
Basically `--user` doesn't appear to take an option, so `pip install ghp_import --user $USER` makes pip think the user is a package that needs to be installed (in this case `travis`). As there is no `travis` package, it dies.
When checking the status from waitpid on a kill -STOP <child_pid> WIFSIGNALED returns true
Currently in WIFSIGNALED rust is doing:
(status & 0x7f) + 1
where status is i32
As defined in /usr/include/x86_64-linux-gnu/bits/waitstatus.h
#define __WIFSIGNALED(status) \
(((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
Here is an example of the issue:
http://paste2.org/fXc8BxJ0
Run it, and it'll print the child pid then:
kill -STOP <child_pid>
Expect:
Stopped by signal print statement
Results:
Killed by signal print statement
Using the i32, it wont overflow leaving you with 128 returning true, using the waitstatus define you'll end up with -64 (since it shifts 1 right) which would return false. Though the C version shifts right once not really sure *why* but theres most likely a reason somewhere.
For the fix, just cast to i8 (signed char pretty much) as the C version is doing.
RUNNING ALL TESTS
PASSED 7356 tests
i686-unknown-openbsd libc correction
Now I had been able to run testsuite on i686-unknown-openbsd, here a batch of corrections.
- `suseconds_t` is `c_long` (`i64` or `i32` depending the arch)
- struct siginfo_t padding adjustment (the pointer `si_addr` makes the pad to change depending pointer size)
I tested the PR on i686-unknown-openbsd and x86_64-unknown-openbsd.
This helps caching between runs and can help speed up turnaround time for
various operations. The old android container didn't work out for some reason
due to permissions so the definition has now been vendored locally to just
rebuild it each time.