mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-15 07:49:47 +00:00

Certain targets disable kstack_erase by filtering out KSTACK_ERASE_CFLAGS
rather than adding DISABLE_KSTACK_ERASE. The renaming to kstack_erase
missed the CFLAGS export, which broke those build targets (e.g. x86
vdso32).
Fixes: 76261fc7d1
("stackleak: Split KSTACK_ERASE_CFLAGS from GCC_PLUGINS_CFLAGS")
Signed-off-by: Kees Cook <kees@kernel.org>
22 lines
900 B
Makefile
22 lines
900 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
ifdef CONFIG_GCC_PLUGIN_STACKLEAK
|
|
kstack-erase-cflags-y += -fplugin=$(objtree)/scripts/gcc-plugins/stackleak_plugin.so
|
|
kstack-erase-cflags-y += -fplugin-arg-stackleak_plugin-track-min-size=$(CONFIG_KSTACK_ERASE_TRACK_MIN_SIZE)
|
|
kstack-erase-cflags-y += -fplugin-arg-stackleak_plugin-arch=$(SRCARCH)
|
|
kstack-erase-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK_VERBOSE) += -fplugin-arg-stackleak_plugin-verbose
|
|
DISABLE_KSTACK_ERASE := -fplugin-arg-stackleak_plugin-disable
|
|
endif
|
|
|
|
ifdef CONFIG_CC_IS_CLANG
|
|
kstack-erase-cflags-y += -fsanitize-coverage=stack-depth
|
|
kstack-erase-cflags-y += -fsanitize-coverage-stack-depth-callback-min=$(CONFIG_KSTACK_ERASE_TRACK_MIN_SIZE)
|
|
DISABLE_KSTACK_ERASE := -fno-sanitize-coverage=stack-depth
|
|
endif
|
|
|
|
KSTACK_ERASE_CFLAGS := $(kstack-erase-cflags-y)
|
|
|
|
export KSTACK_ERASE_CFLAGS DISABLE_KSTACK_ERASE
|
|
|
|
KBUILD_CFLAGS += $(KSTACK_ERASE_CFLAGS)
|