mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-04 16:10:04 +00: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>
28 lines
1.1 KiB
Diff
28 lines
1.1 KiB
Diff
From 2d51acd2fbcbadb6f30709c5dd305494d413d388 Mon Sep 17 00:00:00 2001
|
|
From: Jens Reidel <adrian@travitia.xyz>
|
|
Date: Fri, 18 Jul 2025 19:44:20 +0200
|
|
Subject: [PATCH] tests: assembly: cstring-merging: Disable GlobalMerge pass
|
|
|
|
The test relies on LLVM not merging all the globals into one and would
|
|
currently otherwise fail on powerpc64le.
|
|
|
|
Signed-off-by: Peter Tatrai <Peter.Tatrai@siemens.com>
|
|
Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/2d51acd2fbcbadb6f30709c5dd305494d413d388]
|
|
---
|
|
tests/assembly/cstring-merging.rs | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/tests/assembly/cstring-merging.rs b/tests/assembly/cstring-merging.rs
|
|
index f7d0775f7affd..03688e0068b79 100644
|
|
--- a/tests/assembly/cstring-merging.rs
|
|
+++ b/tests/assembly/cstring-merging.rs
|
|
@@ -2,7 +2,7 @@
|
|
// other architectures (including ARM and x86-64) use the prefix `.Lanon.`
|
|
//@ only-linux
|
|
//@ assembly-output: emit-asm
|
|
-//@ compile-flags: --crate-type=lib -Copt-level=3
|
|
+//@ compile-flags: --crate-type=lib -Copt-level=3 -Cllvm-args=-enable-global-merge=0
|
|
//@ edition: 2024
|
|
|
|
use std::ffi::CStr;
|