mirror of
https://git.yoctoproject.org/poky
synced 2026-02-08 18:02:12 +01:00
The Rust cstring-merging assembly test was failing on PowerPC targets due to
LLVM's GlobalMerge optimization pass merging all global string constants into
a single merged global. This caused the test's CHECK directives to fail as
they expected separate .Lanon labels for each string literal ("foo", "bar",
"baz").
The test verifies that C-style string literals are correctly placed in
mergeable read-only sections (.rodata.str1.1) with proper section flags
(aMS - Allocatable, Merge, Strings) for linker optimization.
This backports the upstream fix that disables the GlobalMerge pass
(-Cllvm-args=-enable-global-merge=0) specifically for this test, allowing
it to verify the expected assembly structure without interference from
the optimization.
Fixes test failure:
- tests/assembly/cstring-merging.rs on powerpc-poky-linux-gnu
Backport of 2d51acd2fb
(From OE-Core rev: 2435b16b050ebdca0f70fe9ed1eebfdd3bacf19d)
Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
Tested-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
25 lines
1.6 KiB
PHP
25 lines
1.6 KiB
PHP
RUST_VERSION ?= "${@d.getVar('PV').split('-')[0]}"
|
|
|
|
SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;name=rust \
|
|
file://0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch;patchdir=${RUSTSRC} \
|
|
file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
|
|
file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
|
|
file://oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch;patchdir=${RUSTSRC} \
|
|
file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
|
|
file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
|
|
file://0001-libunwind-Use-gcs-instead-of-gcs-target-attribute.patch;patchdir=${RUSTSRC} \
|
|
file://0001-Disable-libunwind-cross-architecture-unwinding.patch;patchdir=${RUSTSRC} \
|
|
file://triagebot.patch;patchdir=${RUSTSRC} \
|
|
file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
|
|
file://backport-fix-test-string-merging.patch;patchdir=${RUSTSRC} \
|
|
"
|
|
SRC_URI[rust.sha256sum] = "0c1dcbb4f762513d021e1a282c0ac58c0a423642b3a6bf581cafb5414df4193e"
|
|
|
|
RUSTSRC = "${UNPACKDIR}/rustc-${RUST_VERSION}-src"
|
|
|
|
UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
|
|
UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
|
|
|
|
CVE_STATUS[CVE-2024-24576] = "not-applicable-platform: Issue only applies on Windows"
|
|
CVE_STATUS[CVE-2024-43402] = "not-applicable-platform: Issue only applies on Windows"
|