summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/files
diff options
context:
space:
mode:
authorPeter Tatrai <peter.tatrai.ext@siemens.com>2025-08-11 10:43:34 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-08-14 10:31:10 +0100
commit125ff9747b15ffddcc537bf4dfd9bf90ab189d67 (patch)
treeb8346305b2ed4a7ab70aef23ad69e0c867886a14 /meta/recipes-devtools/rust/files
parent65e4a4739e7ba2b816224f26825df3ad386ac299 (diff)
downloadpoky-125ff9747b15ffddcc537bf4dfd9bf90ab189d67.tar.gz
rust: backport cstring-merging test fix for PowerPC targets
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 https://github.com/rust-lang/rust/commit/2d51acd2fbcbadb6f30709c5dd305494d413d388 (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>
Diffstat (limited to 'meta/recipes-devtools/rust/files')
-rw-r--r--meta/recipes-devtools/rust/files/backport-fix-test-string-merging.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rust/files/backport-fix-test-string-merging.patch b/meta/recipes-devtools/rust/files/backport-fix-test-string-merging.patch
new file mode 100644
index 0000000000..1e72c100bb
--- /dev/null
+++ b/meta/recipes-devtools/rust/files/backport-fix-test-string-merging.patch
@@ -0,0 +1,27 @@
1From 2d51acd2fbcbadb6f30709c5dd305494d413d388 Mon Sep 17 00:00:00 2001
2From: Jens Reidel <adrian@travitia.xyz>
3Date: Fri, 18 Jul 2025 19:44:20 +0200
4Subject: [PATCH] tests: assembly: cstring-merging: Disable GlobalMerge pass
5
6The test relies on LLVM not merging all the globals into one and would
7currently otherwise fail on powerpc64le.
8
9Signed-off-by: Peter Tatrai <Peter.Tatrai@siemens.com>
10Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/2d51acd2fbcbadb6f30709c5dd305494d413d388]
11---
12 tests/assembly/cstring-merging.rs | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/tests/assembly/cstring-merging.rs b/tests/assembly/cstring-merging.rs
16index f7d0775f7affd..03688e0068b79 100644
17--- a/tests/assembly/cstring-merging.rs
18+++ b/tests/assembly/cstring-merging.rs
19@@ -2,7 +2,7 @@
20 // other architectures (including ARM and x86-64) use the prefix `.Lanon.`
21 //@ only-linux
22 //@ assembly-output: emit-asm
23-//@ compile-flags: --crate-type=lib -Copt-level=3
24+//@ compile-flags: --crate-type=lib -Copt-level=3 -Cllvm-args=-enable-global-merge=0
25 //@ edition: 2024
26
27 use std::ffi::CStr;