auto merge of #20980 : richo/rust/final-power, r=alexcrichton
Originally, this was going to be discussed and revisted, however I've been working on this for months, and a rebase on top of master was about 1 flight's worth of work so I just went ahead and did it.
This gets you as far as being able to target powerpc with, eg:
LD_LIBRARY_PATH=./x86_64-unknown-linux-gnu/stage2/lib/ x86_64-unknown-linux-gnu/stage2/bin/rustc -C linker=powerpc-linux-gnu-gcc --target powerpc-unknown-linux-gnu hello.rs
Would really love to get this out before 1.0. r? @alexcrichton
This commit is contained in:
@@ -231,6 +231,12 @@ pub unsafe fn record_sp_limit(limit: uint) {
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
}
|
||||
|
||||
// powerpc - FIXME(POWERPC): missing...
|
||||
#[cfg(target_arch = "powerpc")]
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
}
|
||||
|
||||
|
||||
// iOS segmented stack is disabled for now, see related notes
|
||||
#[cfg(all(target_arch = "arm", target_os = "ios"))] #[inline(always)]
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
@@ -326,6 +332,12 @@ pub unsafe fn get_sp_limit() -> uint {
|
||||
1024
|
||||
}
|
||||
|
||||
// powepc - FIXME(POWERPC): missing...
|
||||
#[cfg(target_arch = "powerpc")]
|
||||
unsafe fn target_get_sp_limit() -> uint {
|
||||
1024
|
||||
}
|
||||
|
||||
// iOS doesn't support segmented stacks yet. This function might
|
||||
// be called by runtime though so it is unsafe to mark it as
|
||||
// unreachable, let's return a fixed constant.
|
||||
|
||||
@@ -33,7 +33,9 @@ pub const FIONBIO: libc::c_ulong = 0x8004667e;
|
||||
target_os = "android"))]
|
||||
pub const FIONBIO: libc::c_ulong = 0x5421;
|
||||
#[cfg(all(target_os = "linux",
|
||||
any(target_arch = "mips", target_arch = "mipsel")))]
|
||||
any(target_arch = "mips",
|
||||
target_arch = "mipsel",
|
||||
target_arch = "powerpc")))]
|
||||
pub const FIONBIO: libc::c_ulong = 0x667e;
|
||||
|
||||
#[cfg(any(target_os = "macos",
|
||||
@@ -49,7 +51,9 @@ pub const FIOCLEX: libc::c_ulong = 0x20006601;
|
||||
target_os = "android"))]
|
||||
pub const FIOCLEX: libc::c_ulong = 0x5451;
|
||||
#[cfg(all(target_os = "linux",
|
||||
any(target_arch = "mips", target_arch = "mipsel")))]
|
||||
any(target_arch = "mips",
|
||||
target_arch = "mipsel",
|
||||
target_arch = "powerpc")))]
|
||||
pub const FIOCLEX: libc::c_ulong = 0x6601;
|
||||
|
||||
#[cfg(any(target_os = "macos",
|
||||
@@ -182,7 +186,9 @@ mod signal {
|
||||
}
|
||||
|
||||
#[cfg(all(target_os = "linux",
|
||||
any(target_arch = "mips", target_arch = "mipsel")))]
|
||||
any(target_arch = "mips",
|
||||
target_arch = "mipsel",
|
||||
target_arch = "powerpc")))]
|
||||
mod signal {
|
||||
use libc;
|
||||
|
||||
|
||||
@@ -150,6 +150,7 @@ mod imp {
|
||||
all(target_os = "linux", target_arch = "aarch64"),
|
||||
all(target_os = "linux", target_arch = "mips"), // may not match
|
||||
all(target_os = "linux", target_arch = "mipsel"), // may not match
|
||||
all(target_os = "linux", target_arch = "powerpc"), // may not match
|
||||
target_os = "android"))] // may not match
|
||||
mod signal {
|
||||
use libc;
|
||||
|
||||
@@ -126,7 +126,8 @@ mod os {
|
||||
#[cfg(any(target_arch = "x86",
|
||||
target_arch = "arm",
|
||||
target_arch = "mips",
|
||||
target_arch = "mipsel"))]
|
||||
target_arch = "mipsel",
|
||||
target_arch = "powerpc"))]
|
||||
const __SIZEOF_PTHREAD_MUTEX_T: uint = 24 - 8;
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
const __SIZEOF_PTHREAD_MUTEX_T: uint = 48 - 8;
|
||||
@@ -136,7 +137,8 @@ mod os {
|
||||
target_arch = "arm",
|
||||
target_arch = "aarch64",
|
||||
target_arch = "mips",
|
||||
target_arch = "mipsel"))]
|
||||
target_arch = "mipsel",
|
||||
target_arch = "powerpc"))]
|
||||
const __SIZEOF_PTHREAD_COND_T: uint = 48 - 8;
|
||||
|
||||
#[cfg(any(target_arch = "x86_64",
|
||||
@@ -146,7 +148,8 @@ mod os {
|
||||
#[cfg(any(target_arch = "x86",
|
||||
target_arch = "arm",
|
||||
target_arch = "mips",
|
||||
target_arch = "mipsel"))]
|
||||
target_arch = "mipsel",
|
||||
target_arch = "powerpc"))]
|
||||
const __SIZEOF_PTHREAD_RWLOCK_T: uint = 32 - 8;
|
||||
|
||||
#[repr(C)]
|
||||
|
||||
Reference in New Issue
Block a user