[PATCH v1] perf loongarch: Fix discarded const qualifier in _get_field()

Tiezhu Yang posted 1 patch 10 hours ago
tools/perf/arch/loongarch/util/header.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v1] perf loongarch: Fix discarded const qualifier in _get_field()
Posted by Tiezhu Yang 10 hours ago
When building perf on LoongArch, the following compilation errors occur:

  CC      arch/loongarch/util/header.o
arch/loongarch/util/header.c: In function '_get_field':
arch/loongarch/util/header.c:31:15: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
   31 |         line2 = strrchr(line, ' ');
      |               ^
arch/loongarch/util/header.c:36:12: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
   36 |         nl = strrchr(line, '\n');
      |            ^
cc1: all warnings being treated as errors

Declare 'line2' and 'nl' as const char * to ensure type safety. In modern
glibc versions, strrchr() returns a 'const char *' if the input string is
const.

This is similar to commit 7378b6656aa4 ("perf riscv: Fix discarded const
qualifier in _get_field()").

Fixes: 492ac37fa38f ("perf kvm: Add kvm-stat for loongarch64")
Cc: stable@vger.kernel.org
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 tools/perf/arch/loongarch/util/header.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/arch/loongarch/util/header.c b/tools/perf/arch/loongarch/util/header.c
index 0c6d823334a2..46f53a74f71e 100644
--- a/tools/perf/arch/loongarch/util/header.c
+++ b/tools/perf/arch/loongarch/util/header.c
@@ -26,7 +26,7 @@
 
 static char *_get_field(const char *line)
 {
-	char *line2, *nl;
+	const char *line2, *nl;
 
 	line2 = strrchr(line, ' ');
 	if (!line2)
-- 
2.42.0
Re: [PATCH v1] perf loongarch: Fix discarded const qualifier in _get_field()
Posted by Namhyung Kim 7 hours ago
On Thu, Sep 24, 2026 at 10:17:56AM +0800, Tiezhu Yang wrote:
> When building perf on LoongArch, the following compilation errors occur:
> 
>   CC      arch/loongarch/util/header.o
> arch/loongarch/util/header.c: In function '_get_field':
> arch/loongarch/util/header.c:31:15: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
>    31 |         line2 = strrchr(line, ' ');
>       |               ^
> arch/loongarch/util/header.c:36:12: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
>    36 |         nl = strrchr(line, '\n');
>       |            ^
> cc1: all warnings being treated as errors
> 
> Declare 'line2' and 'nl' as const char * to ensure type safety. In modern
> glibc versions, strrchr() returns a 'const char *' if the input string is
> const.
> 
> This is similar to commit 7378b6656aa4 ("perf riscv: Fix discarded const
> qualifier in _get_field()").
> 
> Fixes: 492ac37fa38f ("perf kvm: Add kvm-stat for loongarch64")
> Cc: stable@vger.kernel.org
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> ---
>  tools/perf/arch/loongarch/util/header.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/arch/loongarch/util/header.c b/tools/perf/arch/loongarch/util/header.c
> index 0c6d823334a2..46f53a74f71e 100644
> --- a/tools/perf/arch/loongarch/util/header.c
> +++ b/tools/perf/arch/loongarch/util/header.c
> @@ -26,7 +26,7 @@
>  
>  static char *_get_field(const char *line)
>  {
> -	char *line2, *nl;
> +	const char *line2, *nl;
>  
>  	line2 = strrchr(line, ' ');
>  	if (!line2)
> -- 
> 2.42.0
>