about summary refs log tree commit diff
path: root/src/libstd/sys/common
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-02-03 22:40:32 +0000
committerbors <bors@rust-lang.org>2016-02-03 22:40:32 +0000
commite3bcddb44bc810ddf5b0443e45e42a835d17d868 (patch)
treed1b24022bb34fe5a3d8851dee5b8a8291c47bb12 /src/libstd/sys/common
parent18c1781a4c8aaaeb11285e0099edfff2043b62a5 (diff)
parentfae883c113031805cedb853c4176ecfef0b62bbc (diff)
downloadrust-e3bcddb44bc810ddf5b0443e45e42a835d17d868.tar.gz
rust-e3bcddb44bc810ddf5b0443e45e42a835d17d868.zip
Auto merge of #31078 - nbaksalyar:illumos, r=alexcrichton
This pull request adds support for [Illumos](http://illumos.org/)-based operating systems: SmartOS, OpenIndiana, and others. For now it's x86-64 only, as I'm not sure if 32-bit installations are widespread. This PR is based on #28589 by @potatosalad, and also closes #21000, #25845, and #25846.

Required changes in libc are already merged: https://github.com/rust-lang-nursery/libc/pull/138

Here's a snapshot required to build a stage0 compiler:
https://s3-eu-west-1.amazonaws.com/nbaksalyar/rustc-sunos-snapshot.tar.gz
It passes all checks from `make check`.

There are some changes I'm not quite sure about, e.g. macro usage in `src/libstd/num/f64.rs` and `DirEntry` structure in `src/libstd/sys/unix/fs.rs`, so any comments on how to rewrite it better would be greatly appreciated.

Also, LLVM configure script might need to be patched to build it successfully, or a pre-built libLLVM should be used. Some details can be found here: https://llvm.org/bugs/show_bug.cgi?id=25409

Thanks!

r? @brson
Diffstat (limited to 'src/libstd/sys/common')
-rw-r--r--src/libstd/sys/common/args.rs3
-rw-r--r--src/libstd/sys/common/libunwind.rs1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/libstd/sys/common/args.rs b/src/libstd/sys/common/args.rs
index 4cfddb036e9..4600983eb3b 100644
--- a/src/libstd/sys/common/args.rs
+++ b/src/libstd/sys/common/args.rs
@@ -38,7 +38,8 @@ pub fn clone() -> Option<Vec<Vec<u8>>> { imp::clone() }
           target_os = "dragonfly",
           target_os = "bitrig",
           target_os = "netbsd",
-          target_os = "openbsd"))]
+          target_os = "openbsd",
+          target_os = "solaris"))]
 mod imp {
     use prelude::v1::*;
 
diff --git a/src/libstd/sys/common/libunwind.rs b/src/libstd/sys/common/libunwind.rs
index f44a8cb21e9..956f6005f1c 100644
--- a/src/libstd/sys/common/libunwind.rs
+++ b/src/libstd/sys/common/libunwind.rs
@@ -101,6 +101,7 @@ pub type _Unwind_Exception_Cleanup_Fn =
 
 #[cfg_attr(any(all(target_os = "linux", not(target_env = "musl")),
                target_os = "freebsd",
+               target_os = "solaris",
                all(target_os = "linux", target_env = "musl", not(target_arch = "x86_64"))),
            link(name = "gcc_s"))]
 #[cfg_attr(all(target_os = "linux", target_env = "musl", target_arch = "x86_64", not(test)),