1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Makefile for the linux s390-specific parts of the memory manager. 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 68282cd64SVasily GorbikKCOV_INSTRUMENT := n 78282cd64SVasily GorbikGCOV_PROFILE := n 88282cd64SVasily GorbikUBSAN_SANITIZE := n 90a9b4091SVasily GorbikKASAN_SANITIZE := n 108282cd64SVasily Gorbik 118282cd64SVasily GorbikKBUILD_AFLAGS := $(KBUILD_AFLAGS_DECOMPRESSOR) 128282cd64SVasily GorbikKBUILD_CFLAGS := $(KBUILD_CFLAGS_DECOMPRESSOR) 138282cd64SVasily Gorbik 148282cd64SVasily Gorbik# 15c263a4e9SArnd Bergmann# Use minimum architecture for als.c to be able to print an error 168282cd64SVasily Gorbik# message if the kernel is started on a machine which is too old 178282cd64SVasily Gorbik# 18c263a4e9SArnd Bergmannifndef CONFIG_CC_IS_CLANG 19c263a4e9SArnd BergmannCC_FLAGS_MARCH_MINIMUM := -march=z900 20c263a4e9SArnd Bergmannelse 21c263a4e9SArnd BergmannCC_FLAGS_MARCH_MINIMUM := -march=z10 22c263a4e9SArnd Bergmannendif 23c263a4e9SArnd Bergmann 24c263a4e9SArnd Bergmannifneq ($(CC_FLAGS_MARCH),$(CC_FLAGS_MARCH_MINIMUM)) 258282cd64SVasily GorbikAFLAGS_REMOVE_head.o += $(CC_FLAGS_MARCH) 26c263a4e9SArnd BergmannAFLAGS_head.o += $(CC_FLAGS_MARCH_MINIMUM) 27cad5b35dSVasily GorbikAFLAGS_REMOVE_mem.o += $(CC_FLAGS_MARCH) 28c263a4e9SArnd BergmannAFLAGS_mem.o += $(CC_FLAGS_MARCH_MINIMUM) 298282cd64SVasily GorbikCFLAGS_REMOVE_als.o += $(CC_FLAGS_MARCH) 30c263a4e9SArnd BergmannCFLAGS_als.o += $(CC_FLAGS_MARCH_MINIMUM) 31a1d7d91fSVasily GorbikCFLAGS_REMOVE_sclp_early_core.o += $(CC_FLAGS_MARCH) 32c263a4e9SArnd BergmannCFLAGS_sclp_early_core.o += $(CC_FLAGS_MARCH_MINIMUM) 338282cd64SVasily Gorbikendif 348282cd64SVasily Gorbik 35a1d7d91fSVasily GorbikCFLAGS_sclp_early_core.o += -I$(srctree)/drivers/s390/char 36a1d7d91fSVasily Gorbik 379641b8ccSMartin Schwidefskyobj-y := head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o 389641b8ccSMartin Schwidefskyobj-y += string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o 39724dc336SVasily Gorbikobj-y += version.o pgm_check_info.o ctype.o text_dma.o 40*ecdc5d84SVasily Gorbikobj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += uv.o 41805bc0bcSGerald Schaeferobj-$(CONFIG_RELOCATABLE) += machine_kexec_reloc.o 42b2d24b97SGerald Schaeferobj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o 43fd184e1aSVasily Gorbiktargets := bzImage startup.a section_cmp.boot.data section_cmp.boot.preserved.data $(obj-y) 441844c9bcSMartin Schwidefskysubdir- := compressed 451da177e4SLinus Torvalds 468282cd64SVasily GorbikOBJECTS := $(addprefix $(obj)/,$(obj-y)) 478282cd64SVasily Gorbik 48251b72a4SVasily Gorbikquiet_cmd_section_cmp = SECTCMP $* 49251b72a4SVasily Gorbikdefine cmd_section_cmp 50251b72a4SVasily Gorbik s1=`$(OBJDUMP) -t -j "$*" "$<" | sort | \ 51251b72a4SVasily Gorbik sed -n "/0000000000000000/! s/.*\s$*\s\+//p" | sha256sum`; \ 52251b72a4SVasily Gorbik s2=`$(OBJDUMP) -t -j "$*" "$(word 2,$^)" | sort | \ 53251b72a4SVasily Gorbik sed -n "/0000000000000000/! s/.*\s$*\s\+//p" | sha256sum`; \ 54251b72a4SVasily Gorbik if [ "$$s1" != "$$s2" ]; then \ 55251b72a4SVasily Gorbik echo "error: section $* differs between $< and $(word 2,$^)" >&2; \ 56251b72a4SVasily Gorbik exit 1; \ 57251b72a4SVasily Gorbik fi; \ 58251b72a4SVasily Gorbik touch $@ 59251b72a4SVasily Gorbikendef 60251b72a4SVasily Gorbik 61fd184e1aSVasily Gorbik$(obj)/bzImage: $(obj)/compressed/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE 621844c9bcSMartin Schwidefsky $(call if_changed,objcopy) 631844c9bcSMartin Schwidefsky 64251b72a4SVasily Gorbik$(obj)/section_cmp%: vmlinux $(obj)/compressed/vmlinux FORCE 65251b72a4SVasily Gorbik $(call if_changed,section_cmp) 66251b72a4SVasily Gorbik 678282cd64SVasily Gorbik$(obj)/compressed/vmlinux: $(obj)/startup.a FORCE 681844c9bcSMartin Schwidefsky $(Q)$(MAKE) $(build)=$(obj)/compressed $@ 691844c9bcSMartin Schwidefsky 708282cd64SVasily Gorbik$(obj)/startup.a: $(OBJECTS) FORCE 718282cd64SVasily Gorbik $(call if_changed,ar) 728282cd64SVasily Gorbik 73aec644e5SHendrik Bruecknerinstall: $(CONFIGURE) $(obj)/bzImage 74aec644e5SHendrik Brueckner sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \ 75679e2ea7SHeiko Carstens System.map "$(INSTALL_PATH)" 760580bce1SVasily Gorbik 775d680056SMasahiro Yamadachkbss := $(obj-y) 785d680056SMasahiro Yamadachkbss-target := startup.a 790580bce1SVasily Gorbikinclude $(srctree)/arch/s390/scripts/Makefile.chkbss 80