Rollup merge of #75758 - bpangWR:master, r=Mark-Simulacrum
Fixes for VxWorks r? @alexcrichton
This commit is contained in:
commit
730449d22a
@ -53,7 +53,7 @@ impl FileDesc {
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn is_read_vectored(&self) -> bool {
|
||||
pub fn is_read_vectored(&self) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -351,8 +351,7 @@ impl ExitStatus {
|
||||
}
|
||||
|
||||
fn exited(&self) -> bool {
|
||||
/*unsafe*/
|
||||
{ libc::WIFEXITED(self.0) }
|
||||
libc::WIFEXITED(self.0)
|
||||
}
|
||||
|
||||
pub fn success(&self) -> bool {
|
||||
@ -360,19 +359,11 @@ impl ExitStatus {
|
||||
}
|
||||
|
||||
pub fn code(&self) -> Option<i32> {
|
||||
if self.exited() {
|
||||
Some(/*unsafe*/ { libc::WEXITSTATUS(self.0) })
|
||||
} else {
|
||||
None
|
||||
}
|
||||
if self.exited() { Some(libc::WEXITSTATUS(self.0)) } else { None }
|
||||
}
|
||||
|
||||
pub fn signal(&self) -> Option<i32> {
|
||||
if !self.exited() {
|
||||
Some(/*unsafe*/ { libc::WTERMSIG(self.0) })
|
||||
} else {
|
||||
None
|
||||
}
|
||||
if !self.exited() { Some(libc::WTERMSIG(self.0)) } else { None }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,6 @@
|
||||
#![unstable(feature = "thread_local_internals", issue = "none")]
|
||||
|
||||
pub unsafe fn register_dtor(t: *mut u8, dtor: unsafe extern "C" fn(*mut u8)) {
|
||||
use crate::sys_common::thread_local::register_dtor_fallback;
|
||||
use crate::sys_common::thread_local_dtor::register_dtor_fallback;
|
||||
register_dtor_fallback(t, dtor);
|
||||
}
|
||||
|
@ -132,7 +132,8 @@ pub fn find(build: &mut Build) {
|
||||
false
|
||||
};
|
||||
|
||||
if cxx_configured {
|
||||
// for VxWorks, record CXX compiler which will be used in lib.rs:linker()
|
||||
if cxx_configured || target.contains("vxworks") {
|
||||
let compiler = cfg.get_compiler();
|
||||
build.cxx.insert(target, compiler);
|
||||
}
|
||||
|
@ -854,6 +854,10 @@ impl Build {
|
||||
if let Some(linker) = self.config.target_config.get(&target).and_then(|c| c.linker.as_ref())
|
||||
{
|
||||
Some(linker)
|
||||
} else if target.contains("vxworks") {
|
||||
// need to use CXX compiler as linker to resolve the exception functions
|
||||
// that are only existed in CXX libraries
|
||||
Some(self.cxx[&target].path())
|
||||
} else if target != self.config.build
|
||||
&& util::use_host_linker(target)
|
||||
&& !target.contains("msvc")
|
||||
|
Loading…
x
Reference in New Issue
Block a user