Skip to content

Commit f52767e

Browse files
keesLinux RISC-V bot
authored andcommitted
stackleak: Split STACKLEAK_CFLAGS from GCC_PLUGINS_CFLAGS
In preparation for Clang stack depth tracking for stackleak, split the stackleak-specific cflags out of GCC_PLUGINS_CFLAGS into STACKLEAK_CFLAGS. Signed-off-by: Kees Cook <[email protected]> Signed-off-by: Linux RISC-V bot <[email protected]>
1 parent e9654c0 commit f52767e

File tree

5 files changed

+12
-8
lines changed

5 files changed

+12
-8
lines changed

arch/arm/vdso/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
2626
CFLAGS_REMOVE_vdso.o = -pg
2727

2828
# Force -O2 to avoid libgcc dependencies
29-
CFLAGS_REMOVE_vgettimeofday.o = -pg -Os $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS)
29+
CFLAGS_REMOVE_vgettimeofday.o = -pg -Os $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) $(STACKLEAK_CFLAGS)
3030
ifeq ($(c-gettimeofday-y),)
3131
CFLAGS_vgettimeofday.o = -O2
3232
else

arch/arm64/kernel/vdso/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ ccflags-y += -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO
3737
# the CFLAGS to make possible to build the kernel with CONFIG_WERROR enabled.
3838
CC_FLAGS_REMOVE_VDSO := $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS) \
3939
$(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) \
40+
$(STACKLEAK_CFLAGS) \
4041
$(CC_FLAGS_LTO) $(CC_FLAGS_CFI) \
4142
-Wmissing-prototypes -Wmissing-declarations
4243

arch/sparc/vdso/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ CFL := $(PROFILING) -mcmodel=medlow -fPIC -O2 -fasynchronous-unwind-tables -m64
4848

4949
SPARC_REG_CFLAGS = -ffixed-g4 -ffixed-g5 $(call cc-option,-fcall-used-g5) $(call cc-option,-fcall-used-g7)
5050

51-
$(vobjs): KBUILD_CFLAGS := $(filter-out $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) $(SPARC_REG_CFLAGS),$(KBUILD_CFLAGS)) $(CFL)
51+
$(vobjs): KBUILD_CFLAGS := $(filter-out $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) $(STACKLEAK_CFLAGS) $(SPARC_REG_CFLAGS),$(KBUILD_CFLAGS)) $(CFL)
5252

5353
#
5454
# vDSO code runs in userspace and -pg doesn't help with profiling anyway.
@@ -80,6 +80,7 @@ KBUILD_CFLAGS_32 := $(filter-out -mcmodel=medlow,$(KBUILD_CFLAGS_32))
8080
KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32))
8181
KBUILD_CFLAGS_32 := $(filter-out $(RANDSTRUCT_CFLAGS),$(KBUILD_CFLAGS_32))
8282
KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32))
83+
KBUILD_CFLAGS_32 := $(filter-out $(STACKLEAK_CFLAGS),$(KBUILD_CFLAGS_32))
8384
KBUILD_CFLAGS_32 := $(filter-out $(SPARC_REG_CFLAGS),$(KBUILD_CFLAGS_32))
8485
KBUILD_CFLAGS_32 += -m32 -msoft-float -fpic
8586
KBUILD_CFLAGS_32 += -fno-stack-protector

arch/x86/entry/vdso/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ ifneq ($(RETPOLINE_VDSO_CFLAGS),)
6262
endif
6363
endif
6464

65-
$(vobjs): KBUILD_CFLAGS := $(filter-out $(PADDING_CFLAGS) $(CC_FLAGS_LTO) $(CC_FLAGS_CFI) $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) $(RETPOLINE_CFLAGS),$(KBUILD_CFLAGS)) $(CFL)
65+
$(vobjs): KBUILD_CFLAGS := $(filter-out $(PADDING_CFLAGS) $(CC_FLAGS_LTO) $(CC_FLAGS_CFI) $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) $(STACKLEAK_CFLAGS) $(RETPOLINE_CFLAGS),$(KBUILD_CFLAGS)) $(CFL)
6666
$(vobjs): KBUILD_AFLAGS += -DBUILD_VDSO
6767

6868
#
@@ -124,6 +124,7 @@ KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32))
124124
KBUILD_CFLAGS_32 := $(filter-out -mfentry,$(KBUILD_CFLAGS_32))
125125
KBUILD_CFLAGS_32 := $(filter-out $(RANDSTRUCT_CFLAGS),$(KBUILD_CFLAGS_32))
126126
KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32))
127+
KBUILD_CFLAGS_32 := $(filter-out $(STACKLEAK_CFLAGS),$(KBUILD_CFLAGS_32))
127128
KBUILD_CFLAGS_32 := $(filter-out $(RETPOLINE_CFLAGS),$(KBUILD_CFLAGS_32))
128129
KBUILD_CFLAGS_32 := $(filter-out $(CC_FLAGS_LTO),$(KBUILD_CFLAGS_32))
129130
KBUILD_CFLAGS_32 := $(filter-out $(CC_FLAGS_CFI),$(KBUILD_CFLAGS_32))

scripts/Makefile.gcc-plugins

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,19 @@ gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) \
2323
+= -DSTRUCTLEAK_PLUGIN
2424

2525
gcc-plugin-$(CONFIG_GCC_PLUGIN_STACKLEAK) += stackleak_plugin.so
26-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK) \
26+
gcc-plugin-stackleak-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK) \
2727
+= -DSTACKLEAK_PLUGIN
28-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK) \
28+
gcc-plugin-stackleak-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK) \
2929
+= -fplugin-arg-stackleak_plugin-track-min-size=$(CONFIG_STACKLEAK_TRACK_MIN_SIZE)
30-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK) \
30+
gcc-plugin-stackleak-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK) \
3131
+= -fplugin-arg-stackleak_plugin-arch=$(SRCARCH)
32-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK_VERBOSE) \
32+
gcc-plugin-stackleak-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK_VERBOSE) \
3333
+= -fplugin-arg-stackleak_plugin-verbose
3434
ifdef CONFIG_GCC_PLUGIN_STACKLEAK
35+
STACKLEAK_CFLAGS = $(gcc-plugin-stackleak-cflags-y)
3536
DISABLE_STACKLEAK += -fplugin-arg-stackleak_plugin-disable
3637
endif
37-
export DISABLE_STACKLEAK
38+
export STACKLEAK_CFLAGS DISABLE_STACKLEAK
3839

3940
gcc-plugin-$(CONFIG_GCC_PLUGIN_ARM_SSP_PER_TASK) += arm_ssp_per_task_plugin.so
4041
ifdef CONFIG_GCC_PLUGIN_ARM_SSP_PER_TASK

0 commit comments

Comments
 (0)