aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/Makefile')
-rw-r--r--kernel/Makefile82
1 files changed, 49 insertions, 33 deletions
diff --git a/kernel/Makefile b/kernel/Makefile
index 1ce47553fb02..bc010ee272b6 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -6,56 +6,44 @@ obj-y = fork.o exec_domain.o panic.o \
6 cpu.o exit.o itimer.o time.o softirq.o resource.o \ 6 cpu.o exit.o itimer.o time.o softirq.o resource.o \
7 sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \ 7 sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \
8 signal.o sys.o kmod.o workqueue.o pid.o task_work.o \ 8 signal.o sys.o kmod.o workqueue.o pid.o task_work.o \
9 rcupdate.o extable.o params.o posix-timers.o \ 9 extable.o params.o posix-timers.o \
10 kthread.o wait.o sys_ni.o posix-cpu-timers.o mutex.o \ 10 kthread.o sys_ni.o posix-cpu-timers.o \
11 hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \ 11 hrtimer.o nsproxy.o \
12 notifier.o ksysfs.o cred.o reboot.o \ 12 notifier.o ksysfs.o cred.o reboot.o \
13 async.o range.o groups.o lglock.o smpboot.o 13 async.o range.o groups.o smpboot.o
14 14
15ifdef CONFIG_FUNCTION_TRACER 15ifdef CONFIG_FUNCTION_TRACER
16# Do not trace debug files and internal ftrace files 16# Do not trace debug files and internal ftrace files
17CFLAGS_REMOVE_lockdep.o = -pg
18CFLAGS_REMOVE_lockdep_proc.o = -pg
19CFLAGS_REMOVE_mutex-debug.o = -pg
20CFLAGS_REMOVE_rtmutex-debug.o = -pg
21CFLAGS_REMOVE_cgroup-debug.o = -pg 17CFLAGS_REMOVE_cgroup-debug.o = -pg
22CFLAGS_REMOVE_irq_work.o = -pg 18CFLAGS_REMOVE_irq_work.o = -pg
23endif 19endif
24 20
25obj-y += sched/ 21obj-y += sched/
22obj-y += locking/
26obj-y += power/ 23obj-y += power/
27obj-y += printk/ 24obj-y += printk/
28obj-y += cpu/ 25obj-y += cpu/
29obj-y += irq/ 26obj-y += irq/
27obj-y += rcu/
30 28
31obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o 29obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
32obj-$(CONFIG_FREEZER) += freezer.o 30obj-$(CONFIG_FREEZER) += freezer.o
33obj-$(CONFIG_PROFILING) += profile.o 31obj-$(CONFIG_PROFILING) += profile.o
34obj-$(CONFIG_STACKTRACE) += stacktrace.o 32obj-$(CONFIG_STACKTRACE) += stacktrace.o
35obj-y += time/ 33obj-y += time/
36obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
37obj-$(CONFIG_LOCKDEP) += lockdep.o
38ifeq ($(CONFIG_PROC_FS),y)
39obj-$(CONFIG_LOCKDEP) += lockdep_proc.o
40endif
41obj-$(CONFIG_FUTEX) += futex.o 34obj-$(CONFIG_FUTEX) += futex.o
42ifeq ($(CONFIG_COMPAT),y) 35ifeq ($(CONFIG_COMPAT),y)
43obj-$(CONFIG_FUTEX) += futex_compat.o 36obj-$(CONFIG_FUTEX) += futex_compat.o
44endif 37endif
45obj-$(CONFIG_RT_MUTEXES) += rtmutex.o
46obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o
47obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o
48obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o 38obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
49obj-$(CONFIG_SMP) += smp.o 39obj-$(CONFIG_SMP) += smp.o
50ifneq ($(CONFIG_SMP),y) 40ifneq ($(CONFIG_SMP),y)
51obj-y += up.o 41obj-y += up.o
52endif 42endif
53obj-$(CONFIG_SMP) += spinlock.o
54obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
55obj-$(CONFIG_PROVE_LOCKING) += spinlock.o
56obj-$(CONFIG_UID16) += uid16.o 43obj-$(CONFIG_UID16) += uid16.o
44obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system_keyring.o system_certificates.o
57obj-$(CONFIG_MODULES) += module.o 45obj-$(CONFIG_MODULES) += module.o
58obj-$(CONFIG_MODULE_SIG) += module_signing.o modsign_pubkey.o modsign_certificate.o 46obj-$(CONFIG_MODULE_SIG) += module_signing.o
59obj-$(CONFIG_KALLSYMS) += kallsyms.o 47obj-$(CONFIG_KALLSYMS) += kallsyms.o
60obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o 48obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
61obj-$(CONFIG_KEXEC) += kexec.o 49obj-$(CONFIG_KEXEC) += kexec.o
@@ -81,12 +69,6 @@ obj-$(CONFIG_KGDB) += debug/
81obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o 69obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
82obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o 70obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o
83obj-$(CONFIG_SECCOMP) += seccomp.o 71obj-$(CONFIG_SECCOMP) += seccomp.o
84obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
85obj-$(CONFIG_TREE_RCU) += rcutree.o
86obj-$(CONFIG_TREE_PREEMPT_RCU) += rcutree.o
87obj-$(CONFIG_TREE_RCU_TRACE) += rcutree_trace.o
88obj-$(CONFIG_TINY_RCU) += rcutiny.o
89obj-$(CONFIG_TINY_PREEMPT_RCU) += rcutiny.o
90obj-$(CONFIG_RELAY) += relay.o 72obj-$(CONFIG_RELAY) += relay.o
91obj-$(CONFIG_SYSCTL) += utsname_sysctl.o 73obj-$(CONFIG_SYSCTL) += utsname_sysctl.o
92obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o 74obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
@@ -141,19 +123,53 @@ targets += timeconst.h
141$(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE 123$(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE
142 $(call if_changed,bc) 124 $(call if_changed,bc)
143 125
144ifeq ($(CONFIG_MODULE_SIG),y) 126###############################################################################
127#
128# Roll all the X.509 certificates that we can find together and pull them into
129# the kernel so that they get loaded into the system trusted keyring during
130# boot.
145# 131#
146# Pull the signing certificate and any extra certificates into the kernel 132# We look in the source root and the build root for all files whose name ends
133# in ".x509". Unfortunately, this will generate duplicate filenames, so we
134# have make canonicalise the pathnames and then sort them to discard the
135# duplicates.
147# 136#
137###############################################################################
138ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
139X509_CERTIFICATES-y := $(wildcard *.x509) $(wildcard $(srctree)/*.x509)
140X509_CERTIFICATES-$(CONFIG_MODULE_SIG) += $(objtree)/signing_key.x509
141X509_CERTIFICATES-raw := $(sort $(foreach CERT,$(X509_CERTIFICATES-y), \
142 $(or $(realpath $(CERT)),$(CERT))))
143X509_CERTIFICATES := $(subst $(realpath $(objtree))/,,$(X509_CERTIFICATES-raw))
144
145ifeq ($(X509_CERTIFICATES),)
146$(warning *** No X.509 certificates found ***)
147endif
148 148
149quiet_cmd_touch = TOUCH $@ 149ifneq ($(wildcard $(obj)/.x509.list),)
150 cmd_touch = touch $@ 150ifneq ($(shell cat $(obj)/.x509.list),$(X509_CERTIFICATES))
151$(info X.509 certificate list changed)
152$(shell rm $(obj)/.x509.list)
153endif
154endif
155
156kernel/system_certificates.o: $(obj)/x509_certificate_list
157
158quiet_cmd_x509certs = CERTS $@
159 cmd_x509certs = cat $(X509_CERTIFICATES) /dev/null >$@ $(foreach X509,$(X509_CERTIFICATES),; echo " - Including cert $(X509)")
151 160
152extra_certificates: 161targets += $(obj)/x509_certificate_list
153 $(call cmd,touch) 162$(obj)/x509_certificate_list: $(X509_CERTIFICATES) $(obj)/.x509.list
163 $(call if_changed,x509certs)
154 164
155kernel/modsign_certificate.o: signing_key.x509 extra_certificates 165targets += $(obj)/.x509.list
166$(obj)/.x509.list:
167 @echo $(X509_CERTIFICATES) >$@
168endif
169
170clean-files := x509_certificate_list .x509.list
156 171
172ifeq ($(CONFIG_MODULE_SIG),y)
157############################################################################### 173###############################################################################
158# 174#
159# If module signing is requested, say by allyesconfig, but a key has not been 175# If module signing is requested, say by allyesconfig, but a key has not been