diff mbox series

rust-target-config: Set elfv2 ABI for powerpc64 when using ppc64p9le tune

Message ID 20251023161522.994070-1-Deepesh.Varatharajan@windriver.com
State New
Headers show
Series rust-target-config: Set elfv2 ABI for powerpc64 when using ppc64p9le tune | expand

Commit Message

Deepesh Varatharajan Oct. 23, 2025, 4:15 p.m. UTC
From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

For the powerpc64 machine with ppc64p9le tune, the supported ABI is elfv2
but the default elfv1 ABI is used and this causes link-time errors such as:

    ABI version 1 is not compatible with ABI version 2 output

To resolve this, the powerpc64 machine with ppc64p9le tune is updated
with elfv2 ABI otherwise, default to elfv1 ABI. This change ensures
consistent ABI behavior across LLVM and Rust builds.

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
---
 meta/classes-recipe/rust-target-config.bbclass | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Mathieu Dubois-Briand Oct. 26, 2025, 1:23 p.m. UTC | #1
On Thu Oct 23, 2025 at 6:15 PM CEST, Deepesh via lists.openembedded.org Varatharajan wrote:
> From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>
> For the powerpc64 machine with ppc64p9le tune, the supported ABI is elfv2
> but the default elfv1 ABI is used and this causes link-time errors such as:
>
>     ABI version 1 is not compatible with ABI version 2 output
>
> To resolve this, the powerpc64 machine with ppc64p9le tune is updated
> with elfv2 ABI otherwise, default to elfv1 ABI. This change ensures
> consistent ABI behavior across LLVM and Rust builds.
>
> Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
> ---

Hi Deepesh,

It looks like this is making the
sstatetests.SStateHashSameSigs2.test_sstate_nativesdk_samesigs_multilib
test fail:

