Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Haiku: Initial work at OS support #36727

Merged
merged 9 commits into from Sep 27, 2016
Merged

Haiku: Initial work at OS support #36727

merged 9 commits into from Sep 27, 2016

Conversation

@kallisti5
Copy link
Contributor

@kallisti5 kallisti5 commented Sep 25, 2016

These changes should be non-invasive to non-Haiku platforms. These patches were hand reworked from Neil's original Rust 1.9.0 patches. I've done some style cleanup and design updates along the way.

There are a few small additional patches to libc, rust-installer and compiler-rt that will be submitted once this one is accepted.

Haiku can be compiled on Linux, and a full gcc cross-compiler with a Haiku target is available, which means bootstrapping should be fairly easy. The patches here have already successfully bootstrapped under our haiku x86_gcc2 architecture. http://rust-on-haiku.com/wiki/PortingRust

I'll be focusing on our more modern gcc5 x86 and x86 architectures for now.

As for support, we're not seeking official support for now. We understand Haiku isn't a top-tier OS choice, however having these patches upstream greatly reduces the amount of patchwork we have to do. Mesa has Haiku code upstream, and we submit patches to keep it going. Mesa doesn't test on Haiku and we're ok with that :-)

nielx and others added 8 commits Sep 25, 2016
* Hand rebased from Niels original work on 1.9.0
* Hand rebased from Niels original work on 1.9.0
The src/libstd/sys/unix/net.rs file depends on it. It is missing
from Haiku. This workaround should actually 'fix' the problem,
but it turns out the fds-are-cloexec.rs test hangs. I do not
know how related these two issues are, but it warrants further
investigation.

The test is ignored on this platform for now.

* Hand rebased from Niels original work on 1.9.0
* Hand rebased from Niels original work on 1.9.0
* Hand rebased from Niels original work on 1.9.0
@rust-highfive
Copy link
Collaborator

@rust-highfive rust-highfive commented Sep 25, 2016

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @aturon (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

pub fn set_name(_name: &CStr) {
// Haiku has no way to set a thread name.
}

This comment has been minimized.

@Aatch

Aatch Sep 26, 2016
Contributor

Can't this be merged with the above case?

This comment has been minimized.

@kallisti5

kallisti5 Sep 26, 2016
Author Contributor

Done

@Aatch
Copy link
Contributor

@Aatch Aatch commented Sep 26, 2016

@bors r+

@bors
Copy link
Contributor

@bors bors commented Sep 26, 2016

📌 Commit 7c34d9c has been approved by Aatch

jonathandturner added a commit to jonathandturner/rust that referenced this pull request Sep 27, 2016
Haiku: Initial work at OS support

These changes should be non-invasive to non-Haiku platforms. These patches were hand reworked from Neil's original Rust 1.9.0 patches. I've done some style cleanup and design updates along the way.

There are a few small additional patches to libc, rust-installer and compiler-rt that will be submitted once this one is accepted.

Haiku can be compiled on Linux, and a full gcc cross-compiler with a Haiku target is available, which means bootstrapping should be fairly easy. The patches here have already successfully bootstrapped under our haiku x86_gcc2 architecture. http://rust-on-haiku.com/wiki/PortingRust

I'll be focusing on our more modern gcc5 x86 and x86 architectures for now.

As for support, we're not seeking official support for now. We understand Haiku isn't a top-tier OS choice, however having these patches upstream greatly reduces the amount of patchwork we have to do. Mesa has Haiku code upstream, and we submit patches to keep it going. Mesa doesn't test on Haiku and we're ok with that :-)
@@ -279,7 +279,12 @@ impl DirEntry {
stat(&self.path()).map(|m| m.file_type())
}

#[cfg(not(target_os = "solaris"))]
#[cfg(target_os = "haiku")]

This comment has been minimized.

@alexcrichton

alexcrichton Sep 27, 2016
Member

Shouldn't the haiku/solaris fallbacks here be the same?

@brson brson added the relnotes label Sep 27, 2016
@brson
Copy link
Contributor

@brson brson commented Sep 27, 2016

cc @rust-lang/libs @rust-lang/tools

bors added a commit that referenced this pull request Sep 27, 2016
bors added a commit that referenced this pull request Sep 27, 2016
@bors bors merged commit 7c34d9c into rust-lang:master Sep 27, 2016
1 check passed
1 check passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

8 participants
You can’t perform that action at this time.