[PATCH] tools/perf/arch/powerpc/util: Fix is_compat_mode build break in ppc64

Athira Rajeev atrajeev at linux.ibm.com
Sat Mar 22 19:05:52 AEDT 2025



> On 21 Mar 2025, at 3:37 PM, Likhitha Korrapati <likhitha at linux.ibm.com> wrote:
> 
> Commit 54f9aa1092457 ("tools/perf/powerpc/util: Add support to
> handle compatible mode PVR for perf json events") introduced
> to select proper JSON events in case of compat mode using
> auxiliary vector. But this caused a compilation error in ppc64
> Big Endian.
> 
> arch/powerpc/util/header.c: In function 'is_compat_mode':
> arch/powerpc/util/header.c:20:21: error: cast to pointer from
> integer of different size [-Werror=int-to-pointer-cast]
>   20 |         if (!strcmp((char *)platform, (char *)base_platform))
>      |                     ^
> arch/powerpc/util/header.c:20:39: error: cast to pointer from
> integer of different size [-Werror=int-to-pointer-cast]
>   20 |         if (!strcmp((char *)platform, (char *)base_platform))
>      |
> 
> Commit saved the getauxval(AT_BASE_PLATFORM) and getauxval(AT_PLATFORM)
> return values in u64 which causes the compilation error.
> 
> Patch fixes this issue by changing u64 to "unsigned long".
> 
> Fixes: 54f9aa1092457 ("tools/perf/powerpc/util: Add support to handle compatible mode PVR for perf json events")
> Signed-off-by: Likhitha Korrapati <likhitha at linux.ibm.com>

Hi Likhitha,
Thanks for the fix. 

Reviewed-by: Athira Rajeev <atrajeev at linux.ibm.com>

Thanks
Athira
> ---
> tools/perf/arch/powerpc/util/header.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c
> index c7df534dbf8f..0be74f048f96 100644
> --- a/tools/perf/arch/powerpc/util/header.c
> +++ b/tools/perf/arch/powerpc/util/header.c
> @@ -14,8 +14,8 @@
> 
> static bool is_compat_mode(void)
> {
> - u64 base_platform = getauxval(AT_BASE_PLATFORM);
> - u64 platform = getauxval(AT_PLATFORM);
> + unsigned long base_platform = getauxval(AT_BASE_PLATFORM);
> + unsigned long platform = getauxval(AT_PLATFORM);
> 
> if (!strcmp((char *)platform, (char *)base_platform))
> return false;
> -- 
> 2.43.5
> 



More information about the Linuxppc-dev mailing list