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