Copy structs from bits/user.h for musl x86_64
While statically compiling a binary with `musl`, I ran into the following error regarding a missing struct:
```
error[E0412]: cannot find type `user_regs_struct` in crate `libc`
--> src/debug.rs:37:32
|
37 | fn show_user_regs(regs: &libc::user_regs_struct) -> String {
| ^^^^^^^^^^^^^^^^ not found in `libc`
```
This struct was previously added for `glibc` in #599, but was never added to `musl`, despite the data format being the same in both.
This fix simply copies `user_regs_struct` into the proper location within the `musl` files.
Remove WASI Core API
Closes#1434
This change does not break the backwards compatibility promise since WASI Core API is unstable right now. If applications or libraries want to use Core API directly they should use [`wasi`](https://crates.io/crates/wasi) instead of `libc`.
Blocked by: rust-lang/rust#63676
cc @sunfishcode
Deprecate RLIM_NLIMITS
This constant is not stable across OS versions, so it cannot be used in
any backwards- or forwards- compatible way. It's typically used to size
arrays in the kernel and in debugging utilities that are closely tied to
the OS version. Since libc is ignorant about OS versions, we shouldn't
even be defining it.
Update Emscripten system types
These changes bring the types up to parity with recent Emscripten
versions using the upstream LLVM wasm backend. These changes should be
coordinated with the upgrade of rustc's Emscripten support. See
https://internals.rust-lang.org/t/upgrading-rust-s-emscripten-support/10684
This constant is not stable across OS versions, so it cannot be used in
any backwards- or forwards- compatible way. It's typically used to size
arrays in the kernel and in debugging utilities that are closely tied to
the OS version. Since libc is ignorant about OS versions, we shouldn't
even be defining it.
ci: switch to the rust-lang-ci-mirrors bucket for mirrors
Previously mirrors were stored in the rust-lang-ci2 bucket, which is
meant to store temporary data (the CI artifacts). This switches the code
to fetch from the new mirrors bucket.
The old files won't be removed, but they won't be backed up either.
r? @gnzlbg
Previously mirrors were stored in the rust-lang-ci2 bucket, which is
meant to store temporary data (the CI artifacts). This switches the code
to fetch from the new mirrors bucket.
The old files won't be removed, but they won't be backed up either.
Some update for vxWorks
This is to address issues:
rust-lang#1469 and rust-random/getrandom#86 (comment)
What have been changed in this PR:
1. adding randBytes(), randABytes(), randUBytes(), randSecure() and taskDelay()
2. change armv7-wrs-vxworks to armv7-wrs-vxworks-eabihf
3. code cleanup
Define newlib socket types by target arch
This is a follow-up to https://github.com/rust-lang/libc/pull/1477. As mentioned in that PR, the primary (only?) users of these newlib definitions are myself and @leo60228. This PR makes it so that my arm-based 3DS target keeps using the old socket definitions while leo's aarch64-based Switch target uses the BSD versions.
The 3DS also has inverted definitions for `POLLHUP` and `POLLOUT` for whatever reason, so I figured I'd take care of that here too.
Remove invalid Fuchsia functions
Extension of #1468
These functions are not present in Fuchsia's libc, so they cannot be
used in a program today. If Fuchsia ever decides to add these functions
to their libc, they can be added back as necessary.
These files were generated in the following manner:
1. Create a list of the current functions in Fuchsia's libc, put in `rust-functions.txt`
2. Change directory into [`fuchsia/zircon/third_party/ulib/musl/include`](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/third_party/ulib/musl/include/)
3. Run a script to determine which symbols in `rust-functions.txt` are not in the include dir:
```bash
for i in $(cat rust-functions.txt);
if ! rg $i > /dev/null; then
echo $i
fi
done
```
4. This produces [a list of 99 functions](https://github.com/rust-lang/libc/pull/1468#issuecomment-521777743), which are then removed from this crate.
Add musl support for MIPS64 & bump to 0.2.63
Tested with patched stage2; both static and dynamic binaries confirmed working.
Initial CI support in the form of no-core targets are added.