mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-13 23:42:56 +00:00
Rollup merge of #44116 - alexcrichton:update-libc, r=Mark-Simulacrum
Update the libc submodule Brings in a few fixes for wasm/asmjs
This commit is contained in:
commit
bc6981ba55
@ -1 +1 @@
|
||||
Subproject commit 2a5b50b7f7f539a0fd201331d6c1e0534aa332f5
|
||||
Subproject commit d64716407e3ee430fce7a008cc7d19a3072dca6c
|
@ -14,8 +14,7 @@
|
||||
|
||||
use fmt;
|
||||
|
||||
#[cfg(any(target_os = "emscripten",
|
||||
all(target_os = "linux", any(target_arch = "aarch64",
|
||||
#[cfg(any(all(target_os = "linux", any(target_arch = "aarch64",
|
||||
target_arch = "arm",
|
||||
target_arch = "powerpc",
|
||||
target_arch = "powerpc64",
|
||||
@ -24,8 +23,7 @@ use fmt;
|
||||
target_arch = "arm")),
|
||||
all(target_os = "fuchsia", target_arch = "aarch64")))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_char = u8;
|
||||
#[cfg(not(any(target_os = "emscripten",
|
||||
all(target_os = "linux", any(target_arch = "aarch64",
|
||||
#[cfg(not(any(all(target_os = "linux", any(target_arch = "aarch64",
|
||||
target_arch = "arm",
|
||||
target_arch = "powerpc",
|
||||
target_arch = "powerpc64",
|
||||
|
@ -71,13 +71,21 @@ impl FileDesc {
|
||||
#[cfg(target_os = "android")]
|
||||
use super::android::cvt_pread64;
|
||||
|
||||
#[cfg(not(target_os = "android"))]
|
||||
#[cfg(target_os = "emscripten")]
|
||||
unsafe fn cvt_pread64(fd: c_int, buf: *mut c_void, count: usize, offset: i64)
|
||||
-> io::Result<isize>
|
||||
{
|
||||
#[cfg(any(target_os = "linux", target_os = "emscripten"))]
|
||||
use libc::pread64;
|
||||
#[cfg(not(any(target_os = "linux", target_os = "emscripten")))]
|
||||
cvt(pread64(fd, buf, count, offset as i32))
|
||||
}
|
||||
|
||||
#[cfg(not(any(target_os = "android", target_os = "emscripten")))]
|
||||
unsafe fn cvt_pread64(fd: c_int, buf: *mut c_void, count: usize, offset: i64)
|
||||
-> io::Result<isize>
|
||||
{
|
||||
#[cfg(target_os = "linux")]
|
||||
use libc::pread64;
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
use libc::pread as pread64;
|
||||
cvt(pread64(fd, buf, count, offset))
|
||||
}
|
||||
@ -104,13 +112,21 @@ impl FileDesc {
|
||||
#[cfg(target_os = "android")]
|
||||
use super::android::cvt_pwrite64;
|
||||
|
||||
#[cfg(not(target_os = "android"))]
|
||||
#[cfg(target_os = "emscripten")]
|
||||
unsafe fn cvt_pwrite64(fd: c_int, buf: *const c_void, count: usize, offset: i64)
|
||||
-> io::Result<isize>
|
||||
{
|
||||
#[cfg(any(target_os = "linux", target_os = "emscripten"))]
|
||||
use libc::pwrite64;
|
||||
#[cfg(not(any(target_os = "linux", target_os = "emscripten")))]
|
||||
cvt(pwrite64(fd, buf, count, offset as i32))
|
||||
}
|
||||
|
||||
#[cfg(not(any(target_os = "android", target_os = "emscripten")))]
|
||||
unsafe fn cvt_pwrite64(fd: c_int, buf: *const c_void, count: usize, offset: i64)
|
||||
-> io::Result<isize>
|
||||
{
|
||||
#[cfg(target_os = "linux")]
|
||||
use libc::pwrite64;
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
use libc::pwrite as pwrite64;
|
||||
cvt(pwrite64(fd, buf, count, offset))
|
||||
}
|
||||
|
@ -514,6 +514,8 @@ impl File {
|
||||
SeekFrom::End(off) => (libc::SEEK_END, off),
|
||||
SeekFrom::Current(off) => (libc::SEEK_CUR, off),
|
||||
};
|
||||
#[cfg(target_os = "emscripten")]
|
||||
let pos = pos as i32;
|
||||
let n = cvt(unsafe { lseek64(self.0.raw(), pos, whence) })?;
|
||||
Ok(n as u64)
|
||||
}
|
||||
|
@ -10,7 +10,6 @@
|
||||
|
||||
use io::{self, Error, ErrorKind};
|
||||
use libc::{self, c_int, gid_t, pid_t, uid_t};
|
||||
use mem;
|
||||
use ptr;
|
||||
|
||||
use sys::cvt;
|
||||
@ -184,7 +183,9 @@ impl Command {
|
||||
}
|
||||
|
||||
// NaCl has no signal support.
|
||||
if cfg!(not(any(target_os = "nacl", target_os = "emscripten"))) {
|
||||
#[cfg(not(any(target_os = "nacl", target_os = "emscripten")))]
|
||||
{
|
||||
use mem;
|
||||
// Reset signal handling so the child process starts in a
|
||||
// standardized state. libstd ignores SIGPIPE, and signal-handling
|
||||
// libraries often set a mask. Child processes inherit ignored
|
||||
|
Loading…
Reference in New Issue
Block a user