Commit Graph

2078 Commits

Author SHA1 Message Date
Jeremy Soller
81e250f471 Add setenv/unsetenv 2018-08-11 16:44:04 -06:00
bors
a7e78a78e1 Auto merge of #955 - afck:master, r=alexcrichton
Add MCL_CURRENT and MCL_FUTURE to s390.
2018-03-24 22:44:56 +00:00
bors
9d6556c9fa Auto merge of #954 - cphrn:master, r=alexcrichton
Add strtonum to OpenBSD

OpenBSD provides [strtonum](http://man.openbsd.org/strtonum) but it is not in libc, yet.
2018-03-24 21:53:52 +00:00
bors
6fd31ae451 Auto merge of #951 - FraGag:rename-dox-cfg, r=alexcrichton
Rename the dox configuration option to cross_platform_docs

The libc crate is used as a dependency of the Rust compiler. Its build system passes `--cfg dox` to all crates when generating their documentation. libc's documentation is generated when the build system is asked to generate the compiler documentation because `cargo doc` automatically documents all dependencies.

When the dox configuration option is enabled, libc disables its dependency on the core crate and provides the necessary definitions itself. The dox configuration option is meant for generating documentation for a multitude of targets even if the core crate for that target is not installed. However, when documenting the compiler, it's not necessary to do that; we can just use `core` or `std` as usual.

This change is motivated by the changes made to the compiler in rust-lang/rust#48171. With these changes, it's necessary to provide implementations of the `Clone` and `Copy` traits for some primitive types in the library that defines these traits (previously, these implementations were provided by the compiler). Normally, these traits (and thus the implementations) are provided by core, so any crate that uses `#![no_core]` must now provide its own copy of the implementations.

Because libc doesn't provide its own copy of the implementations yet, and because the compiler's build system passes `--cfg dox` to libc, generating the documentation for the compiler fails when generating documentation for libc. By renaming the configuration option, libc will use `core` or `std` and will thus have the necessary definitions for the documentation to be generated successfully.

**Note:** rust-lang/rust#48171 is blocked on this PR and on a release of libc including this change on crates.io. (Some crates in the compiler use libc as a submodule, while others use a version from crates.io.)
2018-03-24 20:29:52 +00:00
Andreas Fackler
0bb381c51d Add MCL_CURRENT and MCL_FUTURE to s390. 2018-03-24 17:25:25 +01:00
Jan S
8744ca11ae Add strtonum to OpenBSD 2018-03-22 22:19:13 +01:00
Francis Gagné
e1fd577574 Bump to 0.2.40 2018-03-18 21:55:10 -04:00
Francis Gagné
18341fd23a Rename the dox configuration option to cross_platform_docs
The libc crate is used as a dependency of the Rust compiler. Its build
system passes `--cfg dox` to all crates when generating their
documentation. libc's documentation is generated when the build system
is asked to generate the compiler documentation because `cargo doc`
automatically documents all dependencies.

When the dox configuration option is enabled, libc disables its
dependency on the core crate and provides the necessary definitions
itself. The dox configuration option is meant for generating
documentation for a multitude of targets even if the core crate for that
target is not installed. However, when documenting the compiler, it's
not necessary to do that; we can just use core or std as usual.

This change is motivated by the changes made to the compiler in
rust-lang/rust#48171. With these changes, it's necessary to provide
implementations of the Clone and Copy traits for some primitive types in
the library that defines these traits (previously, these implementations
were provided by the compiler). Normally, these traits (and thus the
implementations) are provided by core, so any crate that uses
`#![no_core]` must now provide its own copy of the implementations.

Because libc doesn't provide its own copy of the implementations yet,
and because the compiler's build system passes `--cfg dox` to libc,
generating the documentation for the compiler fails when generating
documentation for libc. By renaming the configuration option, libc will
use core or std and will thus have the necessary definitions for the
documentation to be generated successfully.
2018-03-18 16:39:40 -04:00
bors
3e9ccfa72f Auto merge of #799 - asomers:fdatasync, r=alexcrichton
Define fdatasync on FreeBSD.  It was introduced in FreeBSD 11.1.
2018-03-17 17:45:29 +00:00
Alan Somers
549da8a7af Define fdatasync on FreeBSD. It was introduced in FreeBSD 11.1. 2018-03-16 16:10:09 -06:00
bors
12bdc41b8e Auto merge of #950 - wezm:update-freebsd-ci-image, r=alexcrichton
Update the FreeBSD CI image

As per #948 and #799 the FreeBSD CI qemu image needs to be updated to FreeBSD 11. I have done this and updated the README with the detailed steps taken. The new image is available for download at: http://bsd-ci.com/FreeBSD-11.1-RELEASE-amd64.qcow2.xz
2018-03-16 20:09:52 +00:00
Wesley Moore
cddc3385ce Merge branch 'fix-build-freebsd' into update-freebsd-ci-image 2018-03-17 07:02:44 +11:00
Wesley Moore
c1fa4b68a8 Update FreeBSD docker CI to use FreeBSD 11.1 image 2018-03-16 08:23:01 +11:00
Wesley Moore
d3e6651ff8 Update the instructions for building a FreeBSD CI image 2018-03-15 21:22:00 +11:00
bors
9c561768f9 Auto merge of #949 - humenda:master, r=alexcrichton
redefine pthread_t for l4re-uclibc
2018-03-12 21:59:40 +00:00
Sebastian Humenda
aa6afb9b69 redefine pthread_t for l4re-uclibc 2018-03-12 22:22:44 +01:00
Wesley Moore
be2f062767 Fix test suite on FreeBSD 11 2018-03-12 11:03:46 +11:00
bors
787420a7a3 Auto merge of #946 - bgermann:master, r=alexcrichton
Add ___errno() for Solaris
2018-03-10 18:29:06 +00:00
bors
650d58ea4f Auto merge of #947 - bgermann:master, r=alexcrichton
Edit documentation

Add sparc64-unknown-linux-gnu and x86_64-sun-solaris.
Remove aarch64-unknown-linux-musl.
2018-03-10 18:03:25 +00:00
bgermann
cf70168621 Edit documentation
Add sparc64-unknown-linux-gnu and x86_64-sun-solaris.
Remove aarch64-unknown-linux-musl.
2018-03-10 13:10:50 +01:00
bgermann
4c1d1f809d Add ___errno() for Solaris 2018-03-10 09:45:55 +01:00
bors
ebb3d05fd4 Auto merge of #945 - wictory:rectract_ucred_from_openbsd, r=alexcrichton
Retract ucred type alias for sockpeercred from OpenBSD and Bitrig

Introduced in [this](https://github.com/rust-lang/libc/pull/941) PR.
2018-03-08 21:06:48 +00:00
Wictor Lund
ba2e460b4e Retract ucred type alias for sockpeercred from OpenBSD and Bitrig 2018-03-08 22:15:12 +02:00
bors
837310de9a Auto merge of #942 - wictory:pledge_changed, r=alexcrichton
Arguments of pledge(2) changed.

The arguments of pledge(2) have changed. However, the changes have to yet been propagated to Bitrig.

https://marc.info/?l=openbsd-tech&m=151268831628549&w=2
2018-03-07 22:12:38 +00:00
bors
1669334a6e Auto merge of #943 - wictory:recycle_ffi_openbsd, r=alexcrichton
Recycle IFF_NOTRAILERS into IFF_STATICARP in OpenBSD but not in Bitrig.

https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/net/if.h?rev=1.190&content-type=text/x-cvsweb-markup
2018-03-07 21:26:12 +00:00
bors
30c205c7b1 Auto merge of #944 - wictory:invalid_functions_in_openbsd, r=alexcrichton
getpwent_r() and getgrent_r() doesn't exist in OpenBSD and Bitrig
2018-03-07 16:27:40 +00:00
Wictor Lund
88c536dc75 Recycle IFF_NOTRAILERS into IFF_STATICARP in OpenBSD but not in Bitrig.
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/net/if.h?rev=1.190&content-type=text/x-cvsweb-markup
2018-03-07 18:17:48 +02:00
Wictor Lund
6b20b3761c getpwent_r() and getgrent_r() exists in NetBSD, but not in OpenBSD and Bitrig. 2018-03-07 18:16:37 +02:00
Wictor Lund
349d343caa Arguments of pledge(2) changed.
https://marc.info/?l=openbsd-tech&m=151268831628549&w=2
2018-03-07 17:52:34 +02:00
bors
659de79564 Auto merge of #941 - wictory:ucred_openbsd, r=alexcrichton
Added ucred (sockpeercred) for OpenBSD and Bitrig

OpenBSD and Bitrig has `struct ucred`implemented in the way it is used in `getsockopt(2)` with `SOL_SOCKET` and `SO_PEERCRED`. However, it is called `struct sockpeercred`.

Source: https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/sys/socket.h?rev=1.65&content-type=text/x-cvsweb-markup

I added a type alias for `ucred` to enable Linux compatibility, but I'm not sure this is the correct way to do it.
2018-03-07 15:14:59 +00:00
Wictor Lund
2e38d9a944 Added ucred (sockpeercred) for OpenBSD and Bitrig 2018-03-07 16:00:43 +02:00
bors
ed04152aac Auto merge of #939 - ctrlcctrlv:master, r=alexcrichton
Add FreeBSD `get[pw|gr]ent_r`, forgotten in #934

Sorry, accidentally forgot this when submitting #934..
2018-03-05 16:06:48 +00:00
Fredrick Brennan
528374ed9a Add FreeBSD get[pw|gr]ent_r, forgotten in #934
Sorry, accidentally forgot this when submitting #934..
2018-03-05 21:25:55 +08:00
bors
936e16bccb Auto merge of #934 - ctrlcctrlv:master, r=alexcrichton
Add passwd/group APIs needed for nix-rust/nix#864

Hope I did this right. I only added platforms I could personally test. . .

cc: @gnzlbg
2018-03-03 03:25:49 +00:00
Fredrick Brennan
d058e0c87a Refresh Cargo.lock 2018-03-05 02:52:46 +00:00
Fredrick Brennan
6d959f1a53 Fix BSD errors (hopefully) 2018-03-04 13:11:04 +00:00
Fredrick Brennan
99869e02ec Fix failure to document for Open/NetBSD 2018-03-04 10:48:39 +00:00
Fredrick Brennan
0f24a662b0 Fix long line 2018-03-04 10:41:02 +00:00
Fredrick Brennan
6228556cfa Fix issues raised by @gnzlbg 2018-03-04 10:09:43 +00:00
Fredrick Brennan
f59c095c5c Remove "double blank line" 2018-03-03 11:53:39 +00:00
Fredrick Brennan
74c554c395 Fix build error on stable Rust 2018-03-03 11:26:40 +00:00
Fredrick Brennan
5f9538d1e2 Add passwd/group APIs needed for nix-rust/nix#864 2018-03-03 11:13:02 +00:00
bors
68d4848fe6 Auto merge of #937 - bdrewery:freebsd-ino64-compat, r=alexcrichton
Use pre-ino64 FreeBSD symbols to resolve binary compatibility.

This follows the same method as other platforms like OSX and NetBSD.

This will fix rustup and building from git (once libc is updated for bootstrap)
on FreeBSD12 post-ino64 in f713b08c02.
It also avoids having to hotpatch the stage0 compiler, and HOME/.cargo
libc files on FreeBSD12 to build rust.

The only real pitfall is that this will prevent interaction with inodes that
have an ino_t above the 32-bit limit due to truncation.  On the other hand
Rust won't work at all on 12 without doing this currently.  In general
it should not be a problem for users and if they need 64-bit ino_t they
can use a patched libc, rather than the current state of affairs in
requiring a patched libc to use Rust on 12.

A better, or complementary, approach would be something like proposed in
https://github.com/rust-lang/rfcs/pull/2048 to allow targetting a specific
version of FreeBSD. This would allow Rust to default to this compatibility
mode by targetting FreeBSD10 and still allow targetting FreeBSD12 for 64-bit
ino_t.

The symbol versions used were taken from the old version in
f713b08c02 (diff-61a32fcfb7ecd4517665fed591813c57)
and
f713b08c02 (diff-7f67ccf8b5f44ff2f54eaab0207abb8d).

The scope of functions versioned here differs from other platforms as
not all structs were modified that were on others, such as DIR for
`opendir`, `telldir`, etc.  Only functions using dirent, stat, glob_t,
and dev_t need the changes.

Fixes https://github.com/rust-lang/rust/issues/42681
2018-03-02 01:19:11 +00:00
Bryan Drewery
78f93220d7 Use pre-ino64 FreeBSD symbols to resolve binary compatibility.
This follows the same method as other platforms like OSX and NetBSD.

This will fix rustup and building from git (once libc is updated for bootstrap)
on FreeBSD12 post-ino64 in f713b08c02.
It also avoids having to hotpatch the stage0 compiler, and HOME/.cargo
libc files on FreeBSD12 to build rust.

The only real pitfall is that this will prevent interaction with inodes that
have an ino_t above the 32-bit limit due to truncation.  On the other hand
Rust won't work at all on 12 without doing this currently.  In general
it should not be a problem for users and if they need 64-bit ino_t they
can use a patched libc, rather than the current state of affairs in
requiring a patched libc to use Rust on 12.

A better, or complementary, approach would be something like proposed in
https://github.com/rust-lang/rfcs/pull/2048 to allow targetting a specific
version of FreeBSD. This would allow Rust to default to this compatibility
mode by targetting FreeBSD10 and still allow targetting FreeBSD12 for 64-bit
ino_t.

The symbol versions used were taken from the old version in
f713b08c02 (diff-61a32fcfb7ecd4517665fed591813c57)
and
f713b08c02 (diff-7f67ccf8b5f44ff2f54eaab0207abb8d).

The scope of functions versioned here differs from other platforms as
not all structs were modified that were on others, such as DIR for
`opendir`, `telldir`, etc.  Only functions using dirent, stat, glob_t,
and dev_t need the changes.

Fixes https://github.com/rust-lang/rust/issues/42681
2018-03-01 15:26:26 -08:00
bors
f0938610e5 Auto merge of #936 - bdrewery:freebsd-kevent-compat, r=alexcrichton
Link against kevent@FBSD_1.0 to fix ABI compat with FreeBSD12.

struct kevent was modified in FreeBSD12.  The @FBSD_1.0 symbol supports the old
structure ABI still.

This allows the `mio` crate tests to now pass on FreeBSD12.
2018-03-01 20:50:57 +00:00
Bryan Drewery
969ad2b73c Link against kevent@FBSD_1.0 to fix ABI compat with FreeBSD12.
struct kevent was modified in FreeBSD12.  The @FBSD_1.0 symbol supports the old
structure ABI still.

This allows the `mio` crate tests to now pass on FreeBSD12.
2018-03-01 12:36:00 -08:00
bors
677b645353 Auto merge of #935 - bgermann:master, r=alexcrichton
Add Solaris constants needed by net2

The added constants are
IPV6_UNICAST_HOPS,
IPV6_MULTICAST_IF,
IPV6_MULTICAST_HOPS,
IP_MULTICAST_IF.
2018-03-01 15:05:18 +00:00
bgermann
c299cc49d3 Add Solaris constants needed by net2
The added constants are
IPV6_UNICAST_HOPS,
IPV6_MULTICAST_IF,
IPV6_MULTICAST_HOPS,
IP_MULTICAST_IF.
2018-03-01 12:48:24 +01:00
bors
2bfacc8633 Auto merge of #933 - raphlinus:ipv6_fuchsia, r=alexcrichton
Add IPV6_UNICAST_HOPS to fuchsia module

Recent change #925 added constants for IPV6 multicast, but seems to have inadvertently left off IPV6_UNICAST_HOPS from the fuchsia module.

Fixes #932
2018-02-28 23:48:15 +00:00
Raph Levien
709709db15 Add IPV6_UNICAST_HOPS to fuchsia module
Recent change #925 added constants for IPV6 multicast, but seems
to have inadvertently left off IPV6_UNICAST_HOPS from fuchsia.

Fixes #932
2018-02-28 15:41:50 -08:00