For VxWorks:
fix building errors use wr-c++ as linker
This commit is contained in:
parent
e15510ca33
commit
079baafdf1
@ -53,7 +53,7 @@ pub fn read_vectored(&self, bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn is_read_vectored(&self) -> bool {
|
||||
pub fn is_read_vectored(&self) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -351,8 +351,7 @@ pub fn new(status: c_int) -> ExitStatus {
|
||||
}
|
||||
|
||||
fn exited(&self) -> bool {
|
||||
/*unsafe*/
|
||||
{ libc::WIFEXITED(self.0) }
|
||||
libc::WIFEXITED(self.0)
|
||||
}
|
||||
|
||||
pub fn success(&self) -> bool {
|
||||
@ -360,19 +359,11 @@ pub fn success(&self) -> bool {
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -857,6 +857,10 @@ fn linker(&self, target: TargetSelection, can_use_lld: bool) -> Option<&Path> {
|
||||
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…
Reference in New Issue
Block a user