]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #21959 - dhuseby:bitrig-support, r=brson
authorbors <bors@rust-lang.org>
Sat, 21 Feb 2015 09:20:48 +0000 (09:20 +0000)
committerbors <bors@rust-lang.org>
Sat, 21 Feb 2015 09:20:48 +0000 (09:20 +0000)
This patch adds the necessary pieces to support rust on Bitrig https://bitrig.org

23 files changed:
1  2 
configure
src/compiletest/util.rs
src/doc/reference.md
src/liblibc/lib.rs
src/librustc_back/rpath.rs
src/librustc_back/target/mod.rs
src/librustdoc/flock.rs
src/libstd/dynamic_lib.rs
src/libstd/env.rs
src/libstd/os.rs
src/libstd/rt/args.rs
src/libstd/sys/common/net.rs
src/libstd/sys/unix/backtrace.rs
src/libstd/sys/unix/c.rs
src/libstd/sys/unix/fs.rs
src/libstd/sys/unix/os.rs
src/libstd/sys/unix/process.rs
src/libstd/sys/unix/thread.rs
src/test/run-pass/intrinsic-alignment.rs
src/test/run-pass/out-of-stack-new-thread-no-split.rs
src/test/run-pass/out-of-stack-no-split.rs
src/test/run-pass/rec-align-u64.rs
src/test/run-pass/x86stdcall.rs

diff --cc configure
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index c90ba7645feb4b29f14a6b6854804c6d79d617e9,ae9261d87c6a5975446dcc3a029f1b8f147ca0b3..c42d6d0e6416cef66b779371cb6a313c9530a826
@@@ -190,9 -194,25 +195,25 @@@ pub mod guard 
  
          stackaddr as uint + guardsize as uint
      }
+     #[cfg(target_os = "bitrig")]
+     pub unsafe fn current() -> uint {
+       let mut current_stack: stack_t = mem::zeroed();
+       if pthread_stackseg_np(pthread_self(), &mut current_stack) != 0 {
+         panic!("failed to get current stack: pthread_stackseg_np")
+       }
+       if pthread_main_np() == 1 {
+         // main thread
+         current_stack.ss_sp as uint - current_stack.ss_size as uint + 3 * PAGE_SIZE as uint
+       } else {
+         // new thread
+         current_stack.ss_sp as uint - current_stack.ss_size as uint
+       }
+     }
  }
  
 -pub unsafe fn create(stack: uint, p: Thunk) -> rust_thread {
 +pub unsafe fn create(stack: uint, p: Thunk) -> io::Result<rust_thread> {
      let mut native: libc::pthread_t = mem::zeroed();
      let mut attr: libc::pthread_attr_t = mem::zeroed();
      assert_eq!(pthread_attr_init(&mut attr), 0);
Simple merge
Simple merge