<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>16359</bug_id>
          
          <creation_ts>2026-07-15 20:06:11 +0000</creation_ts>
          <short_desc>mpg123 recipe uses wrong --with-cpu in EXTRA_OECONF on aarch64</short_desc>
          <delta_ts>2026-08-20 13:02:36 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>multimedia</component>
          <version>6.1</version>
          <rep_platform>ARM</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>6.1</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan Nestlerode">ivan.nestlerode</reporter>
          <assigned_to name="Ivan Nestlerode">ivan.nestlerode</assigned_to>
          <cc>mathieu.dubois-briand</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>ross.burton</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106174</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan Nestlerode">ivan.nestlerode</who>
    <bug_when>2026-07-15 20:06:11 +0000</bug_when>
    <thetext>On aarch64 the mpg123 recipe should use this option in EXTRA_OECONF:
--with-cpu=neon64

but today it does not do so. Today, it does not pass any --with-cpu option at all in EXTRA_CONF on aarch64. This is probably due to confusion about TUNE_FEATURES and when it contains &quot;neon&quot;. Even though the aarch64 CPU supports the NEON instructions, the Yocto aarch64 configurations do not set &quot;neon&quot; in TUNE_FEATURES. Recipes with configure steps that involve NEON basically have to special case aarch64 due to this. The libpng recipe had a very similar problem that was eventually fixed in commit 12e68d5824849fa20f0e3fe8fc1921da111bb6fb.

The fix is a one-line change to the mpg123 recipe to look for aarch64 in TUNE_FEATURES to possibly set --with-cpu=neon64. I will attach the patch after this bug is opened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106175</commentid>
    <comment_count>1</comment_count>
      <attachid>5234</attachid>
    <who name="Ivan Nestlerode">ivan.nestlerode</who>
    <bug_when>2026-07-15 20:15:27 +0000</bug_when>
    <thetext>Created attachment 5234
patch to fix lack of NEON usage on aarch64 in mpg123 recipe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106184</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2026-07-16 14:39:25 +0000</bug_when>
    <thetext>We don&apos;t take patches via the bugzilla, would you be able to post it to the mailing list?

https://docs.yoctoproject.org/contributor-guide/submit-changes.html

I don&apos;t think the new logic needs to be nested, instead just have an extra check:

${@bb.utils.contains(&apos;TUNE_FEATURES&apos;, &apos;neon&apos;, &apos;--with-cpu=neon&apos;, &apos;&apos;, d)} \
${@bb.utils.contains(&apos;TUNE_FEATURES&apos;, &apos;aarch64&apos;, &apos;--with-cpu=neon64&apos;, &apos;&apos;, d)} \

That said I&apos;m also wondering if aarch64 should just add neon to the tune features, because it _does_ have it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106187</commentid>
    <comment_count>3</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2026-07-16 14:46:09 +0000</bug_when>
    <thetext>Ivan putting in needinfo and assigning to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106189</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2026-07-16 14:58:46 +0000</bug_when>
    <thetext>Also looking at the configure script there are two relevant options:

neon64           Use code optimized for AArch64 NEON SIMD engine
aarch64          Pack neon64 and generic[[_dither]] decoders, for 64bit ARM processors

Also a bit annoying that mpg123 makes this an option considering aarch64 mandates neon...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106199</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan Nestlerode">ivan.nestlerode</who>
    <bug_when>2026-07-16 15:44:53 +0000</bug_when>
    <thetext>&gt; That said I&apos;m also wondering if aarch64 should just add neon to the tune features,
&gt; because it _does_ have it.

I think that some people were opposed to doing this during the initial creation of aarch64 machine definitions:
https://www.mail-archive.com/openembedded-core@lists.openembedded.org/msg78377.html

Maybe what is needed is a more comprehensive recipe audit in openembedded-core and/or meta-openembedded for recipes that look for &quot;neon&quot; in TUNE_FEATURES to see if they correctly account for aarch64 or not. It is certainly a bit of a foot gun here for recipes that require custom configure options to turn on hand-written NEON assembly.

I will dust off my b4 setup and email this patch to the mailing list (or a modified version thereof from the feedback here).

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106310</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan Nestlerode">ivan.nestlerode</who>
    <bug_when>2026-07-23 15:19:35 +0000</bug_when>
    <thetext>I sent the patch to the mailing list:
