b24413180f560 (Greg Kroah-Hartman 2017-11-01 15:07:57 +0100 1) # SPDX-License-Identifier: GPL-2.0
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 2) #
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 3) # Kbuild for top-level directory of the kernel
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 4)
39664e2f3cdef (Masahiro Yamada 2015-01-05 15:57:15 +0900 5) #####
01d509a48b467 (Masahiro Yamada 2019-02-19 18:33:03 +0900 6) # Generate bounds.h
39664e2f3cdef (Masahiro Yamada 2015-01-05 15:57:15 +0900 7)
39664e2f3cdef (Masahiro Yamada 2015-01-05 15:57:15 +0900 8) bounds-file := include/generated/bounds.h
39664e2f3cdef (Masahiro Yamada 2015-01-05 15:57:15 +0900 9)
5f2fb52fac15a (Masahiro Yamada 2020-02-02 01:49:24 +0900 10) always-y := $(bounds-file)
8a58e1628ce44 (Masahiro Yamada 2015-03-26 20:59:52 +0900 11) targets := kernel/bounds.s
39664e2f3cdef (Masahiro Yamada 2015-01-05 15:57:15 +0900 12)
11fda148040bb (Masahiro Yamada 2018-12-22 18:50:35 +0900 13) $(bounds-file): kernel/bounds.s FORCE
70a4fd6c56d0f (Michal Marek 2015-03-11 11:01:01 +0100 14) $(call filechk,offsets,__LINUX_BOUNDS_H__)
1cdf25d704f79 (Christoph Lameter 2008-04-28 02:12:44 -0700 15)
1cdf25d704f79 (Christoph Lameter 2008-04-28 02:12:44 -0700 16) #####
01d509a48b467 (Masahiro Yamada 2019-02-19 18:33:03 +0900 17) # Generate timeconst.h
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 18)
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 19) timeconst-file := include/generated/timeconst.h
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 20)
ba97df45581f0 (Masahiro Yamada 2019-01-03 10:16:54 +0900 21) filechk_gentimeconst = echo $(CONFIG_HZ) | bc -q $<
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 22)
11fda148040bb (Masahiro Yamada 2018-12-22 18:50:35 +0900 23) $(timeconst-file): kernel/time/timeconst.bc FORCE
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 24) $(call filechk,gentimeconst)
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 25)
0a227985d4a99 (Nicholas Mc Guire 2015-05-18 14:19:12 +0200 26) #####
01d509a48b467 (Masahiro Yamada 2019-02-19 18:33:03 +0900 27) # Generate asm-offsets.h
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 28)
559df2e021035 (Sam Ravnborg 2009-04-19 22:35:10 +0200 29) offsets-file := include/generated/asm-offsets.h
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 30)
5f2fb52fac15a (Masahiro Yamada 2020-02-02 01:49:24 +0900 31) always-y += $(offsets-file)
6752ed90da032 (Thomas Gleixner 2007-10-11 11:11:36 +0200 32) targets += arch/$(SRCARCH)/kernel/asm-offsets.s
1cdf25d704f79 (Christoph Lameter 2008-04-28 02:12:44 -0700 33)
11fda148040bb (Masahiro Yamada 2018-12-22 18:50:35 +0900 34) arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file)
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 35)
11fda148040bb (Masahiro Yamada 2018-12-22 18:50:35 +0900 36) $(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
70a4fd6c56d0f (Michal Marek 2015-03-11 11:01:01 +0100 37) $(call filechk,offsets,__ASM_OFFSETS_H__)
86feeaa8120bb (Sam Ravnborg 2005-09-09 19:28:28 +0200 38)
c53aeca059c4d (Sam Ravnborg 2007-03-27 22:50:29 +0200 39) #####
01d509a48b467 (Masahiro Yamada 2019-02-19 18:33:03 +0900 40) # Check for missing system calls
c53aeca059c4d (Sam Ravnborg 2007-03-27 22:50:29 +0200 41)
5f2fb52fac15a (Masahiro Yamada 2020-02-02 01:49:24 +0900 42) always-y += missing-syscalls
5f7efb4c6da9f (Arnaud Lacombe 2011-08-24 21:03:30 -0400 43)
c53aeca059c4d (Sam Ravnborg 2007-03-27 22:50:29 +0200 44) quiet_cmd_syscalls = CALL $<
44656fa03926e (David Daney 2011-11-08 10:20:10 -0800 45) cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
c53aeca059c4d (Sam Ravnborg 2007-03-27 22:50:29 +0200 46)
5f7efb4c6da9f (Arnaud Lacombe 2011-08-24 21:03:30 -0400 47) missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
c53aeca059c4d (Sam Ravnborg 2007-03-27 22:50:29 +0200 48) $(call cmd,syscalls)
1cdf25d704f79 (Christoph Lameter 2008-04-28 02:12:44 -0700 49)
f197d75fcad12 (Kieran Bingham 2016-05-23 16:24:40 -0700 50) #####
ffd602eb4693b (Linus Torvalds 2019-03-10 17:48:21 -0700 51) # Check atomic headers are up-to-date
8d32588077bdc (Mark Rutland 2018-09-04 11:48:29 +0100 52)
5f2fb52fac15a (Masahiro Yamada 2020-02-02 01:49:24 +0900 53) always-y += old-atomics
8d32588077bdc (Mark Rutland 2018-09-04 11:48:29 +0100 54)
8d32588077bdc (Mark Rutland 2018-09-04 11:48:29 +0100 55) quiet_cmd_atomics = CALL $<
bdf37b4dd35d2 (Borislav Petkov 2018-11-08 20:41:28 +0100 56) cmd_atomics = $(CONFIG_SHELL) $<
8d32588077bdc (Mark Rutland 2018-09-04 11:48:29 +0100 57)
8d32588077bdc (Mark Rutland 2018-09-04 11:48:29 +0100 58) old-atomics: scripts/atomic/check-atomics.sh FORCE
8d32588077bdc (Mark Rutland 2018-09-04 11:48:29 +0100 59) $(call cmd,atomics)