.. | .. |
---|
1 | 1 | # SPDX-License-Identifier: GPL-2.0 |
---|
2 | 2 | # |
---|
3 | 3 | # 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) |
---|
10 | 4 | |
---|
11 | 5 | ##### |
---|
12 | | -# 1) Generate bounds.h |
---|
| 6 | +# Generate bounds.h |
---|
13 | 7 | |
---|
14 | 8 | bounds-file := include/generated/bounds.h |
---|
15 | 9 | |
---|
16 | | -always := $(bounds-file) |
---|
| 10 | +always-y := $(bounds-file) |
---|
17 | 11 | targets := kernel/bounds.s |
---|
18 | 12 | |
---|
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 |
---|
24 | 14 | $(call filechk,offsets,__LINUX_BOUNDS_H__) |
---|
25 | 15 | |
---|
26 | 16 | ##### |
---|
27 | | -# 2) Generate timeconst.h |
---|
| 17 | +# Generate timeconst.h |
---|
28 | 18 | |
---|
29 | 19 | timeconst-file := include/generated/timeconst.h |
---|
30 | 20 | |
---|
31 | | -targets += $(timeconst-file) |
---|
| 21 | +filechk_gentimeconst = echo $(CONFIG_HZ) | bc -q $< |
---|
32 | 22 | |
---|
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 |
---|
42 | 24 | $(call filechk,gentimeconst) |
---|
43 | 25 | |
---|
44 | 26 | ##### |
---|
45 | | -# 3) Generate asm-offsets.h |
---|
46 | | -# |
---|
| 27 | +# Generate asm-offsets.h |
---|
47 | 28 | |
---|
48 | 29 | offsets-file := include/generated/asm-offsets.h |
---|
49 | 30 | |
---|
50 | | -always += $(offsets-file) |
---|
| 31 | +always-y += $(offsets-file) |
---|
51 | 32 | targets += arch/$(SRCARCH)/kernel/asm-offsets.s |
---|
52 | 33 | |
---|
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) |
---|
57 | 35 | |
---|
58 | | -$(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE |
---|
| 36 | +$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE |
---|
59 | 37 | $(call filechk,offsets,__ASM_OFFSETS_H__) |
---|
60 | 38 | |
---|
61 | 39 | ##### |
---|
62 | | -# 4) Check for missing system calls |
---|
63 | | -# |
---|
| 40 | +# Check for missing system calls |
---|
64 | 41 | |
---|
65 | | -always += missing-syscalls |
---|
66 | | -targets += missing-syscalls |
---|
| 42 | +always-y += missing-syscalls |
---|
67 | 43 | |
---|
68 | 44 | quiet_cmd_syscalls = CALL $< |
---|
69 | 45 | cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags) |
---|
.. | .. |
---|
72 | 48 | $(call cmd,syscalls) |
---|
73 | 49 | |
---|
74 | 50 | ##### |
---|
75 | | -# 5) Generate constants for Python GDB integration |
---|
76 | | -# |
---|
| 51 | +# Check atomic headers are up-to-date |
---|
77 | 52 | |
---|
78 | | -extra-$(CONFIG_GDB_SCRIPTS) += build_constants_py |
---|
| 53 | +always-y += old-atomics |
---|
79 | 54 | |
---|
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) $< |
---|
82 | 57 | |
---|
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) |
---|