[PATCH] util: fix build with musl libc on ppc64le

Natanael Copa posted 1 patch 11 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20231219105236.7059-1-ncopa@alpinelinux.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>
util/cpuinfo-ppc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH] util: fix build with musl libc on ppc64le
Posted by Natanael Copa 11 months, 1 week ago
Use PPC_FEATURE2_ISEL and PPC_FEATURE2_VEC_CRYPTO from linux headers
instead of the GNU specific PPC_FEATURE2_HAS_ISEL and
PPC_FEATURE2_HAS_VEC_CRYPTO. This fixes build with musl libc.

Fixes: 623d7e3551a6 (util: Add cpuinfo-ppc.c)
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1861

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
 util/cpuinfo-ppc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/util/cpuinfo-ppc.c b/util/cpuinfo-ppc.c
index 1ea3db0ac8..b2d8893a06 100644
--- a/util/cpuinfo-ppc.c
+++ b/util/cpuinfo-ppc.c
@@ -6,10 +6,10 @@
 #include "qemu/osdep.h"
 #include "host/cpuinfo.h"
 
+#include <asm/cputable.h>
 #ifdef CONFIG_GETAUXVAL
 # include <sys/auxv.h>
 #else
-# include <asm/cputable.h>
 # include "elf.h"
 #endif
 
@@ -40,7 +40,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
         info |= CPUINFO_V2_06;
     }
 
-    if (hwcap2 & PPC_FEATURE2_HAS_ISEL) {
+    if (hwcap2 & PPC_FEATURE2_ISEL) {
         info |= CPUINFO_ISEL;
     }
     if (hwcap & PPC_FEATURE_HAS_ALTIVEC) {
@@ -53,7 +53,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
              * always have both anyway, since VSX came with Power7
              * and crypto came with Power8.
              */
-            if (hwcap2 & PPC_FEATURE2_HAS_VEC_CRYPTO) {
+            if (hwcap2 & PPC_FEATURE2_VEC_CRYPTO) {
                 info |= CPUINFO_CRYPTO;
             }
         }
-- 
2.43.0
Re: [PATCH] util: fix build with musl libc on ppc64le
Posted by Philippe Mathieu-Daudé 10 months, 3 weeks ago
Hi Natanael,

On 19/12/23 11:51, Natanael Copa wrote:
> Use PPC_FEATURE2_ISEL and PPC_FEATURE2_VEC_CRYPTO from linux headers
> instead of the GNU specific PPC_FEATURE2_HAS_ISEL and
> PPC_FEATURE2_HAS_VEC_CRYPTO. This fixes build with musl libc.
> 
> Fixes: 623d7e3551a6 (util: Add cpuinfo-ppc.c)

Hmm this commit barely moved the code. Maybe it revealed the
issue from the following commits?

Fixes: 63922f467a ("tcg/ppc: Replace HAVE_ISEL macro with a variable")
Fixes: 68f340d4cd ("tcg/ppc: Enable Altivec detection")

Anyhow, changes LGTM.

> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1861
> 
> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
> ---
>   util/cpuinfo-ppc.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/util/cpuinfo-ppc.c b/util/cpuinfo-ppc.c
> index 1ea3db0ac8..b2d8893a06 100644
> --- a/util/cpuinfo-ppc.c
> +++ b/util/cpuinfo-ppc.c
> @@ -6,10 +6,10 @@
>   #include "qemu/osdep.h"
>   #include "host/cpuinfo.h"
>   
> +#include <asm/cputable.h>
>   #ifdef CONFIG_GETAUXVAL
>   # include <sys/auxv.h>
>   #else
> -# include <asm/cputable.h>
>   # include "elf.h"
>   #endif
>   
> @@ -40,7 +40,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
>           info |= CPUINFO_V2_06;
>       }
>   
> -    if (hwcap2 & PPC_FEATURE2_HAS_ISEL) {
> +    if (hwcap2 & PPC_FEATURE2_ISEL) {
>           info |= CPUINFO_ISEL;
>       }
>       if (hwcap & PPC_FEATURE_HAS_ALTIVEC) {
> @@ -53,7 +53,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
>                * always have both anyway, since VSX came with Power7
>                * and crypto came with Power8.
>                */
> -            if (hwcap2 & PPC_FEATURE2_HAS_VEC_CRYPTO) {
> +            if (hwcap2 & PPC_FEATURE2_VEC_CRYPTO) {
>                   info |= CPUINFO_CRYPTO;
>               }
>           }
Re: [PATCH] util: fix build with musl libc on ppc64le
Posted by Richard Henderson 10 months, 3 weeks ago
On 1/5/24 03:26, Philippe Mathieu-Daudé wrote:
> Hi Natanael,
> 
> On 19/12/23 11:51, Natanael Copa wrote:
>> Use PPC_FEATURE2_ISEL and PPC_FEATURE2_VEC_CRYPTO from linux headers
>> instead of the GNU specific PPC_FEATURE2_HAS_ISEL and
>> PPC_FEATURE2_HAS_VEC_CRYPTO. This fixes build with musl libc.
>>
>> Fixes: 623d7e3551a6 (util: Add cpuinfo-ppc.c)
> 
> Hmm this commit barely moved the code. Maybe it revealed the
> issue from the following commits?
> 
> Fixes: 63922f467a ("tcg/ppc: Replace HAVE_ISEL macro with a variable")
> Fixes: 68f340d4cd ("tcg/ppc: Enable Altivec detection")
> 
> Anyhow, changes LGTM.


Queued, thanks.


r~