From 841d0729883ee0de606de161c1d6a5c37cedf575 Mon Sep 17 00:00:00 2001 From: Dmitry Chestnykh Date: Sun, 28 Jul 2024 14:52:24 +0300 Subject: Group conditions after `&&` If the conditions are not grouped we can reach this block even if `__NR_stat` is not defined. `defined __NR_stat && ((!defined(__UCLIBC_USE_TIME64__) || defined(__sparc__))` gives us false but `LINUX_VERSION_CODE <= KERNEL_VERSION(5,1,0))` may give us true. So if linux headers version is below 5.1.0 and __NR_stat is not defined we can have compilation error Signed-off-by: Dmitry Chestnykh --- ldso/include/dl-syscall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h index 9ec0eac60..180d03012 100644 --- a/ldso/include/dl-syscall.h +++ b/ldso/include/dl-syscall.h @@ -141,7 +141,7 @@ static __always_inline int _dl_stat(const char *file_name, { return _dl_newfstatat(AT_FDCWD, file_name, buf, 0); } -#elif defined __NR_stat && (!defined(__UCLIBC_USE_TIME64__) || defined(__sparc__)) || (LINUX_VERSION_CODE <= KERNEL_VERSION(5,1,0)) +#elif defined __NR_stat && (!defined(__UCLIBC_USE_TIME64__) || defined(__sparc__) || (LINUX_VERSION_CODE <= KERNEL_VERSION(5,1,0))) # define __NR__dl_stat __NR_stat static __always_inline _syscall2(int, _dl_stat, const char *, file_name, struct stat *, buf) -- cgit v1.2.3