2020-06-18 00:00:26

by Markus Mayer

[permalink] [raw]
Subject: [PATCH] tools/thermal: tmon: include pthread and time headers in tmon.h

Include sys/time.h and pthread.h in tmon.h, so that types
"pthread_mutex_t" and "struct timeval tv" are known when tmon.h
references them.

Without these headers, compiling tmon against musl-libc will fail with
these errors:

In file included from sysfs.c:31:0:
tmon.h:47:8: error: unknown type name 'pthread_mutex_t'
extern pthread_mutex_t input_lock;
^~~~~~~~~~~~~~~
make[3]: *** [<builtin>: sysfs.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from tui.c:31:0:
tmon.h:54:17: error: field 'tv' has incomplete type
struct timeval tv;
^~
make[3]: *** [<builtin>: tui.o] Error 1
make[2]: *** [Makefile:83: tmon] Error 2

Signed-off-by: Markus Mayer <[email protected]>
---

The issue was discovered cross-compiling tmon for aarch64 with musl-libc.
The build succeeds with glibc, because the required headers are included
implicitly. This is not the case with musl-libc.

tools/thermal/tmon/tmon.h | 3 +++
1 file changed, 3 insertions(+)

diff --git a/tools/thermal/tmon/tmon.h b/tools/thermal/tmon/tmon.h
index c9066ec104dd..44d16d778f04 100644
--- a/tools/thermal/tmon/tmon.h
+++ b/tools/thermal/tmon/tmon.h
@@ -27,6 +27,9 @@
#define NR_LINES_TZDATA 1
#define TMON_LOG_FILE "/var/tmp/tmon.log"

+#include <sys/time.h>
+#include <pthread.h>
+
extern unsigned long ticktime;
extern double time_elapsed;
extern unsigned long target_temp_user;
--
2.17.1


2020-06-18 02:55:02

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] tools/thermal: tmon: include pthread and time headers in tmon.h



On 6/17/2020 4:58 PM, Markus Mayer wrote:
> Include sys/time.h and pthread.h in tmon.h, so that types
> "pthread_mutex_t" and "struct timeval tv" are known when tmon.h
> references them.
>
> Without these headers, compiling tmon against musl-libc will fail with
> these errors:
>
> In file included from sysfs.c:31:0:
> tmon.h:47:8: error: unknown type name 'pthread_mutex_t'
> extern pthread_mutex_t input_lock;
> ^~~~~~~~~~~~~~~
> make[3]: *** [<builtin>: sysfs.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> In file included from tui.c:31:0:
> tmon.h:54:17: error: field 'tv' has incomplete type
> struct timeval tv;
> ^~
> make[3]: *** [<builtin>: tui.o] Error 1
> make[2]: *** [Makefile:83: tmon] Error 2
>
> Signed-off-by: Markus Mayer <[email protected]>

Acked-by: Florian Fainelli <[email protected]>
--
Florian

2020-06-23 17:20:50

by Sumeet Pawnikar

[permalink] [raw]
Subject: RE: [PATCH] tools/thermal: tmon: include pthread and time headers in tmon.h

> -----Original Message-----
> From: Florian Fainelli <[email protected]>
> Sent: Thursday, June 18, 2020 8:23 AM
> To: Markus Mayer <[email protected]>; Daniel Lezcano
> <[email protected]>; Pawnikar, Sumeet R
> <[email protected]>; Zhang, Rui <[email protected]>; Brian
> Norris <[email protected]>
> Cc: Broadcom Kernel List <[email protected]>; Linux
> Kernel Mailing List <[email protected]>
> Subject: Re: [PATCH] tools/thermal: tmon: include pthread and time headers
> in tmon.h
>
>
>
> On 6/17/2020 4:58 PM, Markus Mayer wrote:
> > Include sys/time.h and pthread.h in tmon.h, so that types
> > "pthread_mutex_t" and "struct timeval tv" are known when tmon.h
> > references them.
> >
> > Without these headers, compiling tmon against musl-libc will fail with
> > these errors:
> >
> > In file included from sysfs.c:31:0:
> > tmon.h:47:8: error: unknown type name 'pthread_mutex_t'
> > extern pthread_mutex_t input_lock;
> > ^~~~~~~~~~~~~~~
> > make[3]: *** [<builtin>: sysfs.o] Error 1
> > make[3]: *** Waiting for unfinished jobs....
> > In file included from tui.c:31:0:
> > tmon.h:54:17: error: field 'tv' has incomplete type
> > struct timeval tv;
> > ^~
> > make[3]: *** [<builtin>: tui.o] Error 1
> > make[2]: *** [Makefile:83: tmon] Error 2
> >
> > Signed-off-by: Markus Mayer <[email protected]>
>
> Acked-by: Florian Fainelli <[email protected]>
> --
> Florian

Reviewed-by: Sumeet Pawnikar <[email protected]>

Thanks,
Sumeet.

2020-08-09 13:01:07

by Alejandro González

[permalink] [raw]
Subject: RE: [PATCH] tools/thermal: tmon: include pthread and time headers in tmon.h

> > -----Original Message-----
> > From: Florian Fainelli <[email protected]>
> > Sent: Thursday, June 18, 2020 8:23 AM
> > To: Markus Mayer <[email protected]>; Daniel Lezcano
> > <[email protected]>; Pawnikar, Sumeet R
> > <[email protected]>; Zhang, Rui <[email protected]>; Brian
> > Norris <[email protected]>
> > Cc: Broadcom Kernel List <[email protected]>; Linux
> > Kernel Mailing List <[email protected]>
> > Subject: Re: [PATCH] tools/thermal: tmon: include pthread and time headers
> > in tmon.h
> >
> >
> >
> > On 6/17/2020 4:58 PM, Markus Mayer wrote:
> > > Include sys/time.h and pthread.h in tmon.h, so that types
> > > "pthread_mutex_t" and "struct timeval tv" are known when tmon.h
> > > references them.
> > >
> > > Without these headers, compiling tmon against musl-libc will fail with
> > > these errors:
> > >
> > > In file included from sysfs.c:31:0:
> > > tmon.h:47:8: error: unknown type name 'pthread_mutex_t'
> > > extern pthread_mutex_t input_lock;
> > > ^~~~~~~~~~~~~~~
> > > make[3]: *** [<builtin>: sysfs.o] Error 1
> > > make[3]: *** Waiting for unfinished jobs....
> > > In file included from tui.c:31:0:
> > > tmon.h:54:17: error: field 'tv' has incomplete type
> > > struct timeval tv;
> > > ^~
> > > make[3]: *** [<builtin>: tui.o] Error 1
> > > make[2]: *** [Makefile:83: tmon] Error 2
> > >
> > > Signed-off-by: Markus Mayer <[email protected]>
> >
> > Acked-by: Florian Fainelli <[email protected]>
> > --
> > Florian
>
> Reviewed-by: Sumeet Pawnikar <[email protected]>
>
> Thanks,
> Sumeet.

I've tested this patch with musl-libc for the same arch. It works like a charm.

Acked-by: Alejandro González <[email protected]>
Tested-by: Alejandro González <[email protected]>