On 12/06, Ard Biesheuvel wrote: > > On Fri, 6 Dec 2024 at 13:32, Oleg Nesterov wrote: > > > > +#ifdef CONFIG_STACKPROTECTOR > > /* needed for Clang - see arch/x86/entry/entry.S */ > > PROVIDE(__ref_stack_chk_guard = __stack_chk_guard); > > +#endif > > > > #ifdef CONFIG_X86_64 > > /* > > This shouldn't be necessary - PROVIDE() is only evaluated if a > reference exists to the symbol it defines. > > Also, I'm failing to reproduce this. Could you share your .config, > please, and the error that you get during the build? Please see the attached .config without the change above: $ make bzImage CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers UPD include/generated/utsversion.h CC init/version-timestamp.o KSYMS .tmp_vmlinux0.kallsyms.S AS .tmp_vmlinux0.kallsyms.o LD .tmp_vmlinux1 ./arch/x86/kernel/vmlinux.lds:154: undefined symbol `__stack_chk_guard' referenced in expression scripts/Makefile.vmlinux:77: recipe for target 'vmlinux' failed make[2]: *** [vmlinux] Error 1 /home/oleg/tmp/LINUX/Makefile:1225: recipe for target 'vmlinux' failed make[1]: *** [vmlinux] Error 2 Makefile:251: recipe for target '__sub-make' failed make: *** [__sub-make] Error 2 perhaps this is because my toolchain is quite old, $ ld -v GNU ld version 2.25-17.fc23 but according to Documentation/process/changes.rst binutils 2.25 ld -v it is still supported. Oleg.