68c76ad4a9
Enable asynchronous unwind table generation for both the core kernel as well as modules, and emit the resulting .eh_frame sections as init code so we can use the unwind directives for code patching at boot or module load time. This will be used by dynamic shadow call stack support, which will rely on code patching rather than compiler codegen to emit the shadow call stack push and pop instructions. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Sami Tolvanen <samitolvanen@google.com> Tested-by: Sami Tolvanen <samitolvanen@google.com> Link: https://lore.kernel.org/r/20221027155908.1940624-2-ardb@kernel.org Signed-off-by: Will Deacon <will@kernel.org>
35 lines
1.2 KiB
Makefile
35 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright 2022 Google LLC
|
|
|
|
KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) -fpie \
|
|
-Os -DDISABLE_BRANCH_PROFILING $(DISABLE_STACKLEAK_PLUGIN) \
|
|
$(call cc-option,-mbranch-protection=none) \
|
|
-I$(srctree)/scripts/dtc/libfdt -fno-stack-protector \
|
|
-include $(srctree)/include/linux/hidden.h \
|
|
-D__DISABLE_EXPORTS -ffreestanding -D__NO_FORTIFY \
|
|
-fno-asynchronous-unwind-tables -fno-unwind-tables \
|
|
$(call cc-option,-fno-addrsig)
|
|
|
|
# remove SCS flags from all objects in this directory
|
|
KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_SCS), $(KBUILD_CFLAGS))
|
|
# disable LTO
|
|
KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_LTO), $(KBUILD_CFLAGS))
|
|
|
|
GCOV_PROFILE := n
|
|
KASAN_SANITIZE := n
|
|
KCSAN_SANITIZE := n
|
|
UBSAN_SANITIZE := n
|
|
KCOV_INSTRUMENT := n
|
|
|
|
$(obj)/%.pi.o: OBJCOPYFLAGS := --prefix-symbols=__pi_ \
|
|
--remove-section=.note.gnu.property \
|
|
--prefix-alloc-sections=.init
|
|
$(obj)/%.pi.o: $(obj)/%.o FORCE
|
|
$(call if_changed,objcopy)
|
|
|
|
$(obj)/lib-%.o: $(srctree)/lib/%.c FORCE
|
|
$(call if_changed_rule,cc_o_c)
|
|
|
|
obj-y := kaslr_early.pi.o lib-fdt.pi.o lib-fdt_ro.pi.o
|
|
extra-y := $(patsubst %.pi.o,%.o,$(obj-y))
|