Skip to contentSkip to conversation

powerpc: Keep const vars out of writable .sdata

PATCH Applied Kees Cook 2 participants 2 messages Mar 1, 2018 – Mar 6, 2018 PowerPC

lore
Share & tools
lore

Kees Cook

author
#0 lore raw

PATCH 1/1 powerpc: Keep const vars out of writable .sdata

From: Segher Boessenkool <[email protected]>

Newer gcc will support "-mno-readonly-in-sdata"[1], which makes sure that the optimization on PPC32 for variables getting moved into the .sdata section will not apply to const variables (which must be in .rodata).

This was originally noticed in mm/rodata_test.c when rodata_test_data was not static:

c0695034 g O .data 00000004 rodata_test_data

After this patch with an updated compiler, this is correctly in .rodata.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82411

---
 arch/powerpc/Makefile | 2 ++
 1 file changed, 2 insertions(+)
arch/powerpc/Makefile +2 -0
index ccd2556bdb53..c7628e973084 100644
@@ -141,7 +141,9 @@ AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
 endif
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mno-pointers-to-nested-functions)
+
 CFLAGS-$(CONFIG_PPC32)	:= -ffixed-r2 $(MULTIPLEWORD)
+CFLAGS-$(CONFIG_PPC32)	+= $(call cc-option,-mno-readonly-in-sdata)
 
 ifeq ($(CONFIG_PPC_BOOK3S_64),y)
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,-mtune=power4)
Signature · 6 lines
2.7.4


-- 
Kees Cook
Pixel Security
#1 lore raw
Quoted 11 lines · Kees Cook

From: Segher Boessenkool <[email protected]>

Newer gcc will support "-mno-readonly-in-sdata"[1], which makes sure that the optimization on PPC32 for variables getting moved into the .sdata section will not apply to const variables (which must be in .rodata).

This was originally noticed in mm/rodata_test.c when rodata_test_data was not static:

c0695034 g O .data 00000004 rodata_test_data

Quoted 7 lines

After this patch with an updated compiler, this is correctly in .rodata.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82411

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/51d42f0f5fd6c74144d19bf6a66352

cheers