Files
meta-rust/README.md
T
2016-02-04 12:40:51 -05:00

71 lines
1.9 KiB
Markdown

## Introduction
This openembedded layer provides the rust compiler, tools for building packages
(cargo), and a few example projects.
## What works:
- MACHINE="beaglebone" (TARGET_SYS=arm-poky-linux-gnueabi)
- Building rust-native, rust-cross, rust-hello-world, cargo-native
- Running/using all of these (including rust-hello-world)
## What doesn't:
- Probably some of the untested things
## What's untested:
- rust (built for target)
- Other TARGETs
## Common issues when packaging things using cargo
You may run into errors similar to:
```
| src/lib.rs:12:1: 12:35 error: can't find crate for `ffi`
| src/lib.rs:12 extern crate "openssl-sys" as ffi;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Where a "-sys" crate (or other crate) is not found. These are typically caused
by a crate's Cargo.toml including triplet-specific dependencies and then using
the crate based on a feature (most often, `#[cfg(unix)]`). Until cargo and it's
ecosystem get their act together, you'll need to supply patches to the
misbehaving packages. See `recipies/cargo/cargo_*.bb` for an example of how to
do this.
## TODO
- -crosssdk and -buildsdk packages
- Upstream local rustc patches for libdir and bindir support
- add bitbake fetch support for crates.io
- add required cargo package registry clones in SRC_URI to prevent the need
for network when building.
## Pitfalls
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way configuration options are tracked for different targets.
## Dependencies
On the host:
unknown
On the target:
unknown
## Maintainer(s) & Patch policy
Open a Pull Request.
Generally, I try to support the latest master of poky. I'm happy to support
older versions too by applying backwards compat patches as long as I don't need
to maintain a seperate branch. Of course, others are welcome to create forks to
support their individual needs.
## Copyright
MIT OR Apache-2.0 - Same as rust