On Wed, Dec 18, 2024 at 5:08 PM Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote: > > The Rust gcc builds failed due to following build warnings / errors on the > x86_64 and arm64 architectures with selftests/rust/config on the Linux > next-20241216...next-20241218. > > First seen on the next-20241216 tag. > Good: next-20241213 > Bad: next-20241216 > > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx> > > Anders bisected this regressions and found, > # first bad commit: > [20b3c3eccd9361c9976af640be280526bef72248] > percpu: use TYPEOF_UNQUAL() in variable declarations > > Build log: > ------- > arch/x86/include/asm/current.h:49:9: error: call to undeclared > function '__typeof_unqual__'; ISO C99 and later do not support > implicit function declarations [-Wimplicit-function-declaration] > arch/x86/include/asm/current.h:49:9: error: expected ';' after expression > arch/x86/include/asm/current.h:49:9: error: use of undeclared > identifier 'pscr_ret__' __typeof_unqual__ is a keyword in c23 (and an extension in gcc-14+ and clang-19+). https://en.cppreference.com/w/c/language/typeof https://learn.microsoft.com/en-us/cpp/c-language/typeof-unqual-c?view=msvc-170 The compiler support is detected in init/Kconfig: config CC_HAS_TYPEOF_UNQUAL def_bool $(success,echo 'int foo (int a) { __typeof_unqual__(a) b = a; return b; }' | $(CC) -x c - -S -o /dev/null) so, if your compiler doesn't support this keyword, CC_HAS_TYPEOF_UNQUAL should not be enabled and include/linux/compiler.h should disable usage of __typeof_unqual__: #if defined(CONFIG_CC_HAS_TYPEOF_UNQUAL) && !defined(__CHECKER__) # define TYPEOF_UNQUAL(exp) __typeof_unqual__(exp) #else # define TYPEOF_UNQUAL(exp) __typeof__(exp) #endif Can you please investigate what happens here for your build? Thanks, Uros.