10d1fb0a4SAlex Dewar# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 34c9e1385SJeff Dike# Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux,intel}.com) 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 6915eed20SVegard Nossum# Don't instrument UML-specific code; without this, we may crash when 7915eed20SVegard Nossum# accessing the instrumentation buffer for the first time from the 8915eed20SVegard Nossum# kernel. 9915eed20SVegard NossumKCOV_INSTRUMENT := n 10915eed20SVegard Nossum 11dc5be20aSAl ViroCPPFLAGS_vmlinux.lds := -DSTART=$(LDS_START) \ 1251b563fcSSam Ravnborg -DELF_ARCH=$(LDS_ELF_ARCH) \ 133cb42092SAl Viro -DELF_FORMAT=$(LDS_ELF_FORMAT) \ 143cb42092SAl Viro $(LDS_EXTRA) 151da177e4SLinus Torvaldsextra-y := vmlinux.lds 161da177e4SLinus Torvalds 175b408241SThomas Gleixnerobj-y = config.o exec.o exitcode.o irq.o ksyms.o mem.o \ 18b42e1eacSJeff Dike physmem.o process.o ptrace.o reboot.o sigio.o \ 19577ade59SAl Viro signal.o sysrq.o time.o tlb.o trap.o \ 20*c9a6cf3fSBenjamin Berg um_arch.o umid.o kmsg_dump.o capflags.o skas/ 21361640b4SVincent Whitchurchobj-y += load_file.o 221da177e4SLinus Torvalds 239b67a3c4SJeff Dikeobj-$(CONFIG_BLK_DEV_INITRD) += initrd.o 241da177e4SLinus Torvaldsobj-$(CONFIG_GPROF) += gprof_syms.o 25b31297f0SVincent Whitchurchobj-$(CONFIG_OF) += dtb.o 26d634f194SRichard Weinbergerobj-$(CONFIG_EARLY_PRINTK) += early_printk.o 27970e51feSDaniel Walterobj-$(CONFIG_STACKTRACE) += stacktrace.o 2868f5d3f3SJohannes Bergobj-$(CONFIG_GENERIC_PCI_IOMAP) += ioport.o 291da177e4SLinus Torvalds 30c554f899SJeff DikeUSER_OBJS := config.o 311da177e4SLinus Torvalds 3267d7c302SMasahiro Yamadainclude $(srctree)/arch/um/scripts/Makefile.rules 331da177e4SLinus Torvalds 34d8fb32f4SAnton Ivanovtargets := config.c config.tmp capflags.c 351da177e4SLinus Torvalds 361da177e4SLinus Torvalds# Be careful with the below Sed code - sed is pitfall-rich! 371da177e4SLinus Torvalds# We use sed to lower build requirements, for "embedded" builders for instance. 381da177e4SLinus Torvalds 391da177e4SLinus Torvalds$(obj)/config.tmp: $(objtree)/.config FORCE 401da177e4SLinus Torvalds $(call if_changed,quote1) 411da177e4SLinus Torvalds 421da177e4SLinus Torvaldsquiet_cmd_quote1 = QUOTE $@ 43dc717687SWANG Cong cmd_quote1 = sed -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n",/' \ 441da177e4SLinus Torvalds $< > $@ 451da177e4SLinus Torvalds 461da177e4SLinus Torvalds$(obj)/config.c: $(src)/config.c.in $(obj)/config.tmp FORCE 471da177e4SLinus Torvalds $(call if_changed,quote2) 481da177e4SLinus Torvalds 49d8fb32f4SAnton Ivanovquiet_cmd_mkcapflags = MKCAP $@ 50d8fb32f4SAnton Ivanov cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/../../x86/kernel/cpu/mkcapflags.sh $@ $^ 51d8fb32f4SAnton Ivanov 52d8fb32f4SAnton Ivanovcpufeature = $(src)/../../x86/include/asm/cpufeatures.h 53d8fb32f4SAnton Ivanovvmxfeature = $(src)/../../x86/include/asm/vmxfeatures.h 54d8fb32f4SAnton Ivanov 55d8fb32f4SAnton Ivanov$(obj)/capflags.c: $(cpufeature) $(vmxfeature) $(src)/../../x86/kernel/cpu/mkcapflags.sh FORCE 56d8fb32f4SAnton Ivanov $(call if_changed,mkcapflags) 57d8fb32f4SAnton Ivanov 581da177e4SLinus Torvaldsquiet_cmd_quote2 = QUOTE $@ 591da177e4SLinus Torvalds cmd_quote2 = sed -e '/CONFIG/{' \ 60dc717687SWANG Cong -e 's/"CONFIG"//' \ 611da177e4SLinus Torvalds -e 'r $(obj)/config.tmp' \ 62b05d85a8SRob Landley -e 'a \' \ 63dc717687SWANG Cong -e '""' \ 641da177e4SLinus Torvalds -e '}' \ 651da177e4SLinus Torvalds $< > $@ 66