On Fri, Jul 26, 2024 at 07:25:21AM +0000, Jari Ruusu wrote: > Some older systems still compile kernels with old gcc version. > > $ grep -B3 "^GNU C" linux-5.10.223-rc1/Documentation/Changes > ====================== =============== ======================================== > Program Minimal version Command to check the version > ====================== =============== ======================================== > GNU C 4.9 gcc --version > > These warnings and errors show up when compiling with gcc 4.9.2 > > UPD include/config/kernel.release > UPD include/generated/uapi/linux/version.h > UPD include/generated/utsrelease.h > CC scripts/mod/empty.o > In file included from ././include/linux/compiler_types.h:65:0, > from <command-line>:0: > ./include/linux/compiler_attributes.h:29:29: warning: "__GCC4_has_attribute___uninitialized__" is not defined [-Wundef] > # define __has_attribute(x) __GCC4_has_attribute_##x > ^ > ./include/linux/compiler_attributes.h:278:5: note: in expansion of macro '__has_attribute' > #if __has_attribute(__uninitialized__) > ^ > [SNIP] > AR arch/x86/events/built-in.a > CC arch/x86/kvm/../../../virt/kvm/kvm_main.o > In file included from ././include/linux/compiler_types.h:65:0, > from <command-line>:0: > ./include/linux/compiler_attributes.h:29:29: error: "__GCC4_has_attribute___uninitialized__" is not defined [-Werror=undef] > # define __has_attribute(x) __GCC4_has_attribute_##x > ^ > ./include/linux/compiler_attributes.h:278:5: note: in expansion of macro '__has_attribute' > #if __has_attribute(__uninitialized__) > ^ > cc1: all warnings being treated as errors > make[2]: *** [scripts/Makefile.build:286: arch/x86/kvm/../../../virt/kvm/kvm_main.o] Error 1 > make[1]: *** [scripts/Makefile.build:503: arch/x86/kvm] Error 2 > make: *** [Makefile:1832: arch/x86] Error 2 > > Following patch fixes this. Upstream won't need this because > newer kernels are not compilable with gcc 4.9 > > --- ./include/linux/compiler_attributes.h.OLD > +++ ./include/linux/compiler_attributes.h > @@ -37,6 +37,7 @@ > # define __GCC4_has_attribute___nonstring__ 0 > # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8) > # define __GCC4_has_attribute___no_sanitize_undefined__ (__GNUC_MINOR__ >= 9) > +# define __GCC4_has_attribute___uninitialized__ 0 > # define __GCC4_has_attribute___fallthrough__ 0 > # define __GCC4_has_attribute___warning__ 1 > #endif > > Fixes: upstream fd7eea27a3ae "Compiler Attributes: Add __uninitialized macro" > Signed-off-by: Jari Ruusu <jariruusu@xxxxxxxxxxxxxx> Please submit this in a format in which we can apply it, thanks! greg k-h