RFC: Add OsUnknown as a target operating system #12841
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
First step in being able to build libstd against newlib (or other compatible c-library) for embedded targets. This enables a target triple to be specified of the form
*-unknown-*
. Next step to getting libstd to build is adding weak linkages or#[cfg(target_os = "unknown")]
. Newlib provides libc, libm and libstc++ (exceptions too) and can be ported to other platforms by implementing 17-18 basic functions to interact with the OS/hardware.This pull request just adds the unknown os target to librustc. The only additional change is that it ignores
#[crate-type = "dylib"]
in crates (as unknown OS cannot support dynamic linking). If dylib is specified using the--crate-type
flag then an appropriate error is produced.Next steps would be getting libstd to build a rlib, getting a binary to link, and writing a test that makes sure libstd can be built.