* Xi Ruoyao: > Also some bad news: Glibc has this: > > #if (__WORDSIZE == 32 \ > && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \ > || defined STAT_HAS_TIME32 \ > || (!defined __NR_newfstatat && !defined __NR_fstatat64) > # define FSTATAT_USE_STATX 1 > #else > # define FSTATAT_USE_STATX 0 > #endif These __NR_* constants come from the glibc headers, not the kernel headers. In other words, the result of the preprocessor condition does not depend on the kernel header version. Thanks, Florian