hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/Kbuild
....@@ -1,69 +1,45 @@
11 # SPDX-License-Identifier: GPL-2.0
22 #
33 # Kbuild for top-level directory of the kernel
4
-# This file takes care of the following:
5
-# 1) Generate bounds.h
6
-# 2) Generate timeconst.h
7
-# 3) Generate asm-offsets.h (may need bounds.h and timeconst.h)
8
-# 4) Check for missing system calls
9
-# 5) Generate constants.py (may need bounds.h)
104
115 #####
12
-# 1) Generate bounds.h
6
+# Generate bounds.h
137
148 bounds-file := include/generated/bounds.h
159
16
-always := $(bounds-file)
10
+always-y := $(bounds-file)
1711 targets := kernel/bounds.s
1812
19
-# We use internal kbuild rules to avoid the "is up to date" message from make
20
-kernel/bounds.s: kernel/bounds.c FORCE
21
- $(call if_changed_dep,cc_s_c)
22
-
23
-$(obj)/$(bounds-file): kernel/bounds.s FORCE
13
+$(bounds-file): kernel/bounds.s FORCE
2414 $(call filechk,offsets,__LINUX_BOUNDS_H__)
2515
2616 #####
27
-# 2) Generate timeconst.h
17
+# Generate timeconst.h
2818
2919 timeconst-file := include/generated/timeconst.h
3020
31
-targets += $(timeconst-file)
21
+filechk_gentimeconst = echo $(CONFIG_HZ) | bc -q $<
3222
33
-quiet_cmd_gentimeconst = GEN $@
34
-define cmd_gentimeconst
35
- (echo $(CONFIG_HZ) | bc -q $< ) > $@
36
-endef
37
-define filechk_gentimeconst
38
- (echo $(CONFIG_HZ) | bc -q $< )
39
-endef
40
-
41
-$(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE
23
+$(timeconst-file): kernel/time/timeconst.bc FORCE
4224 $(call filechk,gentimeconst)
4325
4426 #####
45
-# 3) Generate asm-offsets.h
46
-#
27
+# Generate asm-offsets.h
4728
4829 offsets-file := include/generated/asm-offsets.h
4930
50
-always += $(offsets-file)
31
+always-y += $(offsets-file)
5132 targets += arch/$(SRCARCH)/kernel/asm-offsets.s
5233
53
-# We use internal kbuild rules to avoid the "is up to date" message from make
54
-arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
55
- $(obj)/$(timeconst-file) $(obj)/$(bounds-file) FORCE
56
- $(call if_changed_dep,cc_s_c)
34
+arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file)
5735
58
-$(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
36
+$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
5937 $(call filechk,offsets,__ASM_OFFSETS_H__)
6038
6139 #####
62
-# 4) Check for missing system calls
63
-#
40
+# Check for missing system calls
6441
65
-always += missing-syscalls
66
-targets += missing-syscalls
42
+always-y += missing-syscalls
6743
6844 quiet_cmd_syscalls = CALL $<
6945 cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
....@@ -72,13 +48,12 @@
7248 $(call cmd,syscalls)
7349
7450 #####
75
-# 5) Generate constants for Python GDB integration
76
-#
51
+# Check atomic headers are up-to-date
7752
78
-extra-$(CONFIG_GDB_SCRIPTS) += build_constants_py
53
+always-y += old-atomics
7954
80
-build_constants_py: $(obj)/$(timeconst-file) $(obj)/$(bounds-file)
81
- @$(MAKE) $(build)=scripts/gdb/linux $@
55
+quiet_cmd_atomics = CALL $<
56
+ cmd_atomics = $(CONFIG_SHELL) $<
8257
83
-# Keep these three files during make clean
84
-no-clean-files := $(bounds-file) $(offsets-file) $(timeconst-file)
58
+old-atomics: scripts/atomic/check-atomics.sh FORCE
59
+ $(call cmd,atomics)