Hello Vlastimil, recently kbuild-all test bot reported compile error on clang 10.0.1, with defconfig. Nathan Chancellor wrote: > I think this happens because arch_prepare_optimized_kprobe() calls kzalloc() > with a size of MAX_OPTINSN_SIZE, which is > > #define MAX_OPTINSN_SIZE \ > (((unsigned long)optprobe_template_end - \ > (unsigned long)optprobe_template_entry) + \ > MAX_OPTIMIZED_LENGTH + JMP32_INSN_SIZE) > and the optprobe_template_{end,entry} are not evaluated as constants. > > I am not sure what the solution is. There seem to be a growing list of issues > with LLVM 10 that were fixed in LLVM 11, which might necessitate requiring > LLVM 11 and newer to build the kernel, given this affects a defconfig. > Cheers, > Nathan I think it's because kmalloc compiles successfully when size is constant, and kmalloc_index isn't. so I think compiler seems to be confused. currently if size is non-constant, kmalloc calls dummy function __kmalloc, which always returns NULL. so what about changing kmalloc to do compile-time assertion too, and track all callers that are calling kmalloc with non-constant argument. How do you think? If you think it is the solution, I'll do that work.