2024-06-04 23:16:45

by Edward Liaw

[permalink] [raw]
Subject: [PATCH] selftests/timers: Guard LONG_MAX / LONG_MIN defines

Add ifndef guards around LONG_MAX / LONG_MIN defines. When building with
Android bionic, these macros are redefined because bionic's time.h will
include linux/time.h, which includes limit.h.

INFO: From Compiling common/tools/testing/selftests/timers/valid-adjtimex.c:
common/tools/testing/selftests/timers/valid-adjtimex.c:107:9: warning: 'LONG_MAX' macro redefined [-Wmacro-redefined]
107 | #define LONG_MAX (~0UL>>1)
| ^
prebuilts/clang/host/linux-x86/clang-r522817/lib/clang/18/include/limits.h:47:9: note: previous definition is here
47 | #define LONG_MAX __LONG_MAX__
| ^
common/tools/testing/selftests/timers/valid-adjtimex.c:108:9: warning: 'LONG_MIN' macro redefined [-Wmacro-redefined]
108 | #define LONG_MIN (-LONG_MAX - 1)
| ^
prebuilts/clang/host/linux-x86/clang-r522817/lib/clang/18/include/limits.h:52:9: note: previous definition is here
52 | #define LONG_MIN (-__LONG_MAX__ -1L)
| ^

Signed-off-by: Edward Liaw <[email protected]>
---
tools/testing/selftests/timers/valid-adjtimex.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/testing/selftests/timers/valid-adjtimex.c b/tools/testing/selftests/timers/valid-adjtimex.c
index d500884801d8..3d9f1baff86e 100644
--- a/tools/testing/selftests/timers/valid-adjtimex.c
+++ b/tools/testing/selftests/timers/valid-adjtimex.c
@@ -102,8 +102,12 @@ long outofrange_freq[NUM_FREQ_OUTOFRANGE] = {
1000 * SHIFTED_PPM,
};

+#ifndef LONG_MAX
#define LONG_MAX (~0UL>>1)
+#endif
+#ifndef LONG_MIN
#define LONG_MIN (-LONG_MAX - 1)
+#endif

long invalid_freq[NUM_FREQ_INVALID] = {
LONG_MAX,
--
2.45.1.288.g0e0cd299f1-goog



2024-06-05 06:27:19

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [PATCH] selftests/timers: Guard LONG_MAX / LONG_MIN defines

On Tue, Jun 04, 2024 at 11:12:18PM +0000, Edward Liaw wrote:
> Add ifndef guards around LONG_MAX / LONG_MIN defines. When building with
> Android bionic, these macros are redefined because bionic's time.h will
> include linux/time.h, which includes limit.h.
>
> INFO: From Compiling common/tools/testing/selftests/timers/valid-adjtimex.c:
> common/tools/testing/selftests/timers/valid-adjtimex.c:107:9: warning: 'LONG_MAX' macro redefined [-Wmacro-redefined]
> 107 | #define LONG_MAX (~0UL>>1)
> | ^
> prebuilts/clang/host/linux-x86/clang-r522817/lib/clang/18/include/limits.h:47:9: note: previous definition is here
> 47 | #define LONG_MAX __LONG_MAX__
> | ^
> common/tools/testing/selftests/timers/valid-adjtimex.c:108:9: warning: 'LONG_MIN' macro redefined [-Wmacro-redefined]
> 108 | #define LONG_MIN (-LONG_MAX - 1)
> | ^
> prebuilts/clang/host/linux-x86/clang-r522817/lib/clang/18/include/limits.h:52:9: note: previous definition is here
> 52 | #define LONG_MIN (-__LONG_MAX__ -1L)
> | ^
>
> Signed-off-by: Edward Liaw <[email protected]>

Reviewed-by: Nathan Chancellor <[email protected]>

> ---
> tools/testing/selftests/timers/valid-adjtimex.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tools/testing/selftests/timers/valid-adjtimex.c b/tools/testing/selftests/timers/valid-adjtimex.c
> index d500884801d8..3d9f1baff86e 100644
> --- a/tools/testing/selftests/timers/valid-adjtimex.c
> +++ b/tools/testing/selftests/timers/valid-adjtimex.c
> @@ -102,8 +102,12 @@ long outofrange_freq[NUM_FREQ_OUTOFRANGE] = {
> 1000 * SHIFTED_PPM,
> };
>
> +#ifndef LONG_MAX
> #define LONG_MAX (~0UL>>1)
> +#endif
> +#ifndef LONG_MIN
> #define LONG_MIN (-LONG_MAX - 1)
> +#endif
>
> long invalid_freq[NUM_FREQ_INVALID] = {
> LONG_MAX,
> --
> 2.45.1.288.g0e0cd299f1-goog
>