1 # SPDX-License-Identifier: GPL-2.0
2 # This file was copied from arm64/kernel/pi/Makefile.
4 KBUILD_CFLAGS
:= $(subst $(CC_FLAGS_FTRACE
),,$(KBUILD_CFLAGS
)) -fpie \
5 -Os
-DDISABLE_BRANCH_PROFILING
$(DISABLE_STACKLEAK_PLUGIN
) \
6 $(call cc-option
,-mbranch-protection
=none
) \
7 -I
$(srctree
)/scripts
/dtc
/libfdt
-fno-stack-protector \
8 -include $(srctree
)/include/linux
/hidden.h \
9 -D__DISABLE_EXPORTS
-ffreestanding \
10 -fno-asynchronous-unwind-tables
-fno-unwind-tables \
11 $(call cc-option
,-fno-addrsig
)
14 KBUILD_CFLAGS
:= $(filter-out $(CC_FLAGS_LTO
), $(KBUILD_CFLAGS
))
16 KBUILD_CFLAGS
+= -mcmodel
=medany
18 CFLAGS_cmdline_early.o
+= -D__NO_FORTIFY
19 CFLAGS_fdt_early.o
+= -D__NO_FORTIFY
20 # lib/string.c already defines __NO_FORTIFY
21 CFLAGS_ctype.o
+= -D__NO_FORTIFY
22 CFLAGS_lib-fdt.o
+= -D__NO_FORTIFY
23 CFLAGS_lib-fdt_ro.o
+= -D__NO_FORTIFY
24 CFLAGS_archrandom_early.o
+= -D__NO_FORTIFY
26 $(obj
)/%.pi.o
: OBJCOPYFLAGS
:= --prefix-symbols
=__pi_ \
27 --remove-section
=.note.gnu.property \
28 --prefix-alloc-sections
=.init.pi
29 $(obj
)/%.pi.o
: $(obj
)/%.o FORCE
30 $(call if_changed
,objcopy
)
32 $(obj
)/lib-
%.o
: $(srctree
)/lib
/%.c FORCE
33 $(call if_changed_rule
,cc_o_c
)
35 $(obj
)/string.o
: $(srctree
)/lib
/string.c FORCE
36 $(call if_changed_rule
,cc_o_c
)
38 $(obj
)/ctype.o
: $(srctree
)/lib
/ctype.c FORCE
39 $(call if_changed_rule
,cc_o_c
)
41 obj-y
:= cmdline_early.pi.o fdt_early.pi.o string.pi.o ctype.pi.o lib-fdt.pi.o lib-fdt_ro.pi.o archrandom_early.pi.o
42 extra-y
:= $(patsubst %.pi.o
,%.o
,$(obj-y
))