[PATCH] selftests/timers: Guard LONG_MAX / LONG_MIN defines

Edward Liaw posted 1 patch 11 months, 1 week ago
tools/testing/selftests/timers/valid-adjtimex.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] selftests/timers: Guard LONG_MAX / LONG_MIN defines
Posted by Edward Liaw 11 months, 1 week ago
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 <edliaw@google.com>
---
 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
Re: [PATCH] selftests/timers: Guard LONG_MAX / LONG_MIN defines
Posted by Nathan Chancellor 11 months, 1 week ago
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 <edliaw@google.com>

Reviewed-by: Nathan Chancellor <nathan@kernel.org>

> ---
>  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
>