Commit Graph

54 Commits

Author SHA1 Message Date
Peter Marko
ef4d24afa1 rust: ignore CVE-2024-43402
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>
2024-10-12 05:17:57 -07:00
Harish Sadineni
0f437fb0f2 rust: add CVE_CHECK_IGNORE for CVE-2024-24576
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>
2024-04-21 06:33:34 -07:00
Richard Purdie
e01044d629 rust-cross: Simplfy the rust_gen_target calls
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>
2023-12-12 04:20:35 -10:00
Richard Purdie
079e50aba0 rust-cross/rust-common: Merge arm target handling code to fix cross-canadian
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>
2023-12-12 04:20:35 -10:00
Richard Purdie
26ffdb7a30 rust-cross-canadian: Fix ordering of target json config generation
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>
2023-12-12 04:20:35 -10:00
Richard Purdie
1110f16718 rust-common: Set llvm-target correctly for cross SDK targets
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>
2023-12-12 04:20:35 -10:00
Niko Mauno
8b75148d87 rust-llvm: Allow overriding LLVM target archs
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>
2023-12-12 04:20:35 -10:00
Alexander Sverdlin
335eb3a93e rust-llvm: backport a fix for build with gcc-13
* 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>
2023-07-21 06:27:34 -10:00
Martin Jansa
54d0147307 meta: remove True option to getVar and getVarFlag calls (again)
* 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>
2023-02-15 21:46:56 +00:00
Peter Bergin
b2dba5ca25 rust: fix issue building cross-canadian tools for aarch64 on x86_64
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>
2022-07-08 08:27:16 +01:00
Richard Purdie
c29718ee73 rust-common: Fix native signature dependency issues
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>
2022-06-07 11:53:26 +01:00
Richard Purdie
4e05a17616 rust-common: Drop LLVM_TARGET and simplify
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>
2022-06-07 11:53:26 +01:00
Sundeep KOKKONDA
a0d3dde7c0 rust-common: Fix for target definitions returning 'NoneType' for arm
[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>
2022-06-07 11:53:26 +01:00
Sundeep KOKKONDA
a394d454f8 rust-common: Ensure sstate signatures have correct dependencues for 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>
2022-06-07 11:53:26 +01:00
Richard Purdie
0bf2fd1627 Revert "meta: rust: Bug fix for target definitions returning 'NoneType'"
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>
2022-04-05 17:41:09 +01:00
Sundeep KOKKONDA
e4c16d1112 meta: rust: Bug fix for target definitions returning 'NoneType'
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>
2022-04-05 10:49:36 +01:00
Christian Eggers
025c49b3cf rust-crosssdk: use ${RUST_LIBC} in ${PN}
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>
2022-03-26 09:33:32 +00:00
Richard Purdie
da0cb26c00 rust-cross: Add rust-crosssdk variant for nativesdk use
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>
2022-03-17 16:44:33 +00:00
Richard Purdie
b792bcd602 libstd-rs: Extend to nativesdk
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>
2022-03-17 16:44:33 +00:00
Khem Raj
72b534fe61 libstd-rs: Fix build on riscv64/musl
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>
2022-03-15 08:40:09 +00:00
Alexander Kanavin
9310d1531c rust: update 1.58.1 -> 1.59.0
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>
2022-03-09 11:46:27 +00:00
Andrew Jeffery
911ee75249 rust: Add snapshot checksums for powerpc64le
(From OE-Core rev: ab0c2de443278625c5db54d5c51e193791f5087c)

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
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
Andrew Jeffery
102e4c029e rust: Introduce arch_to_rust_arch()
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>
2022-03-02 18:44:17 +00:00
Khem Raj
f84ceeee98 libstd-rs: Apply patches to right version of libc
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>
2022-02-03 09:05:14 +00:00
Alexander Kanavin
f64ac4c918 rust: update 1.58.0 -> 1.58.1
(From OE-Core rev: 855ec0af1b3c7c2664e68ac89cad839d480c43db)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-01 07:31:18 +00:00
Alexander Kanavin
e5ce164931 rust: update 1.57.0 -> 1.58.0
(From OE-Core rev: 43895e2967b2c80f4ee353b33ffe422ea7590ff1)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-20 11:57:29 +00:00
Alexander Kanavin
43b7766105 rust-llvm: apply the same reproducibility patch as for llvm proper
(From OE-Core rev: a845029df7ea8c1bd987ffac3902d4521742debb)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-11 10:53:44 +00:00
Alexander Kanavin
d1f27ddebb rust: update 1.56.1 -> 1.57.0
(From OE-Core rev: 295b9d51bad0b0da3ba9acec875972bf5e5ca4d7)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-08 20:22:11 +00:00
Pgowda
8c5e589df8 rust-cross: Replace TARGET_ARCH with TUNE_PKGARCH
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>
2021-11-23 10:53:15 +00:00
Alexander Kanavin
fe34eaef8d librstd-rs: submit patches upstream
(From OE-Core rev: f298853c50b50e79a2802e4e1781fea9b53b5f20)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:05:01 +00:00
Alexander Kanavin
259afff652 rust: update 1.56.0 -> 1.56.1
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>
2021-11-11 17:09:16 +00:00
David Joyner
ec2eaed901 rust: add support for big endian 64-bit PowerPC
(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>
2021-10-27 09:46:41 +01:00
Khem Raj
dec1a60146 rust: Upgrade to 1.56.0
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>
2021-10-23 22:14:13 +01:00
Pgowda
a87bff5925 rust-cross: Fix directory not deleted for race glibc vs. musl
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>
2021-10-23 17:42:27 +01:00
Pgowda
11df8c79a7 Fix rust-native build issue when debug is enabled
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>
2021-10-14 11:57:38 +01:00
Alexander Kanavin
d6b563710e rust: generate target definitions from (arch, abi), not just arch
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>
2021-10-14 11:48:45 +01:00
Alexander Kanavin
463bcb876e rust: do not write ar into target json definitions
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>
2021-10-14 11:48:45 +01: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
Alexander Kanavin
5efebf3be0 rust: update 1.54.0 -> 1.55.0
(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>
2021-10-14 11:48:45 +01:00
Alexander Kanavin
d91db6917f rust: drop PV from include file names
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>
2021-10-14 11:48:45 +01:00
Martin Jansa
a1c9d67c2b rust: remove unused patches
* 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>
2021-09-02 21:22:54 +01:00
Alexander Kanavin
d2b0f230e0 rust: fix upstream version checks
(From OE-Core rev: e2e87d82ad1ec071077f29613e2e568196912daa)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01 14:06:17 +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
Richard Purdie
d6f10a5d65 rust: Skip target recipe since it doesn't work
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>
2021-08-26 22:09:44 +01:00
Richard Purdie
a4d2b03d3b rust-llvm: Add missing HOMEPAGE
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>
2021-08-26 22:09:44 +01:00
Richard Purdie
f37be5cafa rust-native: Avoid stripped warning
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>
2021-08-26 22:09:44 +01:00
Richard Purdie
37b2059a7f rust-cross-canadian-common: Use rust.inc directly, not rust-target
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>
2021-08-26 22:09:44 +01:00
Richard Purdie
857cf2d7b3 rust-cross*: Fix OVERRRIDE references in task signature computation
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>
2021-08-26 22:09:44 +01:00
Randy MacLeod
9632185627 rust: remove Rust version 1.51.0 toolchain
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>
2021-08-26 22:09:44 +01:00