The SDK fails to build with a dependency error:
Problem: package packagegroup-rust-cross-canadian-qemux86 requires rust-cross-canadian-x86-64, but none of the providers can be installed
- conflicting requests
- nothing provides libc.so.6(GLIBC_2.34)(64bit)
- nothing provides libstdc++.so.6(GLIBCXX_3.4.29)(64bit)
Rust 1.49.0 needed the 0001-rustc_target-Fix-dash-vs-underscore-mismatches-in-op.patch
patch and newer versions not.
Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
The rust patches for riscv64 have been upstreamed
and are not needed anymore.
The riscv64 patches for libstd-rs need to be
applied to libc-0.2.93 to work. Some slight
modifications are necessary.
Signed-off-by: Ralf Anton Beier <ralf_beier@me.com>
* Convert to new override syntax
This is the result of automated script (0.9.0) conversion:
oe-core/scripts/contrib/convert-overrides.py .
converting the metadata to use ":" as the override character instead of "_".
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* Manually fix the conversion
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* layer.conf: Update layer compatibility with only dunfell and newer.
Add honister to mark the layers as compatible with honister now that it uses
the new override syntax.
Drop zeus and older which are missing a support for newer override syntax which
was backported only to 1.46 branch (used by dunfell) and newer, e.g.:
https://git.openembedded.org/bitbake/commit/?h=1.46&id=c5418eae56cc50dbae7951c055434a0c456c53a4
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* CI: use YOCTO_BRANCH instead of yocto-${YOCTO_VERSION} for poky checkout
* using latest revision in branch is often better than sticking to
some point releases
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* CI: switch to hardknott branch
* gatesgarth is already EOL, better to use something supported
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* nativesdk: Add some tools in a separate recipe
This brings ATM:
- clippy
- rustfmt
Another approach might be to include these into the existing rust recipe,
but as we can't really use PACKAGECONFIG here it might just overload it.
This way, the tools will be built in parallel and still can be excluded
from the packgae group, if desired.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
This mimics what rustup packages into the toolchain contents. The
presence of the sources for the exact std lib can be useful for the
development and IDE integration.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
* workflows: Refactor yml to improve build time and reduce size
- Split out the build configuration job
- Use the official sstate mirror
- Disable more of unnecessary features
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Recent versions of cargo support always showing the progress indicator.
By default the progress indicator is hidden if the output is not a tty.
For bitbake builds, the output is redirected to a file and not a tty.
However, if we tell cargo to always show the progress indicator, bitbake
can parse it and will show the user how the rust build is progressing.
This addition closes#236 requesting the SDK support. The implementation
consists on a yet minimum set of worky functionality;
- Includes rustc, rustdoc and cargo.
- Includes libstd and accompanying lib archives for host and for target.
- Integrates with the standard environment setup script.
- Integrates configurations automatically build for target.
The supported build host is still AMD64 only.
Note that there's no need on introducing crosssdk package as the
official snapshot package serves same way as a non SDK build.
Possible future directions:
- Offline build:
- Support pre-cached set of crates that can be vendored.
- Support pre-filled cargo registry.
- Support further tools like cargo-fmt, cargo-clippy, GDB support and so
on.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>