Message ID | 20250226-parse_vdso-nolibc-v2-13-28e14e031ed8@linutronix.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | selftests: vDSO: parse_vdso: Make compatible with nolibc | expand |
On 26/02/2025 11:44, Thomas Weißschuh wrote: > According to limits.h(2) ULONG_MAX is only guaranteed to expand to an > expression, not a symbolic constant which can be evaluated by the > preprocessor. > Specifically the definition of ULONG_MAX from nolibc can no be evaluated > by the preprocessor. To provide compatibility with nolibc, check with > __SIZEOF_LONG__ instead, with is provided directly by the preprocessor > and therefore always a symbolic constant. > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > --- > tools/testing/selftests/vDSO/parse_vdso.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/vDSO/parse_vdso.c b/tools/testing/selftests/vDSO/parse_vdso.c > index 200c534cc70e2c2381fce3be5c0ebe4cb5675e84..902b8f9984a1f70049d46bcd4f199df24f507dcb 100644 > --- a/tools/testing/selftests/vDSO/parse_vdso.c > +++ b/tools/testing/selftests/vDSO/parse_vdso.c > @@ -26,7 +26,7 @@ > > /* And here's the code. */ > #ifndef ELF_BITS > -# if ULONG_MAX > 0xffffffffUL > +# if __SIZEOF_LONG__ >= 8 > # define ELF_BITS 64 > # else > # define ELF_BITS 32 >
diff --git a/tools/testing/selftests/vDSO/parse_vdso.c b/tools/testing/selftests/vDSO/parse_vdso.c index 200c534cc70e2c2381fce3be5c0ebe4cb5675e84..902b8f9984a1f70049d46bcd4f199df24f507dcb 100644 --- a/tools/testing/selftests/vDSO/parse_vdso.c +++ b/tools/testing/selftests/vDSO/parse_vdso.c @@ -26,7 +26,7 @@ /* And here's the code. */ #ifndef ELF_BITS -# if ULONG_MAX > 0xffffffffUL +# if __SIZEOF_LONG__ >= 8 # define ELF_BITS 64 # else # define ELF_BITS 32
According to limits.h(2) ULONG_MAX is only guaranteed to expand to an expression, not a symbolic constant which can be evaluated by the preprocessor. Specifically the definition of ULONG_MAX from nolibc can no be evaluated by the preprocessor. To provide compatibility with nolibc, check with __SIZEOF_LONG__ instead, with is provided directly by the preprocessor and therefore always a symbolic constant. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> --- tools/testing/selftests/vDSO/parse_vdso.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)