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) 15*e21efe83SMasahiro Yamadaalways-$(KBUILD_BUILTIN) := 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 \ 2084a6fc37SBenjamin 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 281da177e4SLinus Torvalds 29c554f899SJeff DikeUSER_OBJS := config.o 301da177e4SLinus Torvalds 3167d7c302SMasahiro Yamadainclude $(srctree)/arch/um/scripts/Makefile.rules 321da177e4SLinus Torvalds 33d8fb32f4SAnton Ivanovtargets := config.c config.tmp capflags.c 341da177e4SLinus Torvalds 351da177e4SLinus Torvalds# Be careful with the below Sed code - sed is pitfall-rich! 361da177e4SLinus Torvalds# We use sed to lower build requirements, for "embedded" builders for instance. 371da177e4SLinus Torvalds 381da177e4SLinus Torvalds$(obj)/config.tmp: $(objtree)/.config FORCE 391da177e4SLinus Torvalds $(call if_changed,quote1) 401da177e4SLinus Torvalds 411da177e4SLinus Torvaldsquiet_cmd_quote1 = QUOTE $@ 42dc717687SWANG Cong cmd_quote1 = sed -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n",/' \ 431da177e4SLinus Torvalds $< > $@ 441da177e4SLinus Torvalds 451da177e4SLinus Torvalds$(obj)/config.c: $(src)/config.c.in $(obj)/config.tmp FORCE 461da177e4SLinus Torvalds $(call if_changed,quote2) 471da177e4SLinus Torvalds 48d8fb32f4SAnton Ivanovquiet_cmd_mkcapflags = MKCAP $@ 49b1992c37SMasahiro Yamada cmd_mkcapflags = $(CONFIG_SHELL) $(src)/../../x86/kernel/cpu/mkcapflags.sh $@ $^ 50d8fb32f4SAnton Ivanov 51d8fb32f4SAnton Ivanovcpufeature = $(src)/../../x86/include/asm/cpufeatures.h 52d8fb32f4SAnton Ivanovvmxfeature = $(src)/../../x86/include/asm/vmxfeatures.h 53d8fb32f4SAnton Ivanov 54d8fb32f4SAnton Ivanov$(obj)/capflags.c: $(cpufeature) $(vmxfeature) $(src)/../../x86/kernel/cpu/mkcapflags.sh FORCE 55d8fb32f4SAnton Ivanov $(call if_changed,mkcapflags) 56d8fb32f4SAnton Ivanov 571da177e4SLinus Torvaldsquiet_cmd_quote2 = QUOTE $@ 581da177e4SLinus Torvalds cmd_quote2 = sed -e '/CONFIG/{' \ 59dc717687SWANG Cong -e 's/"CONFIG"//' \ 601da177e4SLinus Torvalds -e 'r $(obj)/config.tmp' \ 61b05d85a8SRob Landley -e 'a \' \ 62dc717687SWANG Cong -e '""' \ 631da177e4SLinus Torvalds -e '}' \ 641da177e4SLinus Torvalds $< > $@ 65