https://lists.openembedded.org/g/openembedded-core/message/241576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106583</commentid>
    <comment_count>7</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2026-08-20 13:02:36 +0000</bug_when>
    <thetext>Patch merged: https://git.openembedded.org/openembedded-core/commit/?id=cec486b0f4c1853a97570b71baf69d575c68abc1</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5234</attachid>
            <date>2026-07-15 20:15:27 +0000</date>
            <delta_ts>2026-07-15 20:15:27 +0000</delta_ts>
            <desc>patch to fix lack of NEON usage on aarch64 in mpg123 recipe</desc>
            <filename>0001-mpg123-fix-lack-of-NEON-usage-on-aarch64.patch</filename>
            <type>text/plain</type>
            <size>1468</size>
            <attacher name="Ivan Nestlerode">ivan.nestlerode</attacher>
            
              <data encoding="base64">RnJvbSBlYjMxNTU4MGY0M2IxYTc2NTdlYmNjMDQ4Mjk2YTAzMjVjNTVjYWNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIE5lc3RsZXJvZGUgPGl2YW4ubmVzdGxlcm9kZUBzb25v
cy5jb20+CkRhdGU6IFdlZCwgMTUgSnVsIDIwMjYgMTY6MDc6NTggLTA0MDAKU3ViamVjdDogW1BB
VENIXSBtcGcxMjM6IGZpeCBsYWNrIG9mIE5FT04gdXNhZ2Ugb24gYWFyY2g2NAoKRml4ZXMgW1lP
Q1RPICMxNjM1OV0KCm1wZzEyMyBzdXBwb3J0cyBzcGVjaWZpYyAtLXdpdGgtY3B1PSBjb25maWd1
cmUgb3B0aW9ucyB0byB1c2UgTkVPTgppbnN0cnVjdGlvbnMsIGJ1dCB0aGlzIHJlY2lwZSB3YXMg
bm90IHVzaW5nIGFueSBvZiB0aGVzZSBvbiBhYXJjaDY0LgpUaGUgcHJvYmxlbSBpcyB0aGF0IGl0
IHdhcyBvbmx5IGtleWluZyBvZmYgb2Ygd2hldGhlciBUVU5FX0ZFQVRVUkVTCmNvbnRhaW5zICJu
ZW9uIi4gYWFyY2g2NCBuZXZlciBwdXRzICJuZW9uIiBpbnRvIFRVTkVfRkVBVFVSRVMgc28gaXQK
aGFzIHRvIGJlIGNoZWNrZWQgc2VwYXJhdGVseS4KClVzZSAtLXdpdGgtY3B1PW5lb242NCBvbiBh
YXJjaDY0LgotLS0KIG1ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL21wZzEyMy9tcGcxMjNfMS4zMy42
LmJiIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p
CgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbXBnMTIzL21wZzEyM18xLjMz
LjYuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9tcGcxMjMvbXBnMTIzXzEuMzMuNi5iYgpp
bmRleCBmMDdlNmRiY2QzLi43NGQ4YTIwMjczIDEwMDY0NAotLS0gYS9tZXRhL3JlY2lwZXMtbXVs
dGltZWRpYS9tcGcxMjMvbXBnMTIzXzEuMzMuNi5iYgorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGlt
ZWRpYS9tcGcxMjMvbXBnMTIzXzEuMzMuNi5iYgpAQCAtNDEsNyArNDEsNyBAQCBFWFRSQV9PRUNP
TkYgPSAiIFwKICAgICAtLWVuYWJsZS1zaGFyZWQgXAogICAgIC0tZW5hYmxlLWxhcmdlZmlsZSBc
CiAgICAgLS13aXRoLWF1ZGlvPScke0FVRElPTU9EU30nIFwKLSAgICAke0BiYi51dGlscy5jb250
YWlucygnVFVORV9GRUFUVVJFUycsICduZW9uJywgJy0td2l0aC1jcHU9bmVvbicsICcnLCBkKX0g
XAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2FhcmNoNjQnLCAn
LS13aXRoLWNwdT1uZW9uNjQnLCBiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdu
ZW9uJywgJy0td2l0aC1jcHU9bmVvbicsICcnLCBkKSwgZCl9IFwKICAgICAke0BiYi51dGlscy5j
b250YWlucygnVFVORV9GRUFUVVJFUycsICdhbHRpdmVjJywgJy0td2l0aC1jcHU9YWx0aXZlYycs
ICcnLCBkKX0gXAogICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUQVJHRVRfRlBVJywgJ3NvZnQn
LCAnLS13aXRoLWNwdT1nZW5lcmljX25vZnB1JywgJycsIGQpfSBcCiAiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>