2025-10-26 08:51:57,797 - oe-selftest - INFO - sstatetests.SStateHashSameSigs2.test_sstate_nativesdk_samesigs_multilib (subunit.RemotedTestCase)
2025-10-26 08:51:57,797 - oe-selftest - INFO -  ... FAIL
...
AssertionError: {'nat[45104 chars]o/do_fetch': 'bdd296fda030801a2ec723f040ed3f24[267479 chars]6d3'} != {'nat[45104 chars]o/do_install': 'ef30ed01cb16a4f54ae283891c27ba[267479 chars]6d3'}
- {'adwaita-icon-theme/do_collect_spdx_deps': 'e9c8aa9cb0da1323bf4df9c657378e80fea1073a8965b8a3a93d343cb1682b32',
-  'adwaita-icon-theme/do_compile': 'c77f720ad728595247f0191ce3f416d1bbb29452cb6ddd29abcf4ef5b7d5675c',
-  'adwaita-icon-theme/do_configure': 'c42cce9d1f3dfc4af7d4ee6896de1148dea92979785fc33826d877747b2d07e5',
-  'adwaita-icon-theme/do_create_package_spdx': '701aeb10f9e4da9c6d1ab2c1d97d2b43c621b5cbd5b90c89cfc4f49123ed28fb',
-  'adwaita-icon-theme/do_create_spdx': 'c7b48fa5ee7aa7e2183567d8eecf53bd1ef32266d89c55b05a75f1e2e91a0f54',
+ {'adwaita-icon-theme/do_collect_spdx_deps': '26bf70dce8eafe543e4577a0a25ce6c70f70a8c43413115a7e428c2fd00e2242',
+  'adwaita-icon-theme/do_compile': 'b83691bddde426f52318e31a2fab6e17807abeceb5ccc7441f1008f6c77e5291',
+  'adwaita-icon-theme/do_configure': '6e38f74c8d0a14e3229cdf96058639c1f9269bf34e035c83874a0713256b6dd9',
+  'adwaita-icon-theme/do_create_package_spdx': '57a8b2eee13c7e4df83c7c88cfb2f0acd479f072c11a082a14acc5345fcf8228',
+  'adwaita-icon-theme/do_create_spdx': '72ee25314fee38c71794368ce1030dc9ce103a5e10ca09c3412066effad6e684',

...

https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/2744
https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2596
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2506

Can you have look at these errors?

Thanks,
Mathieu
Deepesh Varatharajan Oct. 28, 2025, 5:26 a.m. UTC | #2
On 26-10-2025 18:53, Mathieu Dubois-Briand wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Thu Oct 23, 2025 at 6:15 PM CEST, Deepesh via lists.openembedded.org Varatharajan wrote:
>> From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>>
>> For the powerpc64 machine with ppc64p9le tune, the supported ABI is elfv2
>> but the default elfv1 ABI is used and this causes link-time errors such as:
>>
>>      ABI version 1 is not compatible with ABI version 2 output
>>
>> To resolve this, the powerpc64 machine with ppc64p9le tune is updated
>> with elfv2 ABI otherwise, default to elfv1 ABI. This change ensures
>> consistent ABI behavior across LLVM and Rust builds.
>>
>> Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>> ---
> Hi Deepesh,
>
> It looks like this is making the
> sstatetests.SStateHashSameSigs2.test_sstate_nativesdk_samesigs_multilib
> test fail:
>
> 2025-10-26 08:51:57,797 - oe-selftest - INFO - sstatetests.SStateHashSameSigs2.test_sstate_nativesdk_samesigs_multilib (subunit.RemotedTestCase)
> 2025-10-26 08:51:57,797 - oe-selftest - INFO -  ... FAIL
> ...
> AssertionError: {'nat[45104 chars]o/do_fetch': 'bdd296fda030801a2ec723f040ed3f24[267479 chars]6d3'} != {'nat[45104 chars]o/do_install': 'ef30ed01cb16a4f54ae283891c27ba[267479 chars]6d3'}
> - {'adwaita-icon-theme/do_collect_spdx_deps': 'e9c8aa9cb0da1323bf4df9c657378e80fea1073a8965b8a3a93d343cb1682b32',
> -  'adwaita-icon-theme/do_compile': 'c77f720ad728595247f0191ce3f416d1bbb29452cb6ddd29abcf4ef5b7d5675c',
> -  'adwaita-icon-theme/do_configure': 'c42cce9d1f3dfc4af7d4ee6896de1148dea92979785fc33826d877747b2d07e5',
> -  'adwaita-icon-theme/do_create_package_spdx': '701aeb10f9e4da9c6d1ab2c1d97d2b43c621b5cbd5b90c89cfc4f49123ed28fb',
> -  'adwaita-icon-theme/do_create_spdx': 'c7b48fa5ee7aa7e2183567d8eecf53bd1ef32266d89c55b05a75f1e2e91a0f54',
> + {'adwaita-icon-theme/do_collect_spdx_deps': '26bf70dce8eafe543e4577a0a25ce6c70f70a8c43413115a7e428c2fd00e2242',
> +  'adwaita-icon-theme/do_compile': 'b83691bddde426f52318e31a2fab6e17807abeceb5ccc7441f1008f6c77e5291',
> +  'adwaita-icon-theme/do_configure': '6e38f74c8d0a14e3229cdf96058639c1f9269bf34e035c83874a0713256b6dd9',
> +  'adwaita-icon-theme/do_create_package_spdx': '57a8b2eee13c7e4df83c7c88cfb2f0acd479f072c11a082a14acc5345fcf8228',
> +  'adwaita-icon-theme/do_create_spdx': '72ee25314fee38c71794368ce1030dc9ce103a5e10ca09c3412066effad6e684',
>
> ...
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/2744
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2596
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2506
>
> Can you have look at these errors?
>
> Thanks,
> Mathieu
The issue was addresed in V2.

Regards,
Deepesh
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
diff mbox series

Patch

diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass
index 0c7e3c0090..c462478dae 100644
--- a/meta/classes-recipe/rust-target-config.bbclass
+++ b/meta/classes-recipe/rust-target-config.bbclass
@@ -406,7 +406,11 @@  def rust_gen_target(d, thing, wd, arch):
     if "powerpc64le" in tspec['llvm-target']:
         tspec['llvm-abiname'] = "elfv2"
     if "powerpc64" in tspec['llvm-target']:
-        tspec['llvm-abiname'] = "elfv1"
+        defaulttune = d.getVar('DEFAULTTUNE') or ''
+        if 'ppc64p9le' in defaulttune:
+            tspec['llvm-abiname'] = "elfv2"
+        else:
+            tspec['llvm-abiname'] = "elfv1"
     tspec['vendor'] = "unknown"
     tspec['target-family'] = "unix"
     tspec['linker'] = "{}{}gcc".format(d.getVar('CCACHE'), prefix)