[PATCH] tools/power turbostat: Fix build with musl

Calvin Owens posted 1 patch 3 months, 4 weeks ago
tools/power/x86/turbostat/turbostat.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] tools/power turbostat: Fix build with musl
Posted by Calvin Owens 3 months, 4 weeks ago
    turbostat.c: In function 'parse_int_file':
    turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use in this function)
     5567 |         char path[PATH_MAX];
          |                   ^~~~~~~~

    turbostat.c: In function 'probe_graphics':
    turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use in this function)
     6787 |         char path[PATH_MAX];
          |                   ^~~~~~~~

Signed-off-by: Calvin Owens <calvin@wbinvd.org>
---
 tools/power/x86/turbostat/turbostat.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 0170d3cc6819..925556b90770 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -67,6 +67,7 @@
 #include <stdbool.h>
 #include <assert.h>
 #include <linux/kernel.h>
+#include <limits.h>
 
 #define UNUSED(x) (void)(x)
 
-- 
2.47.2
Re: [PATCH] tools/power turbostat: Fix build with musl
Posted by Artem Bityutskiy 3 months, 4 weeks ago
On Fri, 2025-06-13 at 09:54 -0700, Calvin Owens wrote:
>     turbostat.c: In function 'parse_int_file':
>     turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use in this function)
>      5567 |         char path[PATH_MAX];
>           |                   ^~~~~~~~
> 
>     turbostat.c: In function 'probe_graphics':
>     turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use in this function)
>      6787 |         char path[PATH_MAX];
>           |                   ^~~~~~~~
> 
> Signed-off-by: Calvin Owens <calvin@wbinvd.org>
Reviewed-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Re: [PATCH] tools/power turbostat: Fix build with musl
Posted by Zhang, Rui 3 months, 3 weeks ago
On Fri, 2025-06-13 at 20:45 +0300, Artem Bityutskiy wrote:
> On Fri, 2025-06-13 at 09:54 -0700, Calvin Owens wrote:
> >     turbostat.c: In function 'parse_int_file':
> >     turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use in
> > this function)
> >      5567 |         char path[PATH_MAX];
> >           |                   ^~~~~~~~
> > 
> >     turbostat.c: In function 'probe_graphics':
> >     turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use in
> > this function)
> >      6787 |         char path[PATH_MAX];
> >           |                   ^~~~~~~~
> > 
> > Signed-off-by: Calvin Owens <calvin@wbinvd.org>
> Reviewed-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> 
May I know how to reproduce this?

-rui
Re: [PATCH] tools/power turbostat: Fix build with musl
Posted by Calvin Owens 3 months, 3 weeks ago
On Monday 06/16 at 01:31 +0000, Zhang, Rui wrote:
> On Fri, 2025-06-13 at 20:45 +0300, Artem Bityutskiy wrote:
> > On Fri, 2025-06-13 at 09:54 -0700, Calvin Owens wrote:
> > >     turbostat.c: In function 'parse_int_file':
> > >     turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use in
> > > this function)
> > >      5567 |         char path[PATH_MAX];
> > >           |                   ^~~~~~~~
> > > 
> > >     turbostat.c: In function 'probe_graphics':
> > >     turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use in
> > > this function)
> > >      6787 |         char path[PATH_MAX];
> > >           |                   ^~~~~~~~
> > > 
> > > Signed-off-by: Calvin Owens <calvin@wbinvd.org>
> > Reviewed-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> > 
> May I know how to reproduce this?

Hi Rui,

Just build turbostat with musl as libc, here's a quick chroot repro that
works on my Debian laptop:

    wget https://gentoo.osuosl.org/releases/amd64/autobuilds/current-stage3-amd64-musl/stage3-amd64-musl-20250601T163943Z.tar.xz
    mkdir tmp
    sudo tar xf stage3-amd64-musl-20250601T163943Z.tar.xz -C ./tmp
    wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.15.2.tar.xz
    sudo mv linux-6.15.2.tar.xz tmp
    sudo chroot tmp /bin/bash
    gentoo / # tar xf linux-6.15.2.tar.xz
    gentoo / # cd linux-6.15.2/tools/power/x86/turbostat/
    gentoo /linux-6.15.2/tools/power/x86/turbostat # make
    gcc -O2 -Wall -Wextra -I../../../include -DMSRHEADER='"../../../../arch/x86/include/asm/msr-index.h"' -DINTEL_FAMILY_HEADER='"../../../../arch/x86/include/asm/intel-family.h"' -DBUILD_BUG_HEADER='"../../../../include/linux/build_bug.h"' -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 turbostat.c -o /root/linux-6.15.2/tools/power/x86/turbostat/turbostat  -lcap -lrt
    turbostat.c: In function 'parse_int_file':
    turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use in this function)
     5567 |         char path[PATH_MAX];
          |                   ^~~~~~~~
    turbostat.c:5567:19: note: each undeclared identifier is reported only once for each function it appears in
    turbostat.c:5567:14: warning: unused variable 'path' [-Wunused-variable]
     5567 |         char path[PATH_MAX];
          |              ^~~~
    turbostat.c: In function 'probe_graphics':
    turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use in this function)
     6787 |         char path[PATH_MAX];
          |                   ^~~~~~~~
    turbostat.c:6787:14: warning: unused variable 'path' [-Wunused-variable]
     6787 |         char path[PATH_MAX];
          |              ^~~~
    make: *** [Makefile:23: turbostat] Error 1

