1 OBJECT_FILES_NON_STANDARD
:= y
3 purgatory-y
:= purgatory.o stack.o setup-x86_
$(BITS
).o sha256.o entry64.o string.o
5 targets
+= $(purgatory-y
)
6 PURGATORY_OBJS
= $(addprefix $(obj
)/,$(purgatory-y
))
8 LDFLAGS_purgatory.ro
:= -e purgatory_start
-r
--no-undefined
-nostdlib
-z nodefaultlib
9 targets
+= purgatory.ro
14 # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That
15 # in turn leaves some undefined symbols like __fentry__ in purgatory and not
16 # sure how to relocate those. Like kexec-tools, use custom flags.
18 KBUILD_CFLAGS
:= -fno-strict-aliasing
-Wall
-Wstrict-prototypes
-fno-zero-initialized-in-bss
-fno-builtin
-ffreestanding
-c
-MD
-Os
-mcmodel
=large
19 KBUILD_CFLAGS
+= -m
$(BITS
)
20 KBUILD_CFLAGS
+= $(call cc-option
,-fno-PIE
)
22 $(obj
)/purgatory.ro
: $(PURGATORY_OBJS
) FORCE
25 targets
+= kexec-purgatory.c
27 CMD_BIN2C
= $(objtree
)/scripts
/basic
/bin2c
28 quiet_cmd_bin2c
= BIN2C
$@
29 cmd_bin2c
= $(CMD_BIN2C
) kexec_purgatory
< $< > $@
31 $(obj
)/kexec-purgatory.c
: $(obj
)/purgatory.ro FORCE
32 $(call if_changed
,bin2c
)
34 obj-
$(CONFIG_KEXEC_FILE
) += kexec-purgatory.o