18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciKASAN_SANITIZE := n 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_citargets += trampoline_$(BITS).o purgatory.ro kexec-purgatory.c 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci# When profile-guided optimization is enabled, llvm emits two different 88c2ecf20Sopenharmony_ci# overlapping text sections, which is not supported by kexec. Remove profile 98c2ecf20Sopenharmony_ci# optimization flags. 108c2ecf20Sopenharmony_ciKBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS)) 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciLDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci$(obj)/purgatory.ro: $(obj)/trampoline_$(BITS).o FORCE 158c2ecf20Sopenharmony_ci $(call if_changed,ld) 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciquiet_cmd_bin2c = BIN2C $@ 188c2ecf20Sopenharmony_ci cmd_bin2c = $(objtree)/scripts/bin2c kexec_purgatory < $< > $@ 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE 218c2ecf20Sopenharmony_ci $(call if_changed,bin2c) 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciobj-y += kexec-purgatory.o 24