Commit Graph

17 Commits

Author SHA1 Message Date
Richard Purdie
1e8f4ee56a rust: Ensure buildpaths are handled in debug symbols correctly
To ensure buildpaths aren't encoded in the debug symbol output, ensure
we pass our prefix remapping compiler options in.

(From OE-Core rev: c7a529743560c37973787e4ab2433cb7485afb86)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
e1dcfcdbfa rust: Fix musl builds
Musl targets need a sysroot set to find the musl static libraries. Set this
appropriately in musl builds.

(From OE-Core rev: 1c5ab57ddda393631ce2da97ef5a876a2020d51f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
16b4ac3f55 rust: Enable nativesdk and target builds + replace rust-tools-cross-canadian
Enable rust target builds as well as nativesdk-rust for the sdk. Merge
the builds of rust-tools components into the rust build, packaged separately
since this is a lot more efficient and saves rebuilding core rust multiple
times. The tools are not target specific so nativesdk-rust-tools suffices
and we can drop the cross canadian piece.

(From OE-Core rev: b9b0cd99cdc77e7a90e5fd5711e706ebe64c7b6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
82dc055d96 rust.inc: Fix for cross compilation configuration
For cross compilation, build, host and target may be different. Ensure
the main rust config has the appropriate sections added to match the
configurations.

(From OE-Core rev: e2cdbf9df8d3f90b5a7ba35288c5db4f252d134d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
1ab2fd2d03 cargo_common: Handle build SYS as well as HOST/TARGET
Improve the common class to handle BUILD_SYS as well as host and target,
removing the need to a workaround in the rust recipe.

(From OE-Core rev: 0dc9635c28c269f782ad4ed6ea06b4e4de1beb8e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
1c8444bd38 rust-common/rust: Improve bootstrap BUILD_SYS handling
Move the "unknown" vendor workaround used during bootstrap to a
central location so it is applied consistently to all RUST_BUILD_SYS
values rather than some subset.

(From OE-Core rev: d02c28b2219d736c9598a13fead7a03eaa3256a6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
b1d8d2a3bf rust: Generate per recipe target configuration files
Instead of generating target configuration files centrally and often getting
it wrong, or having trouble finding the right set, generate them dynamically
from the bbclass into WORKDIR per recipe.

(From OE-Core rev: 9160e4a37561d8ac882057450a818621bec13bed)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
9e5cbb80f0 rust/mesa: Drop obsolete YOCTO_ALTERNATE_MULTILIB_NAME
This variable is no longer used by the llvm patches.

(From OE-Core rev: 35e1ecf88cf9725e1ba43c948e90359df983002f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
c2f5b71c9b rust.inc: Fix cross build llvm-config handling
We need llvm-config for the target but the cross compiled target binary is
no good. We can copy the native one into the target location where it will
then return the target values though.

(From OE-Core rev: f355e55c1fcef57f288279ffb47ebeb52a72b689)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
3350658cb2 rust.inc: Rename variables to make code clearer
Instead of reusing a "target_section" variable, name them host and build
section instead. This patch sets things up for other improvementsm,
separating out the renaming.

(From OE-Core rev: 279b809e8306b0eb6ae6caeb6b0a3c3c62d2f9d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
5c45b73c8f rust: Switch to use RUST_XXX_SYS consistently
The code was using a mixture of XXX_SYS and RUST_XXX_SYS. Use
RUST_XXX_SYS consistently and add the variables to the global exclsion
on signatures as they're reflected in the directory triplets and trying
to filter them out the hashes separately is too painful.

(From OE-Core rev: ee0c0fdf9c1eba9eece6ed1293fda25bf18964b3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00
Richard Purdie
1e04c8aafb rust-target-config: Create new class to contain target json config generation
Currently most of the rust recipes use this code but it is all piecemeal.
Turn the code into a class where things can start to be rationalised. Ultimately
some of the data and python code should be moved to a python library but one step
at a time.

No functionality changes.

(From OE-Core rev: 3795285cbf362e13b8151bfdbe1bce999ac28641)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-28 11:07:33 +01:00
Alexander Kanavin
bab6c13913 rust: update 1.60.0 -> 1.62.0
Drop the two libstdc patches as they've finally appeared upstream.

Disable the use of libstdc++.a from the host distributions, as it results
in cross-distro contamination in rust-native.

(From OE-Core rev: 94760bc118952160865352c10ca7693680b5ce7e)

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>
2022-07-08 00:09:42 +01:00
Andrew Jeffery
73272156e6 rust: Introduce RUST_BUILD_ARCH
RUST_BUILD_ARCH contains the arch_to_rust_arch()-translated value of
BUILD_ARCH. This is necessary to acquire the correct snapshot artifacts
under Linux where `uname -m` reports "ppc64le" rather than
"powerpc64le".

Change-Id: I6aec23aced8e1c6f0bfc46fe52531b0c16bcf687
(From OE-Core rev: c13afbade8d480807b9de70c56dcd650496f06b2)

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-02 18:44:17 +00:00
Alexander Kanavin
bcab6dd34f rust/cargo: exclude UNINATIVE_LOADER from task signature
(From OE-Core rev: 8915dfa2034d939b504f134e83811ed2ba18a6f1)

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>
2021-10-14 11:48:45 +01:00
Richard Purdie
fe90461e2d rust: Avoid buildtools+uninative issues with glibc symbols mismatches
If we use an external buildtools tarball, that combined with uninative results
in build failures with symbol mismatches. This was tracked down to the prebuilt
rust binaries that are downloaded. The libc/loader used to load them is used to
execute target binaries/libraries and therefore anything with built with a newer
libc would fail.

Add code to use patchelf to change the interpreter to our own uninative one if
present which ensures the newer libc and loader are used, hence avoiding the issue.

(From OE-Core rev: 099c761ffddcc828329d3083cc8f3d24b43e9277)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-26 22:09:44 +01:00
Randy MacLeod
61e1570c6a rust: initial merge of most of meta-rust
In the meta-rust repo at commit:
   448047c Upgrade to 1.54.0 (#359)

Make the required directories:
  mkdir ../oe-core/meta/recipes-devtools/rust
  mkdir ../oe-core/meta/recipes-devtools/cargo
  mkdir ../oe-core/meta/recipes-example
and then:
  cp recipes-devtools/rust/* ../oe-core/meta/recipes-devtools/rust
  cp recipes-devtools/cargo/* ../oe-core/meta/recipes-devtools/cargo
  cp lib/crate.py ../oe-core/meta/lib
  cp recipes-example/* ../oe-core/meta/recipes-example
  cp conf/distro/include/rust_* ../oe-core/meta/conf/distro/include/
  cp classes/* ../oe-core/meta/classes/
  cp recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb ../oe-core/meta/recipes-core/packagegroups

(From OE-Core rev: 3ed57578cca93ff1ba4e0bf3f25566e10659a2f9)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-26 22:09:43 +01:00