1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for the linux s390-specific parts of the memory manager.
11 KBUILD_AFLAGS
:= $(KBUILD_AFLAGS_DECOMPRESSOR
)
12 KBUILD_CFLAGS
:= $(KBUILD_CFLAGS_DECOMPRESSOR
)
15 # Use minimum architecture for als.c to be able to print an error
16 # message if the kernel is started on a machine which is too old
18 ifndef CONFIG_CC_IS_CLANG
19 CC_FLAGS_MARCH_MINIMUM
:= -march
=z900
21 CC_FLAGS_MARCH_MINIMUM
:= -march
=z10
24 ifneq ($(CC_FLAGS_MARCH
),$(CC_FLAGS_MARCH_MINIMUM
))
25 AFLAGS_REMOVE_head.o
+= $(CC_FLAGS_MARCH
)
26 AFLAGS_head.o
+= $(CC_FLAGS_MARCH_MINIMUM
)
27 AFLAGS_REMOVE_mem.o
+= $(CC_FLAGS_MARCH
)
28 AFLAGS_mem.o
+= $(CC_FLAGS_MARCH_MINIMUM
)
29 CFLAGS_REMOVE_als.o
+= $(CC_FLAGS_MARCH
)
30 CFLAGS_als.o
+= $(CC_FLAGS_MARCH_MINIMUM
)
31 CFLAGS_REMOVE_sclp_early_core.o
+= $(CC_FLAGS_MARCH
)
32 CFLAGS_sclp_early_core.o
+= $(CC_FLAGS_MARCH_MINIMUM
)
35 CFLAGS_sclp_early_core.o
+= -I
$(srctree
)/drivers
/s390
/char
37 obj-y
:= head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o
38 obj-y
+= string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o
39 obj-y
+= version.o pgm_check_info.o ctype.o text_dma.o
40 obj-
$(CONFIG_PROTECTED_VIRTUALIZATION_GUEST
) += uv.o
41 obj-
$(CONFIG_RELOCATABLE
) += machine_kexec_reloc.o
42 obj-
$(CONFIG_RANDOMIZE_BASE
) += kaslr.o
43 targets
:= bzImage startup.a section_cmp.boot.data section_cmp.boot.preserved.data
$(obj-y
)
46 OBJECTS
:= $(addprefix $(obj
)/,$(obj-y
))
48 quiet_cmd_section_cmp
= SECTCMP
$*
49 define cmd_section_cmp
50 s1
=`$(OBJDUMP) -t -j "$*" "$<" | sort | \
51 sed -n "/0000000000000000/! s/.*\s$*\s\+//p" | sha256sum`; \
52 s2
=`$(OBJDUMP) -t -j "$*" "$(word 2,$^)" | sort | \
53 sed -n "/0000000000000000/! s/.*\s$*\s\+//p" | sha256sum`; \
54 if
[ "$$s1" != "$$s2" ]; then \
55 echo
"error: section $* differs between $< and $(word 2,$^)" >&2; \
61 $(obj
)/bzImage
: $(obj
)/compressed
/vmlinux
$(obj
)/section_cmp.boot.data
$(obj
)/section_cmp.boot.preserved.data FORCE
62 $(call if_changed
,objcopy
)
64 $(obj
)/section_cmp
%: vmlinux
$(obj
)/compressed
/vmlinux FORCE
65 $(call if_changed
,section_cmp
)
67 $(obj
)/compressed
/vmlinux
: $(obj
)/startup.a FORCE
68 $(Q
)$(MAKE
) $(build
)=$(obj
)/compressed
$@
70 $(obj
)/startup.a
: $(OBJECTS
) FORCE
74 sh
-x
$(srctree
)/$(obj
)/install.sh
$(KERNELRELEASE
) $(obj
)/bzImage \
75 System.map
"$(INSTALL_PATH)"
78 chkbss-target
:= startup.a
79 include $(srctree
)/arch
/s390
/scripts
/Makefile.chkbss