Thanks,
Calvin
Re: [PATCH] tools/power turbostat: Fix build with musl
Posted by Zhang, Rui 3 months, 3 weeks ago
On Sun, 2025-06-15 at 20:47 -0700, Calvin Owens wrote:
> On Monday 06/16 at 01:31 +0000, Zhang, Rui wrote:
> > On Fri, 2025-06-13 at 20:45 +0300, Artem Bityutskiy wrote:
> > > On Fri, 2025-06-13 at 09:54 -0700, Calvin Owens wrote:
> > > >     turbostat.c: In function 'parse_int_file':
> > > >     turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use
> > > > in
> > > > this function)
> > > >      5567 |         char path[PATH_MAX];
> > > >           |                   ^~~~~~~~
> > > > 
> > > >     turbostat.c: In function 'probe_graphics':
> > > >     turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use
> > > > in
> > > > this function)
> > > >      6787 |         char path[PATH_MAX];
> > > >           |                   ^~~~~~~~
> > > > 
> > > > Signed-off-by: Calvin Owens <calvin@wbinvd.org>
> > > Reviewed-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> > > 
> > May I know how to reproduce this?
> 
> Hi Rui,
> 
> Just build turbostat with musl as libc, here's a quick chroot repro
> that
> works on my Debian laptop:

Thanks for the clarification.
I have no objection if that is the case.

thanks,
rui
> 
>     wget
> https://gentoo.osuosl.org/releases/amd64/autobuilds/current-stage3-amd64-musl/stage3-amd64-musl-20250601T163943Z.tar.xz
>     mkdir tmp
>     sudo tar xf stage3-amd64-musl-20250601T163943Z.tar.xz -C ./tmp
>     wget
> https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.15.2.tar.xz
>     sudo mv linux-6.15.2.tar.xz tmp
>     sudo chroot tmp /bin/bash
>     gentoo / # tar xf linux-6.15.2.tar.xz
>     gentoo / # cd linux-6.15.2/tools/power/x86/turbostat/
>     gentoo /linux-6.15.2/tools/power/x86/turbostat # make
>     gcc -O2 -Wall -Wextra -I../../../include -
> DMSRHEADER='"../../../../arch/x86/include/asm/msr-index.h"' -
> DINTEL_FAMILY_HEADER='"../../../../arch/x86/include/asm/intel-
> family.h"' -DBUILD_BUG_HEADER='"../../../../include/linux/build_bug.h"'
> -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 turbostat.c -o /root/linux-
> 6.15.2/tools/power/x86/turbostat/turbostat  -lcap -lrt
>     turbostat.c: In function 'parse_int_file':
>     turbostat.c:5567:19: error: 'PATH_MAX' undeclared (first use in
> this function)
>      5567 |         char path[PATH_MAX];
>           |                   ^~~~~~~~
>     turbostat.c:5567:19: note: each undeclared identifier is reported
> only once for each function it appears in
>     turbostat.c:5567:14: warning: unused variable 'path' [-Wunused-
> variable]
>      5567 |         char path[PATH_MAX];
>           |              ^~~~
>     turbostat.c: In function 'probe_graphics':
>     turbostat.c:6787:19: error: 'PATH_MAX' undeclared (first use in
> this function)
>      6787 |         char path[PATH_MAX];
>           |                   ^~~~~~~~
>     turbostat.c:6787:14: warning: unused variable 'path' [-Wunused-
> variable]
>      6787 |         char path[PATH_MAX];
>           |              ^~~~
>     make: *** [Makefile:23: turbostat] Error 1
> 
> Thanks,
> Calvin

Re: [PATCH] tools/power turbostat: Fix build with musl
Posted by Len Brown 3 months, 3 weeks ago
Applied.

thanks!
-Len