summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/rust-cross-canadian.inc
Commit message (Collapse)AuthorAgeFilesLines
* meta: set S from UNPACKDIR in recipes that use only local filesAlexander Kanavin2025-06-201-2/+1
| | | | | | | | | | | | | | | There is no need to have two assignments; also setting S from UNPACKDIR (and not vice versa) is more logical as unpack task comes first, and tasks that come after unpack use S to access unpack results. Also adjust reference test data in selftest/recipeutils to reflect changes in test recipes. (From OE-Core rev: f64b7e5fb3181734c8dde87b27e872a026261a74) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: remove redundant cargo config fileHarish Sadineni2025-02-011-14/+0
| | | | | | | | | | | | YOCTO [#15061] The rust target and linker are getting setting from the sdk environment and so the config file is not needed. The redundant config file geneartion is removed. (From OE-Core rev: d5f78816d2ad0f3e43ce883eef199d1683cfcbb4) Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: fix for rust multilib sdk configurationHarish Sadineni2025-02-011-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | YOCTO [#15061] The rust sdk installs both 'rust.sh' and 'cargo.sh' for lib32 and lib64 in the same location. This causes below error while installing the lib32 & lib64 binaries: Error: Transaction test error: file /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/environment-setup.d/cargo.sh conflicts between attempted installs of rust-cross-canadian-arm-1.67.1-r0.x86_64_nativesdk and rust-cross-canadian-aarch64-1.67.1-r0.x86_64_nativesdk file /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/environment-setup.d/rust.sh conflicts between attempted installs of rust-cross-canadian-arm-1.67.1-r0.x86_64_nativesdk and rust-cross-canadian-aarch64-1.67.1-r0.x86_64_nativesdk ERROR: Task (virtual:multilib:lib32:/media/build/poky/meta/recipes-sato/images/core-image-sato.bb:do_populate_sdk) failed with exit code '1' The change includes: - Prepending '${RUST_TARGET_SYS}' to 'rust.sh' to differentiate between target systems. - Moving the non-target-specific environment variables to 'nativesdk-cargo' and 'nativesdk-rust', instead of being managed by the cross-canadian recipe. (From OE-Core rev: 40eb4bfe2f100ba5301046ca25110fcc55a640bb) Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/recipes: Switch virtual/XXX-gcc to virtual/cross-cc (and c++/binutils)Richard Purdie2025-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea of the base class dependency is to say "yes, I need a C cross compiler" and this was never meant to be gcc specific. Looking at the codebase, whilst we code triplets into this, it does overcomplicate things as there are only ever limited, "target", "sdk" and the class extended versions like mutlilib. After much thought, we can simplify this to virtual/cross-cc and virtual/nativesdk-cross-cc. This lets us remove the "gcc" specific element as well as removing the over complicated triplet usage. At the same time, change the much less widely used "g++" variant to "c++" for similar reasons and remove the triplet from virtual/XXX-binutils too. Backwards compatibility mappings could be left but are just going to confuse things in future so we'll just require users to update. This simplification, whilst disruptive for any toolchain focused layers, will make improved toolchain selection in the future much easier. Since we no longer have overlapping variables, some code for that can just be removed. The class extension code does need to start remapping some variables but not the crosssdk target recipe names. This patch is in two pieces, this one handles the renaming with the functional changes separate in a second for easier review even if this breaks bisection. (From OE-Core rev: 4ccc3bc8266c327bcc18c9a3faf7536210dfb9f0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libstd-rs,rust-cross-canadian: set CVE_PRODUCT to rustPeter Marko2024-07-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These recipes come from rust sources and CVEs are reported for them under rust-lang:rust vendor:product touple. Especially libstd-rs needs correct CVE_PRODUCT as is it installed on target devices (being statically linked to rust compiled binaries). before: cargo: CVE_PRODUCT="cargo" cargo-c-native: CVE_PRODUCT="cargo-c" libstd-rs: CVE_PRODUCT="libstd-rs" rust: CVE_PRODUCT="rust" rust-cross-canadian: CVE_PRODUCT="rust-cross-canadian-<arch>" rust-llvm: CVE_PRODUCT="rust-llvm" after: cargo: CVE_PRODUCT="cargo" cargo-c-native: CVE_PRODUCT="cargo-c" libstd-rs: CVE_PRODUCT="rust" rust: CVE_PRODUCT="rust" rust-cross-canadian-x86-64: CVE_PRODUCT="rust" rust-llvm: CVE_PRODUCT="rust-llvm" Product for rust-llvm is uncertain and, should be handled in another commit if it is desired to align it, too. sqlite> select vendor, product, count(product) from products where vendor="rust-lang" group by product; rust-lang|async-h1|2 rust-lang|cargo|5 rust-lang|future-utils|2 rust-lang|futures-task|2 rust-lang|mdbook|1 rust-lang|regex|2 rust-lang|rsa|2 rust-lang|rust|45 rust-lang|socket2|1 (From OE-Core rev: e8cf1df16a6ec2785cacaf608bec5cd8496103af) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Switch away from S = WORKDIRRichard Purdie2024-05-211-1/+2
| | | | | | | | | | | | | Where recipes use S = ${WORKDIR}, change them to set UNPACKDIR to a subdir of WORKDIR and make S point at this instead. I've chosen not to force S into any standard UNPACKDIR we may pick in future just so the S = UNPACKDIR case is clearly visible by the directory naming under WORKDIR as that should aid usability. (From OE-Core rev: d9328e3b0b062f0621de3d114584b44f384a1c02) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Update S = WORKDIR recipes to use ${S} correctlyRichard Purdie2024-05-021-1/+1
| | | | | | | | | | Where recipes use S = ${WORKDIR}, ensure they are referencing ${S} correctly to access files as soon we want to stop doing this in WORKDIR at which point they would break unless corrected. (From OE-Core rev: f25dd633fffe6560f191526d1869e657e129bad9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross-canadian: Add riscv64 to cross-canadian hostsKhem Raj2023-11-051-1/+1
| | | | | | | | (From OE-Core rev: c0bf5dd2f3ef11df35130283853017ba69d0e9c1) 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>
* rust-cross-canadian: set CARGO_TARGET_<triple>_RUNNER for nativesdkSean Nyekjaer2023-10-191-0/+3
| | | | | | | | | | | | | | | | This will enable us to build and run rust programs on the sdk host. % cargo run --target x86_64-oesdk-linux-gnu -vv Fresh hello v0.1.0 (~/development/hello) Finished dev [unoptimized + debuginfo] target(s) in 0.02s Running `/usr/local/sdk/sysroots/x86_64-oesdk-linux/lib/ld-linux-x86-64.so.2 target/x86_64-oesdk-linux-gnu/debug/hello` Hello, world (From OE-Core rev: 0dc848e0b560947f93a780f4bf7b6d1926a570eb) Signed-off-by: Sean Nyekjaer <sean@geanix.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross-canadian: set CARGO_TARGET_<triple>_RUSTFLAGSSean Nyekjaer2023-10-191-1/+3
| | | | | | | | | | | | | Avoid setting sdk-wide RUSTFLAGS as these flags only are valid when building for target. This will enable building for different targets with different RUSTFLAGS. (From OE-Core rev: 25627606aadacae3a2ab805a6098c81fed154b27) Signed-off-by: Sean Nyekjaer <sean@geanix.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc/go: Drop crosssdk suffix from virtual provides to improve dependency ↵Richard Purdie2023-05-021-1/+1
| | | | | | | | | | | | | | | handling 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>
* meta/recipes: ensure all recipes have a SUMMARYAlexander Kanavin2023-04-131-0/+1
| | | | | | | | | | | 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>
* rust-cross-canadian: Fix for the issue caused by using sdk shellSundeep KOKKONDA2022-09-071-3/+17
| | | | | | | | | | | | | | | 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>
* rust-cross-canadian: rename shell variables for easier appendsPeter Bergin2022-08-251-4/+4
| | | | | | | | | | | | | | 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>
* rust-cross-canadian: Use shell from SDK, not the hostRichard Purdie2022-08-091-1/+2
| | | | | | | | | | | | 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>
* rust-cross-canadian: Simplify and fixRichard Purdie2022-08-081-55/+10
| | | | | | | | | | Since a copy of rust can target any target and doesn't need to be target specific, we can simplify rust-cross-canadian to simply contain the json configuration and envirionment setup scripts. (From OE-Core rev: 6ec18de9d6f49bccff72f2665821dbd732b69b48) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cargo: Drop cross-canadian variant and fix/use nativesdkRichard Purdie2022-08-081-0/+37
| | | | | | | | | | | The cargo-cross-candian variant made no sense as one version of cargo in the SDK can work for all targets. Replace it with nativesdk-cargo instead. Move the SDK env to rust-cross-canadian. (From OE-Core rev: 6d6d135924eff5993736ee58ba8cc5d00ca635f3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: initial merge of most of meta-rustRandy MacLeod2021-08-261-0/+78
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>