There is little point in having "crosssdk" suffex added to the virtual provider within
gcc/go since the TARGET_PREFIX or SDK_PREFIX already encapsulates this. Remove it
allowing some of the special case overriding to be removed.
This also allows removal of some of the MLPREFIX usage since again, the triplet
also covers this.
(From OE-Core rev: fe0206ba482d209b24e636d578aa68ba5e67ba1b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
DESCRIPTION is optional for now; writing good component descriptions
is not easy (but appreciated).
(From OE-Core rev: 9ce4f9248db3db70732d886a18ea355f321bd49d)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changes:
* Update the GitHub RSA host key bundled within Cargo. The key was
rotated by GitHub on 2023-03-24 after the old one leaked.
* Mark the old GitHub RSA host key as revoked. This will prevent Cargo
from accepting the leaked key even when trusted by the system.
* Add support for @revoked and a better error message for
@cert-authority in Cargo’s SSH host key verification
(From OE-Core rev: 4563432b41026adc56c54452984b19ab64e7406e)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rebase patches; one of the vendored crossbeam versions
has been removed upstream, and so crossbeam_atomic.patch
is adjusted accordingly.
Replace getrandom-open64.patch with a backport.
(From OE-Core rev: f5accb4fae49342cbec21718ae7a427615bfcedd)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Otherwise it triggers a rebuild of llvm-dependent rust pieces every time rust_runx is called,
lengthening the builds without need.
(From OE-Core rev: aca6b29b508175da9f213b1c6dba5d02a15b8287)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream does not actually use or test it this way; if the goal
is to install items, then install target should be executed directly.
In particular, in latest rust release building stage 2 items has regressed
altogether (incorrect dependencies between rust-analyze tool and the
libs it needs) and no one noticed.
(From OE-Core rev: 7d805f9a9f6b5048308a37a2757d08cca40b1ff3)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This recipe uses the cmake class, so there's no need to set the Ninja
backend, or tell it where Python is, or that we're cross-compiling.
(From OE-Core rev: 2560665cc1e30a6ca969118ade8612393e1eef74)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #14975]
rust files are not linking on target due to missing dependencies and observed below error.
error: linker `x86_64-poky-linux-gcc` not found
Added the required dependencies to run rust on target machine.
(From OE-Core rev: bb781f452299cfa6ec7fffd215b0af3149178f32)
Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Everything we need for `rust-snapshot.inc` exists in `src/stage0.json`,
so just read that to generate it.
(From OE-Core rev: a07008da8b02165d271a457e4c215f35cb15b94c)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Disable ZStd to avoid needing libzstd in llvm (mirrors zlib disable).
Generate complete list of rust-snapshot artefacts from src/stage0.json.
Drop clippy-driver reproducibility change as the code is gone from
upstream.
Release notes:
https://releases.rs/docs/1.67.0/
License-Update: Unicode-TOU text added (already in our license string)
(From OE-Core rev: 4900e0c5cb8a092a1d77d4f26249afa59b241da6)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
CARGO_VERSION isn't broken out in rust/src/stage0.json, there's only one
snapshot version, so just use that.
(From OE-Core rev: 9b0f88642570383b09de94238fe1a8ef5119fb47)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the dim-sum approach to patching we had the same patch applied in
many places, but not all, so that there were no guarantees that we were
actually building agaginst the same thing in all recipes.
(From OE-Core rev: 550c273f38d8e6d2d431908023e213c6b018d7ed)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The vendored copy of zlib undefines _FILE_OFFSET_BITS when
_LARGEFILE64_SOURCE is defined and enabling 64bit time_t requires 64bit
off_t ( _FILE_OFFSET_BITS=64 ), therefore remove this from the
zlib module
(From OE-Core rev: 73e56624e815c52308a81852430a8bb050a0fc58)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The same rust getrandom patch is needed for cargo on target as well
as it uses the same crate
(From OE-Core rev: 44441c727a5301ab99ab8b4d8b8b1f61f0a810af)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
newer musl do not provide lfs64 functions anymore since off_t is always
64bit on musl using normal functions would suffice
(From OE-Core rev: f01b2ab83068e4d7f263c31dca2a3fa9ef77a98e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need patched crossbeam-utils in cargo as well as rust, move cargo
alongside rust so they can both use the same patch.
(From OE-Core rev: 39402790724014a39b265ee1978396a0514fdc98)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Any consumer of rust-source (potentially) needs this, so move to
rust-source.inc
(From OE-Core rev: 3c88cf98361a8f1c6f5183cc8887cccfad9d08ba)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rust follows the train release model via the stable, beta and nightly channels,
by default we build rust from the stable channel, however there are certain
features which are only available in the beta or nightly channels.
Make these channels available by setting a RUST_CHANNEL variable which defaults
to stable making this change transparent to the user.
The snapshot version used by rust during its compilation wont necessarily match
the version being built, specially if were building from an unstable channel,
to avoid confusion rename this to SNAPSHOT_VERSION and use RUST_VERSION for the
version to be built, which is automatically defined to PV.
Append -beta or -nightly to rusts PV for signature awareness.
It is important to note that this does not build rust from the beta/nightly
published tarball (which today build rust v1.67.0 and v1.68.0 respectively),
instead this builds rust from the current selected version (1.66.0) and enables
the beta/nightly features for that version.
Setting the variable RUST_CHANNEL=nightly results in the following:
$ rustc -Vv
rustc 1.66.0-nightly
(From OE-Core rev: 807a52686682d0d0a151ea3dadd99880feb67cc0)
Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As part of the merging builds, installation of target.json was lost
causing `rustc` to fail on startup with:
error: Error loading target specification: Could not find specification for target "aarch64-poky-linux-gnu". Run `rustc --print target-list` for a list of built-in targets
We know the full target specification, so just install it directly
rather than using the glob approach from previously.
Fixes: b9b0cd99cdc7 ("rust: Enable nativesdk and target builds + replace rust-tools-cross-canadian")
(From OE-Core rev: b187185ceecf1c852b1fdc47451d157a41962d69)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta-clang has options when it comes to C++ runtime, default is to use
gnu runtime, other options are llvm runtime and android runtime. This
patch helps when a distro is using llvm runtime for C/C++ runtime. It
informs the rust build system about right C++ runtime to configure for
when such a setting is used.
(From OE-Core rev: 521872ab2cac092c88446730772cb8c4e22b0cdc)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
All architectures may not support same set of tools, therefore use a
variable to specify this. E.g. on riscv32 rustfmt is not buildable
right now.
(From OE-Core rev: 332df9ebbd75a1825ac99abf1311d2e692d398d7)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is a fix for the fix in YOCTO #14878. When the shebang is more than
128 characters the default shell /bin/sh is used instead of SDK shell as
a fallback, which causes problems with LD_LIBRARY_PATH. With this patch
shell usage is avoided as we use a C wrapper and unset LD_LIBRARY_PATH
that way.
[YOCTO #14892]
(From OE-Core rev: 7cd6faf4e0147eef557f83fb266a25935e26efff)
Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Emits complete details regarding the test results to understand
and debug from logfiles
(From OE-Core rev: 78aecd6d4e443cb467e9a8007f2db29943dfdd1f)
Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds the cross compilation linker for build, host and target.
Ensure the main rust config has the appropriate sections added
to match the configurations.
(From OE-Core rev: 02133f92c56c90a5365985b515953e4136e112aa)
Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
crossbeam-utils tries to use the triplet to look up whether the target
supports various forms of atomics. We use TARGET_VENDOR and not "-unknown"
in the target case which means this fails and breaks platforms like mips
and powerpc 32 bit. Add a patch to handle TARGET_VENDOR in this case.
(From OE-Core rev: 5d8c01dfed4c82fcc5d504c728a51fb98a262300)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Latest rust has started using ENOTSUP define, which is not available in
the older libc that current release of compiler is using therefore
backport the needed patch. Eventually when vendored version of libc
bumps to 1.33+ we should not need this patch.
(From OE-Core rev: 097e38f28990229c3f54f4e6cb74ca8be0b806e6)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make unique shell variable names for cargo and rust
setup scripts. This change will make it easier to append to the
scripts in a bbappend file by using the variable for the script.
Before this change it was only possible for the last script as
they shared the same variable name.
(From OE-Core rev: 74307f57ad0b3c538be0add11028e4e6199a7662)
Signed-off-by: Peter Bergin <peter@berginkonsult.se>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These match the default from the class so drop them. We then always
generate all targets so remove the configuration from the class.
(From OE-Core rev: e4d56256936c55bab2bf2934ccbde9157ef7dc57)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rust sets LD_LIBRARY_PATH which causes a lot of problems with host
binaries conflicting with SDK libraries. By using sh/bash from the
SDK we avoid those issues.
[YOCTO #14878]
(From OE-Core rev: dabd97e78a599a81c056c0f3291244f5afae44b0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>