Skip to content

Commit caa2d74

Browse files
nathanchanceSasha Levin
authored andcommitted
powerpc: Adjust adding stack protector flags to KBUILD_CLAGS for clang
commit bee08a9 upstream. After fixing the HAVE_STACKPROTECTER checks for clang's in-progress per-task stack protector support [1], the build fails during prepare0 because '-mstack-protector-guard-offset' has not been added to KBUILD_CFLAGS yet but the other '-mstack-protector-guard' flags have. clang: error: '-mstack-protector-guard=tls' is used without '-mstack-protector-guard-offset', and there is no default clang: error: '-mstack-protector-guard=tls' is used without '-mstack-protector-guard-offset', and there is no default make[4]: *** [scripts/Makefile.build:229: scripts/mod/empty.o] Error 1 make[4]: *** [scripts/Makefile.build:102: scripts/mod/devicetable-offsets.s] Error 1 Mirror other architectures and add all '-mstack-protector-guard' flags to KBUILD_CFLAGS atomically during stack_protector_prepare, which resolves the issue and allows clang's implementation to fully work with the kernel. Cc: [email protected] # 6.1+ Link: llvm/llvm-project#110928 [1] Reviewed-by: Keith Packard <[email protected]> Tested-by: Keith Packard <[email protected]> Signed-off-by: Nathan Chancellor <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://patch.msgid.link/20241009-powerpc-fix-stackprotector-test-clang-v2-2-12fb86b31857@kernel.org Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 860641e commit caa2d74

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

arch/powerpc/Makefile

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,6 @@ KBUILD_AFLAGS += -m$(BITS)
8989
KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION)
9090
endif
9191

92-
cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard=tls
93-
ifdef CONFIG_PPC64
94-
cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard-reg=r13
95-
else
96-
cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard-reg=r2
97-
endif
98-
9992
LDFLAGS_vmlinux-y := -Bstatic
10093
LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie
10194
LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) += -z notext
@@ -383,9 +376,11 @@ prepare: stack_protector_prepare
383376
PHONY += stack_protector_prepare
384377
stack_protector_prepare: prepare0
385378
ifdef CONFIG_PPC64
386-
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' include/generated/asm-offsets.h))
379+
$(eval KBUILD_CFLAGS += -mstack-protector-guard=tls -mstack-protector-guard-reg=r13 \
380+
-mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' include/generated/asm-offsets.h))
387381
else
388-
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h))
382+
$(eval KBUILD_CFLAGS += -mstack-protector-guard=tls -mstack-protector-guard-reg=r2 \
383+
-mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h))
389384
endif
390385
endif
391386

0 commit comments

Comments
 (0)