This patch is ok, any rust version using clang 18 or newer will need this.

On Thu, Oct 17, 2024 at 5:33 AM Varatharajan, Deepesh via
lists.openembedded.org
<[email protected]> wrote:
>
> From: Deepesh Varatharajan <[email protected]>
>
> The data layout for x86-64 target was different in rust from llvm.
> It resulted in the following data layout error:
> --------------------------------------------------------------------------------------
> error: data-layout for target `x86_64-linux`, 
> `e-m:e-i64:64-f80:128-n8:16:32:64-S128`,
> differs from LLVM target's `x86_64-unknown-linux-gnu` default layout,
> `e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128`
> --------------------------------------------------------------------------------------
>
> The issue was reported in meta-rust layer as:
> https://github.com/meta-rust/meta-rust/pull/442
>
> Hence, the data layout for x86-64 is modified as per the llvm sources which 
> fixes the issue.
>
> After running the testsuite with the modified data layout; it was observed 
> that the
> "tests/codegen/i128-x86-align.rs" passed. The modified data layout fixed the 
> scalar pair which
> resolved the testcase failure. Hence, the testcase has been removed from the 
> exclude list.
>
> Signed-off-by: Deepesh Varatharajan <[email protected]>
> ---
>  meta/classes-recipe/rust-target-config.bbclass | 2 +-
>  meta/lib/oeqa/selftest/cases/rust.py           | 1 -
>  2 files changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/meta/classes-recipe/rust-target-config.bbclass 
> b/meta/classes-recipe/rust-target-config.bbclass
> index 334f2e7d5f..f7aa6c74d8 100644
> --- a/meta/classes-recipe/rust-target-config.bbclass
> +++ b/meta/classes-recipe/rust-target-config.bbclass
> @@ -153,7 +153,7 @@ TARGET_C_INT_WIDTH[aarch64] = "32"
>  MAX_ATOMIC_WIDTH[aarch64] = "128"
>
>  ## x86_64-unknown-linux-{gnu, musl}
> -DATA_LAYOUT[x86_64] = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
> +DATA_LAYOUT[x86_64] = 
> "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
>  TARGET_ENDIAN[x86_64] = "little"
>  TARGET_POINTER_WIDTH[x86_64] = "64"
>  TARGET_C_INT_WIDTH[x86_64] = "32"
> diff --git a/meta/lib/oeqa/selftest/cases/rust.py 
> b/meta/lib/oeqa/selftest/cases/rust.py
> index cbe6366f75..88d7bb9518 100644
> --- a/meta/lib/oeqa/selftest/cases/rust.py
> +++ b/meta/lib/oeqa/selftest/cases/rust.py
> @@ -83,7 +83,6 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, 
> OEPTestResultTestCase):
>                              'src/tools/tidy/src/',
>                              'tests/assembly/asm/aarch64-outline-atomics.rs',
>                              
> 'tests/codegen/abi-main-signature-32bit-c-int.rs',
> -                            'tests/codegen/i128-x86-align.rs',
>                              'tests/codegen/issues/issue-122805.rs',
>                              'tests/codegen/thread-local.rs',
>                              'tests/mir-opt/',
> --
> 2.43.0
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#206031): 
https://lists.openembedded.org/g/openembedded-core/message/206031
Mute This Topic: https://lists.openembedded.org/mt/109062536/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to