summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust
Commit message (Collapse)AuthorAgeFilesLines
* rust: ignore CVE-2024-43402Peter Marko2024-10-121-2/+2
| | | | | | | | | | | | This CVE iwas created because fix for CVE-2024-24576 was incomplete. Ignore the new CVE in the same way as the old one. See https://nvd.nist.gov/vuln/detail/CVE-2024-43402 (From OE-Core rev: 62bb1b8f89c97fa32a7b15021e9e3fbbb878ae68) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust: add CVE_CHECK_IGNORE for CVE-2024-24576Harish Sadineni2024-04-211-0/+3
| | | | | | | | | | CVE-2024-24576 only applies when invoking batch files (with the `bat` and `cmd` extensions) on Windows & No other platform or use is affected. More details about CVE is here: https://nvd.nist.gov/vuln/detail/CVE-2024-24576 (From OE-Core rev: 44e0b6b028657d32de5971d6a42a88767ef8c710) Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust-cross: Simplfy the rust_gen_target callsRichard Purdie2023-12-122-18/+10
| | | | | | | | | | | | Match the code in rust-cross-canadian so that further simplifications can be considered in future. (From OE-Core rev: 9fb5f81f58306b2d355049698b6a17d045bd5e1e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 5cb62d0a33777cb9afb1eea5f736a2580ce50dc7) Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust-cross/rust-common: Merge arm target handling code to fix cross-canadianRichard Purdie2023-12-122-6/+7
| | | | | | | | | | | | | | | | rust-cross had special handling for armv7 targets but we also need this for cross-canadian. Merge the code into the main function so everything is consistent. Also then fix the arm definition to be arm-eabi since ABI is correctly being looked up. (From OE-Core rev: 0adada8111c17e8e5a7c32cef86bdb8e7dfd79d3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit ff3c3dbbd2bf1bb7bb70b55cca203e9eedcf14a8) Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust-cross-canadian: Fix ordering of target json config generationRichard Purdie2023-12-121-2/+3
| | | | | | | | | | | | | | Based upon a patch from Otavio Salvador <otavio@ossystems.com.br>, ensure the target json files are written in the correct order with the most specific last incase it overwrites earlier files if the prefixes match. (From OE-Core rev: d8c030ef90272e42a1697f5195f887d09878aa01) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 1912c4e9e0ecf9655f3b3a41588b54d7956f5899) Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust-common: Set llvm-target correctly for cross SDK targetsRichard Purdie2023-12-121-1/+5
| | | | | | | | | | | | | | | | | | | | | When a 'BUILD' target is requested we shouldn't be looking at TARGET_SYS but at BUILD_SYS. Due to the way rust mangles triplets, we need the HOST_SYS triplet to work with existing code - fixing that issue is a separate patch. Also drop the arch_abi argument, it doens't make any sense to a getVar() call and was a copy and paste error. Based on a patch from Otavio Salvador <otavio@ossystems.com.br> but separated out and tweaked. Fixes: bd36593ba3 ("rust-common: Drop LLVM_TARGET and simplify") (From OE-Core rev: cccbb8358be830b83a43fe1ff8a88932dee1c228) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit d554161a045d12411f288394e253c54aa4c1257c) Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust-llvm: Allow overriding LLVM target archsNiko Mauno2023-12-121-1/+3
| | | | | | | | | | | | | | Move the default value into a variable which can be overridden to match more accurately the use case specific scenario. (From OE-Core rev: 645370e85d8742d0614cd52ca7507b5df2d38ad8) (From OE-Core rev: 93458c302938bf704e8e9f14dfdfee57454adf7a) Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* rust-llvm: backport a fix for build with gcc-13Alexander Sverdlin2023-07-212-1/+35
| | | | | | | | | | | * needed for rust-llvm-native on hosts with gcc-13 Based on commit 3382759cb6c5 ("llvm: backport a fix for build with gcc-13") (From OE-Core rev: d6684a9c9f713ad30442a2a036ff86b534585400) Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
* meta: remove True option to getVar and getVarFlag calls (again)Martin Jansa2023-02-152-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * True is default since 2016 and most layers were already updated not to pass this parameter where not necessary, e.g. oe-core was updated couple times, first in: https://git.openembedded.org/openembedded-core/commit/?id=7c552996597faaee2fbee185b250c0ee30ea3b5f Updated with the same regexp as later oe-core update: https://git.openembedded.org/openembedded-core/commit/?id=9f551d588693328e4d99d33be94f26684eafcaba with small modification to replace not only d.getVar, but also data.getVar as in e.g.: e.data.getVar('ERR_REPORT_USERNAME', True) and for getVarFlag: sed -e 's|\(d\.getVarFlag \?\)( \?\([^,()]*, \?[^,()]*\), \?True)|\1(\2)|g' \ -i $(git grep -E 'getVarFlag ?\( ?([^,()]*), ?([^,()]*), ?True\)' \ | cut -d':' -f1 \ | sort -u) (From OE-Core rev: de7bf6689a19dc614ce4b39c84ffd825bee1b962) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 26c74fd10614582e177437608908eb43688ab510) Signed-off-by: Steve Sakoman <steve@sakoman.com> (cherry picked from commit 24a86d0c55ee89ae0dc77975e1d0ee02898d2289) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: fix issue building cross-canadian tools for aarch64 on x86_64Peter Bergin2022-07-081-4/+1
| | | | | | | | | | | | | | | | | Commit bd36593ba3db758b3eacc974e48468a665967961 did introduce a regression when building package rust-cross-canadian-aarch64 on a x86_64 host. This commit will fix that configuration. Suggested-by: Richard Purdie <richard.purdie@linuxfoundation.org> (From OE-Core rev: dc179854b7ac9e19c9fcdb45ac74c6fdeefbe289) Signed-off-by: Peter Bergin <peter@berginkonsult.se> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit ef566af964e9f9d2c440a3b5771ed801216f30f9) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-common: Fix native signature dependency issuesRichard Purdie2022-06-071-0/+3
| | | | | | | | | | | | | | The previous changes cause sstatetests.SStateTests.test_sstate_32_64_same_hash to fail since RUST_XXX_SYS changes depending on the native architecture. This is correct but these are accounted for in the layout of paths in TMPDIR so they should be excluded from the task signatures for the correct behaviour. (From OE-Core rev: 1887a69a1738cdf34d27f396943bce6a7e4f8e39) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 2b9bb4c07d0ab53f58cbdd8a96896780a90be9a8) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-common: Drop LLVM_TARGET and simplifyRichard Purdie2022-06-072-19/+5
| | | | | | | | | | | | | This all seems over complicated for something which is basically always one of two values. This might even help cross-canadian work on something which isn't x86-64. (From OE-Core rev: cf7c1cde3a3949498d0566e1ac524f8468b91380) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit bd36593ba3db758b3eacc974e48468a665967961) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-common: Fix for target definitions returning 'NoneType' for armSundeep KOKKONDA2022-06-071-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [YOCTO #14742] The build shows below error while building for arm machines. Exception: TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' Detailed error info : Steps to reproduce: 1. Set MACHINE ?= "qemuarm" in local.conf & add 'TOOLCHAIN_HOST_TASK:append = " packagegroup-rust-cross-canadian-${MACHINE}"' 2. bitbake core-image-minimal -cpopulate_sdk Complete Error: ERROR: rust-cross-canadian-arm-1.59.0-r0 do_rust_gen_targets: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_rust_gen_targets(d) 0003: File: '/ala-lpggp31/skokkonda/yocto/poky/meta/recipes-devtools/rust/rust-cross-canadian-common.inc', lineno: 31, function: do_rust_gen_targets 0027: 0028:LLVM_TARGET[x86_64] = "${RUST_HOST_SYS}" 0029:python do_rust_gen_targets () { 0030: wd = d.getVar('WORKDIR') + '/targets/' *** 0031: rust_gen_target(d, 'TARGET', wd, d.getVar('TARGET_LLVM_FEATURES') or "", d.getVar('TARGET_LLVM_CPU'), d.getVar('TARGET_ARCH')) 0032: rust_gen_target(d, 'HOST', wd, "", "generic", d.getVar('HOST_ARCH')) 0033: rust_gen_target(d, 'BUILD', wd, "", "generic", d.getVar('BUILD_ARCH')) 0034:} 0035: File: '/ala-lpggp31/skokkonda/yocto/poky/meta/recipes-devtools/rust/rust-common.inc', lineno: 330, function: rust_gen_target 0326: # build tspec 0327: tspec = {} 0328: tspec['llvm-target'] = d.getVarFlag('LLVM_TARGET', arch_abi) 0329: tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi) *** 0330: tspec['max-atomic-width'] = int(d.getVarFlag('MAX_ATOMIC_WIDTH', arch_abi)) 0331: tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch_abi) 0332: tspec['target-c-int-width'] = d.getVarFlag('TARGET_C_INT_WIDTH', arch_abi) 0333: tspec['target-endian'] = d.getVarFlag('TARGET_ENDIAN', arch_abi) 0334: tspec['arch'] = arch_to_rust_target_arch(rust_arch) Exception: TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' Below are the local variables from rust_gen_target function for arm and aarch64 targets. Refer below, the tspec varibles for 'arm' generated with NoneType. (a) Locals at rust_gen_target for arm:: tspec['data-layout'] = None, Type of tspec['data-layout'] = <class 'NoneType'> tspec['data-layout'] = None, Type of tspec['data-layout'] = <class 'NoneType'> DEBUG: Python function do_rust_gen_targets finished (b) Locals at rust_gen_target for aarch64:: tspec['data-layout'] = aarch64-unknown-linux-gnu, Type of tspec['data-layout'] = <class 'str'> tspec['max-atomic-width'] = 128, Type of tspec['max-atomic-width'] = <class 'int'> Reason for changing arm-eabi to arm: The earlier changes introduced this bug, so reverting the change 'arm-eabi' to 'arm' fixed the issue. (From OE-Core rev: a4886f02dfb78e861fd7afe07b4a25c262bf0421) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 8ed000debb026477abd86ea3bf72adaf21d69f39) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-common: Ensure sstate signatures have correct dependencues for ↵Sundeep KOKKONDA2022-06-071-0/+2
| | | | | | | | | | | | | | | | do_rust_gen_targets The do_rust_gen_targets task was not rerunning when the configuration variables it uses were changed. Add the missing variable dependencies to fix this. [RP: Split to separate patch and add commit message] (From OE-Core rev: 84e891d812874311b4afa20fd7d3dc4c457009f6) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 65ce2d129154d4540cb8ec960971bcf6aa5a9480) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "meta: rust: Bug fix for target definitions returning 'NoneType'"Richard Purdie2022-04-051-14/+14
| | | | | | | | | This reverts commit ef49f89c89889466ee3696ab680f8e10c961a677. This appears to cause build failures which didn't originally show up in testing, reverting for now. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: rust: Bug fix for target definitions returning 'NoneType'Sundeep KOKKONDA2022-04-051-14/+14
| | | | | | | | | | | | | | | The build shows below error while building for arm machines. Exception: TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' Detailed error info : https://lists.openembedded.org/g/openembedded-core/message/164004 All the target definitions within tspec dictionary are generted as NoneType. The changes will fix this issue. (From OE-Core rev: ef49f89c89889466ee3696ab680f8e10c961a677) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-crosssdk: use ${RUST_LIBC} in ${PN}Christian Eggers2022-03-261-1/+1
| | | | | | | | | | | TCLIBC is only valid for TARGET, not for HOST or NATIVESDK. Fixes build of rust-crosssdk if TCLIBC is set to musl. (From OE-Core rev: c0b353d19d4cd796e5e63c6bec72962854fe81f4) Signed-off-by: Christian Eggers <ceggers@arri.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross: Add rust-crosssdk variant for nativesdk useRichard Purdie2022-03-173-7/+14
| | | | | | | | | Allow nativesdk recipes to find a correct version of the rust cross compiler. (From OE-Core rev: 0f5d26772abfbbae9096fa43901d8620f76aea3c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libstd-rs: Extend to nativesdkRichard Purdie2022-03-171-0/+2
| | | | | | | | | This is needed to add the rust standard library to SDKs for use by SDK tools. (From OE-Core rev: 060057fa94451586e4eb47f68bc5c7c796f7d337) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libstd-rs: Fix build on riscv64/muslKhem Raj2022-03-153-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | Backport necessary patch, which was dropped in upgrade to 1.59 Fixes: error[E0425]: cannot find value `SYS_clone3` in this scope --> library/std/src/sys/unix/weak.rs:202:17 | 202 | concat_idents!(SYS_, $name), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `SYS_clone` | ::: library/std/src/sys/unix/process/process_unix.rs:165:9 | 165 | / raw_syscall! { 166 | | fn clone3(cl_args: *mut clone_args, len: libc::size_t) -> libc::c_long 167 | | } | |_________- in this macro invocation | (From OE-Core rev: f529401cd8d2c45273f706636e5ed89123238200) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.58.1 -> 1.59.0Alexander Kanavin2022-03-0913-1624/+17
| | | | | | | | | Drop libstd-rs patches as they're merged upstream. (From OE-Core rev: 05f4a09899aa8dbb22ef1adb494abac41d5b96b7) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Add snapshot checksums for powerpc64leAndrew Jeffery2022-03-021-0/+4
| | | | | | | (From OE-Core rev: ab0c2de443278625c5db54d5c51e193791f5087c) Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Introduce RUST_BUILD_ARCHAndrew Jeffery2022-03-022-7/+7
| | | | | | | | | | | | | 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>
* rust: Introduce arch_to_rust_arch()Andrew Jeffery2022-03-021-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On modern Power systems `uname -m` yields 'ppc64le' while the toolchain knows the architecture as 'powerpc64le'. Provide a mapping from one to the other to integrate with the existing architecture configuration flags. arch_to_rust_arch() only exists to map the OE *_ARCH variables before any further processing, unlike arch_to_rust_target_arch() which is specific to the internal triple handling of rust. On Linux ppc64le systems the changes give the following config: ``` $ cat ./tmp/work/ppc64le-linux/rust-native/1.58.0-r0/targets/ppc64le-linux.json { "llvm-target": "powerpc64le-unknown-linux-gnu", "data-layout": "e-m:e-i64:64-n32:64-v256:256:256-v512:512:512", "max-atomic-width": 64, "target-pointer-width": "64", "target-c-int-width": "64", "target-endian": "little", "arch": "powerpc64", "os": "linux", "env": "gnu", "vendor": "unknown", "target-family": "unix", "linker": "gcc", "cpu": "generic", "dynamic-linking": true, "executables": true, "linker-is-gnu": true, "linker-flavor": "gcc", "has-rpath": true, "has-elf-tls": true, "position-independent-executables": true, "panic-strategy": "unwind" } ``` Change-Id: Ief0c01189185d7d4da31d307270bec4e1de674ca (From OE-Core rev: 9ab61e3cfef0157393cb870d606c2f362e190889) Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libstd-rs: Apply patches to right version of libcKhem Raj2022-02-034-31/+18
| | | | | | | | | | | | 1.58 rust libstd is locked to use 0.2.106, therefore patch the correct version. once we start using 0.2.108+ these patches will not be required as the port is available then on. (From OE-Core rev: 83a9d2ba188b3a95d01ef62763d33b89435f8a1a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.58.0 -> 1.58.1Alexander Kanavin2022-02-017-1/+2
| | | | | | | (From OE-Core rev: 855ec0af1b3c7c2664e68ac89cad839d480c43db) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.57.0 -> 1.58.0Alexander Kanavin2022-01-2014-56/+75
| | | | | | | (From OE-Core rev: 43895e2967b2c80f4ee353b33ffe422ea7590ff1) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-llvm: apply the same reproducibility patch as for llvm properAlexander Kanavin2022-01-112-1/+33
| | | | | | | (From OE-Core rev: a845029df7ea8c1bd987ffac3902d4521742debb) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.56.1 -> 1.57.0Alexander Kanavin2021-12-088-6/+12
| | | | | | | (From OE-Core rev: 295b9d51bad0b0da3ba9acec875972bf5e5ca4d7) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross: Replace TARGET_ARCH with TUNE_PKGARCHPgowda2021-11-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rust-cross-* imported from meta-rust has incorrect signatures, depending on MACHINEOVERRIDES making it effectively MACHINE_ARCH as shown by sstate-diff-machines.sh: openembedded-core/scripts/sstate-diff-machines.sh --tmpdir=tmp-glibc \ --machines="qemuarm64 qemuarm64copy" --targets=rust-cross-aarch64-glibc \ --analyze === Comparing signatures for task do_configure.sigdata between qemuarm64 and qemuarm64copy === ERROR: gcc-runtime different signature for task do_configure.sigdata between qemuarm64 and qemuarm64copy NOTE: Starting bitbake server... Hash for dependent task gcc/gcc-runtime_11.2.bb:do_prepare_recipe_sysroot changed from da4ebf1b272cb73153145a0a95e6438d2955ae2d36f84db10f6880b2781ec331 to 47a0ebb7a88c9f896fb9dbce269f575ab8a6faabb2b9e62d164be6e71c5e4e40 Unable to find matching sigdata for openembedded-core/meta/recipes-devtools/gcc/gcc-runtime_11.2.bb: do_prepare_recipe_sysroot with hashes da4ebf1b272cb73153145a0a95e6438d2955ae2d36f84db10f6880b2781ec331 or 47a0ebb7a88c9f896fb9dbce269f575ab8a6faabb2b9e62d164be6e71c5e4e40 The following patch takes TUNE_PKGARCH into consideration instead of TARGET_ARCH and results in signatures as expected. [YOCTO #14613] RP: Added maintainer.inc corresponding change (From OE-Core rev: bcf48766d1123cea41f80b0cb687584692c96158) Signed-off-by: Pgowda <pgowda.cve@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* librstd-rs: submit patches upstreamAlexander Kanavin2021-11-214-0/+4
| | | | | | | (From OE-Core rev: f298853c50b50e79a2802e4e1781fea9b53b5f20) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.56.0 -> 1.56.1Alexander Kanavin2021-11-1111-119/+10
| | | | | | | | | | | | This update includes fixes for the 'trojan source' vulnerability: https://blog.rust-lang.org/2021/11/01/Rust-1.56.1.html Drop two unused patches. (From OE-Core rev: 5ff0b0d8c6c37ebf916062f03a378fe0e34b1c53) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: add support for big endian 64-bit PowerPCDavid Joyner2021-10-271-0/+8
| | | | | | | | (From OE-Core rev: 91cc84afbfa6aad154f9a6402b538ea1b7c0ecd4) Signed-off-by: David Joyner <dbjoyner@amazon.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade to 1.56.0Khem Raj2021-10-2314-192/+78
| | | | | | | | | | | | | | | This is latest major release, changes are here [1] Forward port libstd-rs patches and refresh musl/rv64 port [1] https://github.com/rust-lang/rust/releases/tag/1.56.0 (From OE-Core rev: 183204cbc70a4ef418b16df48bc7eb6e3a75a114) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross: Fix directory not deleted for race glibc vs. muslPgowda2021-10-231-1/+1
| | | | | | | | | | | | Use different recipe names for the two different targets so that when switching libcs overlapping files in the sysroot don't cause issues. (From OE-Core rev: 33be44a02beb7c52f075f660ad8e0641e360011c) Signed-off-by: Pgowda <pgowda.cve@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Fix rust-native build issue when debug is enabledPgowda2021-10-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | When DEBUG_BUILD is set for building rust-native, it generated error as follows:- ========================================================= Building : rustdoc, rustdoc-json-types error[E0463]: can't find crate for `rustc_llvm` which `rustc_driver` depends on --> src/librustdoc/lib.rs:37:1 | 37 | extern crate rustc_driver; | ^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate ========================================================= On analyzing the issue, it was found that rustc_llvm crate was present at required path. However, it was very huge due to the presence of debugging information. Hence, it was somehow not recognized as a valid crate. The following patch removes the debug information from rust-llvm-native which is built prior to rust-native but retains debug information as required in rust-native binaries. (From OE-Core rev: 7261a4b4d5778a48c8d72c9125233b1b0bc009e6) Signed-off-by: Pgowda <pgowda.cve@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: generate target definitions from (arch, abi), not just archAlexander Kanavin2021-10-142-23/+38
| | | | | | | | | | This allows to add the missing x32 definition and others in the future. (From OE-Core rev: 79bd6389585327820dfc1a1d29f60779ef08b2e0) 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: do not write ar into target json definitionsAlexander Kanavin2021-10-141-1/+0
| | | | | | | | | | | latest rust does not use it and prints a ton of warnings because of it. (From OE-Core rev: 320f2c5aa535237fab4f4a1e6f75358f53221459) 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/cargo: exclude UNINATIVE_LOADER from task signatureAlexander Kanavin2021-10-141-0/+1
| | | | | | | | (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>
* rust: update 1.54.0 -> 1.55.0Alexander Kanavin2021-10-148-9/+9
| | | | | | | | (From OE-Core rev: a21705c33a6a69e9a625b8a75d76b76bd078aba2) 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: drop PV from include file namesAlexander Kanavin2021-10-1414-30/+26
| | | | | | | | | | | This complicates (semi) automated upgrades, and isn't necessary as we carry only a single version of the toolchain. (From OE-Core rev: f7a6b23d99fba5855cfb34788199877a14206293) 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: remove unused patchesMartin Jansa2021-09-022-101/+0
| | | | | | | | | | * 0001-nfc-Fix-missing-include.patch was only used in 1.51.0 version recently removed * 0001-rustc_target-Fix-dash-vs-underscore-mismatches-in-op.patch was only used in 1.49.0 version in meta-rust (From OE-Core rev: 52b12dac55a3747d8d6f2e799c669ef2bcda57ae) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: fix upstream version checksAlexander Kanavin2021-09-011-0/+3
| | | | | | | (From OE-Core rev: e2e87d82ad1ec071077f29613e2e568196912daa) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Avoid buildtools+uninative issues with glibc symbols mismatchesRichard Purdie2021-08-261-0/+8
| | | | | | | | | | | | | | | 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>
* rust: Skip target recipe since it doesn't workRichard Purdie2021-08-261-0/+7
| | | | | | | | | | | The target rust recipe is known not to work. Add a SkipRecipe entry for that so world builds don't include something known to be broken and hence give users a sensible message if they do try and build it rather than a build failure. (From OE-Core rev: 16c77c82ff6635b0180690ea117e2eff8fd63afb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-llvm: Add missing HOMEPAGERichard Purdie2021-08-261-0/+1
| | | | | | | | Add a missing HOMEPAGE entry to the recipe (fixing a selftest failure). (From OE-Core rev: 71782d90cff825bd9c20d49590245565a6194bf8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-native: Avoid stripped warningRichard Purdie2021-08-261-0/+2
| | | | | | | | | | Instead of giving the following warning, hide it since we don't plan to change it. WARNING: rust-native-1.54.0-r0 do_populate_sysroot: File '/media/build1/poky/build/tmp/work/x86_64-linux/rust-native/1.54.0-r0/recipe-sysroot-native/usr/lib/rustlib/x86_64-linux/bin/rust-llvm-dwp' from rust-native was already stripped, this will prevent future debugging! (From OE-Core rev: ec5f0c77882ccbd5797519f5ded4e528eb687008) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross-canadian-common: Use rust.inc directly, not rust-targetRichard Purdie2021-08-261-1/+3
| | | | | | | | | We don't want cross-canadian to see the native BBCLASSEXTEND as that generates a recipe which makes no sense. Avoid this. (From OE-Core rev: f3648d18c4e05f38053bb1fd73796a6e05d61928) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross*: Fix OVERRRIDE references in task signature computationRichard Purdie2021-08-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The oeqa selftest test: sstatetests.SStateTests.test_sstate_sametune_samesigs which checks if the sstate checksums of two identical machines (using the same tune) are the same, apart from changes within the machine specific stamps directory, fails on the assertion: self.assertCountEqual(files1, files2) due to the signature of various 32 bit package builds such as: x86_64-linux/lib32-rust-cross-i686 x86_64-linux/rust-cross-i686 x86-pokymllib32-linux/lib32-libstd-rs x86-pokymllib32-linux/lib32-rust differing. Jumping down the rabbit hole past all the bitbake-diffsig outputs that differ due to dependent hashes, you come to a diff of: -Variable MACHINEOVERRIDES value is ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '', d)}qemuall:${MACHINE} +Variable MACHINEOVERRIDES value is ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '', d)}qemuall:${MACHINE}:qemux86 in stamps/x86_64-linux/rust-cross-i686/1.54.0-r0.do_rust_gen_target.<sig> This is because there are two rust functions referencing OVERRIDES related variables (target_is_armv7 and llvm_features_from_tune). These indirectly influnce the build and should be excluded from the signatures directly as is done in other toolchain recipes, e.g.: 39bfa0dd32 recipes/*-cross recipes: ignore TARGET_ARCH sstate hash (From OE-Core rev: 72d67410e92207a98a801ddf0cb9f1297a752975) Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: remove Rust version 1.51.0 toolchainRandy MacLeod2021-08-2613-1785/+0
| | | | | | | | | | We typically only have one version so remove the older rust toolchain. This also fixes a maintainers oe-selftest. (From OE-Core rev: d8ff9672d2686801d535a91fa28a92e38d8f0409) Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>