diff options
| author | bors <bors@rust-lang.org> | 2015-01-15 05:12:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-01-15 05:12:30 +0000 |
| commit | 0c96037ec1676b420002a06ea337865f95abbf2c (patch) | |
| tree | cec4f5e86bd892800d343105da4332ad94b3f61a /src/libstd/sys | |
| parent | 451e134c180e88b06e3b747ed750e4901ca93721 (diff) | |
| parent | 78278d0c76f3c868a4a4bcc47336c384968c6b3a (diff) | |
| download | rust-0c96037ec1676b420002a06ea337865f95abbf2c.tar.gz rust-0c96037ec1676b420002a06ea337865f95abbf2c.zip | |
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
Diffstat (limited to 'src/libstd/sys')
| -rw-r--r-- | src/libstd/sys/common/stack.rs | 12 | ||||
| -rw-r--r-- | src/libstd/sys/unix/c.rs | 12 | ||||
| -rw-r--r-- | src/libstd/sys/unix/stack_overflow.rs | 1 | ||||
| -rw-r--r-- | src/libstd/sys/unix/sync.rs | 9 |
4 files changed, 28 insertions, 6 deletions
diff --git a/src/libstd/sys/common/stack.rs b/src/libstd/sys/common/stack.rs index ce5ab67ae61..88bb9395cf1 100644 --- a/src/libstd/sys/common/stack.rs +++ b/src/libstd/sys/common/stack.rs @@ -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. diff --git a/src/libstd/sys/unix/c.rs b/src/libstd/sys/unix/c.rs index 1d523ed6edd..fed700cc9d5 100644 --- a/src/libstd/sys/unix/c.rs +++ b/src/libstd/sys/unix/c.rs @@ -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; diff --git a/src/libstd/sys/unix/stack_overflow.rs b/src/libstd/sys/unix/stack_overflow.rs index 48a51813ba4..45680f52e73 100644 --- a/src/libstd/sys/unix/stack_overflow.rs +++ b/src/libstd/sys/unix/stack_overflow.rs @@ -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; diff --git a/src/libstd/sys/unix/sync.rs b/src/libstd/sys/unix/sync.rs index fbbdee1009d..c1e3fc88794 100644 --- a/src/libstd/sys/unix/sync.rs +++ b/src/libstd/sys/unix/sync.rs @@ -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)] |
