2024-04-09 06:27:14

by Adrian Hunter

[permalink] [raw]
Subject: [PATCH] vdso: Fix powerpc build U64_MAX undeclared error

U64_MAX is not in include/vdso/limits.h, although that isn't noticed on x86
because x86 includes include/linux/limits.h indirectly. However powerpc
is more selective, resulting in the following build error:

In file included from <command-line>:
lib/vdso/gettimeofday.c: In function 'vdso_calc_ns':
lib/vdso/gettimeofday.c:11:33: error: 'U64_MAX' undeclared
11 | # define VDSO_DELTA_MASK(vd) U64_MAX
| ^~~~~~~

Use ULLONG_MAX instead which will work just as well and is in
include/vdso/limits.h.

Reported-by: Stephen Rothwell <[email protected]>
Closes: https://lore.kernel.org/all/[email protected]/
Fixes: c8e3a8b6f2e6 ("vdso: Consolidate vdso_calc_delta()")
Signed-off-by: Adrian Hunter <[email protected]>
---
lib/vdso/gettimeofday.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c
index 9c3a8d2440c9..899850bd6f0b 100644
--- a/lib/vdso/gettimeofday.c
+++ b/lib/vdso/gettimeofday.c
@@ -8,7 +8,7 @@
#ifndef vdso_calc_ns

#ifdef VDSO_DELTA_NOMASK
-# define VDSO_DELTA_MASK(vd) U64_MAX
+# define VDSO_DELTA_MASK(vd) ULLONG_MAX
#else
# define VDSO_DELTA_MASK(vd) (vd->mask)
#endif
--
2.34.1



Subject: [tip: timers/core] vdso: Fix powerpc build U64_MAX undeclared error

The following commit has been merged into the timers/core branch of tip:

Commit-ID: 8ff1e6c5aca5fd908e81c33c460c45f9555e1c22
Gitweb: https://git.kernel.org/tip/8ff1e6c5aca5fd908e81c33c460c45f9555e1c22
Author: Adrian Hunter <[email protected]>
AuthorDate: Tue, 09 Apr 2024 09:26:39 +03:00
Committer: Thomas Gleixner <[email protected]>
CommitterDate: Tue, 09 Apr 2024 12:35:19 +02:00

vdso: Fix powerpc build U64_MAX undeclared error

U64_MAX is not in include/vdso/limits.h, although that isn't noticed on x86
because x86 includes include/linux/limits.h indirectly. However powerpc is
more selective, resulting in the following build error:

In file included from <command-line>:
lib/vdso/gettimeofday.c: In function 'vdso_calc_ns':
lib/vdso/gettimeofday.c:11:33: error: 'U64_MAX' undeclared
11 | # define VDSO_DELTA_MASK(vd) U64_MAX
| ^~~~~~~

Use ULLONG_MAX instead which will work just as well and is in
include/vdso/limits.h.

Fixes: c8e3a8b6f2e6 ("vdso: Consolidate vdso_calc_delta()")
Reported-by: Stephen Rothwell <[email protected]>
Signed-off-by: Adrian Hunter <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Closes: https://lore.kernel.org/all/[email protected]/
---
lib/vdso/gettimeofday.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c
index 9c3a8d2..899850b 100644
--- a/lib/vdso/gettimeofday.c
+++ b/lib/vdso/gettimeofday.c
@@ -8,7 +8,7 @@
#ifndef vdso_calc_ns

#ifdef VDSO_DELTA_NOMASK
-# define VDSO_DELTA_MASK(vd) U64_MAX
+# define VDSO_DELTA_MASK(vd) ULLONG_MAX
#else
# define VDSO_DELTA_MASK(vd) (vd->mask)
#endif

2024-04-10 03:01:04

by Stephen Rothwell

[permalink] [raw]
Subject: Re: [PATCH] vdso: Fix powerpc build U64_MAX undeclared error

Hi Adrian,

On Tue, 9 Apr 2024 09:26:39 +0300 Adrian Hunter <[email protected]> wrote:
>
> U64_MAX is not in include/vdso/limits.h, although that isn't noticed on x86
> because x86 includes include/linux/limits.h indirectly. However powerpc
> is more selective, resulting in the following build error:
>
> In file included from <command-line>:
> lib/vdso/gettimeofday.c: In function 'vdso_calc_ns':
> lib/vdso/gettimeofday.c:11:33: error: 'U64_MAX' undeclared
> 11 | # define VDSO_DELTA_MASK(vd) U64_MAX
> | ^~~~~~~
>
> Use ULLONG_MAX instead which will work just as well and is in
> include/vdso/limits.h.
>
> Reported-by: Stephen Rothwell <[email protected]>
> Closes: https://lore.kernel.org/all/[email protected]/
> Fixes: c8e3a8b6f2e6 ("vdso: Consolidate vdso_calc_delta()")
> Signed-off-by: Adrian Hunter <[email protected]>
> ---
> lib/vdso/gettimeofday.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c
> index 9c3a8d2440c9..899850bd6f0b 100644
> --- a/lib/vdso/gettimeofday.c
> +++ b/lib/vdso/gettimeofday.c
> @@ -8,7 +8,7 @@
> #ifndef vdso_calc_ns
>
> #ifdef VDSO_DELTA_NOMASK
> -# define VDSO_DELTA_MASK(vd) U64_MAX
> +# define VDSO_DELTA_MASK(vd) ULLONG_MAX
> #else
> # define VDSO_DELTA_MASK(vd) (vd->mask)
> #endif
> --
> 2.34.1
>

I have applied that to linux-next today and it builds for me.

Tested-by: Stephen Rothwell <[email protected]> # build only

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2024-04-09 17:07:54

by John Stultz

[permalink] [raw]
Subject: Re: [PATCH] vdso: Fix powerpc build U64_MAX undeclared error

On Mon, Apr 8, 2024 at 11:27 PM Adrian Hunter <[email protected]> wrote:
>
> U64_MAX is not in include/vdso/limits.h, although that isn't noticed on x86
> because x86 includes include/linux/limits.h indirectly. However powerpc
> is more selective, resulting in the following build error:
>
> In file included from <command-line>:
> lib/vdso/gettimeofday.c: In function 'vdso_calc_ns':
> lib/vdso/gettimeofday.c:11:33: error: 'U64_MAX' undeclared
> 11 | # define VDSO_DELTA_MASK(vd) U64_MAX
> | ^~~~~~~
>
> Use ULLONG_MAX instead which will work just as well and is in
> include/vdso/limits.h.
>
> Reported-by: Stephen Rothwell <[email protected]>
> Closes: https://lore.kernel.org/all/[email protected]/
> Fixes: c8e3a8b6f2e6 ("vdso: Consolidate vdso_calc_delta()")
> Signed-off-by: Adrian Hunter <[email protected]>

Acked-by: John Stultz <[email protected]>