From: Christophe Leroy Date: Wed, 15 Nov 2023 18:36:36 +0000 (+0100) Subject: Fix stack-protector for powerpc X-Git-Url: http://git.dujemihanovic.xyz/html/static/%7B%7B%20.Permalink%20%7D%7D?a=commitdiff_plain;h=4072572b0f8aeffedcd908dc45b7e046ee0554b0;p=u-boot.git Fix stack-protector for powerpc On powerpc, stack protector expects a function called __stack_chk_fail_local() instead of __stack_chk_fail() And some versions of GCC for powerpc default to TLS canary instead of global canary, so always force GCC to use global canary with -mstack-protector-guard=global Cc: Joel Peshkin Fixes: 4e9bce12432 ("Add support for stack-protector") Signed-off-by: Christophe Leroy --- diff --git a/Makefile b/Makefile index ffeb722c10..1b347f4dfd 100644 --- a/Makefile +++ b/Makefile @@ -750,6 +750,7 @@ endif ifeq ($(CONFIG_STACKPROTECTOR),y) KBUILD_CFLAGS += $(call cc-option,-fstack-protector-strong) +KBUILD_CFLAGS += $(call cc-option,-mstack-protector-guard=global) CFLAGS_EFI += $(call cc-option,-fno-stack-protector) else KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) diff --git a/common/stackprot.c b/common/stackprot.c index d5b7061665..6495951a77 100644 --- a/common/stackprot.c +++ b/common/stackprot.c @@ -18,3 +18,8 @@ void __stack_chk_fail(void) panic("Stack smashing detected in function:\n%p relocated from %p", ra, ra - gd->reloc_off); } + +void __stack_chk_fail_local(void) +{ + __stack_chk_fail(); +}