kbuild: force all architectures except um to include mandatory-y

Currently, every arch/*/include/uapi/asm/Kbuild explicitly includes
the common Kbuild.asm file. Factor out the duplicated include directives
to scripts/Makefile.asm-generic so that no architecture would opt out
of the mandatory-y mechanism.

um is not forced to include mandatory-y since it is a very exceptional
case which does not support UAPI.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Changed files
+18 -47
Documentation
kbuild
arch
alpha
include
uapi
asm
arc
include
uapi
asm
arm
include
uapi
asm
arm64
include
uapi
asm
c6x
include
uapi
asm
csky
include
uapi
asm
h8300
include
uapi
asm
hexagon
include
uapi
asm
ia64
include
uapi
asm
m68k
include
uapi
asm
microblaze
include
uapi
asm
mips
include
uapi
asm
nds32
include
uapi
asm
nios2
include
uapi
asm
openrisc
include
uapi
asm
parisc
include
uapi
asm
powerpc
include
uapi
asm
riscv
include
uapi
asm
s390
include
uapi
asm
sh
include
uapi
asm
sparc
include
uapi
asm
unicore32
include
uapi
asm
x86
include
uapi
asm
xtensa
include
uapi
asm
include
asm-generic
uapi
asm-generic
scripts
+1 -1
Documentation/kbuild/makefiles.txt
··· 1274 1274 1275 1275 --- 7.4 mandatory-y 1276 1276 1277 - mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild.asm 1277 + mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild 1278 1278 to define the minimum set of ASM headers that all architectures must have. 1279 1279 1280 1280 This works like optional generic-y. If a mandatory header is missing
+4 -2
Makefile
··· 1098 1098 1099 1099 PHONY += asm-generic uapi-asm-generic 1100 1100 asm-generic: uapi-asm-generic 1101 - $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/asm 1101 + $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/asm \ 1102 + generic=include/asm-generic 1102 1103 uapi-asm-generic: 1103 - $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm 1104 + $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm \ 1105 + generic=include/uapi/asm-generic 1104 1106 1105 1107 PHONY += prepare-objtool 1106 1108 prepare-objtool: $(objtool_target)
-2
arch/alpha/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h
-2
arch/arc/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += kvm_para.h 4 2 generic-y += ucontext.h
-1
arch/arm/include/uapi/asm/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - include include/uapi/asm-generic/Kbuild.asm 3 2 4 3 generated-y += unistd-common.h 5 4 generated-y += unistd-oabi.h
-1
arch/arm64/include/uapi/asm/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - include include/uapi/asm-generic/Kbuild.asm 3 2 4 3 generic-y += kvm_para.h
-2
arch/c6x/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += kvm_para.h 4 2 generic-y += ucontext.h
-2
arch/csky/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += ucontext.h
-2
arch/h8300/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += kvm_para.h 4 2 generic-y += ucontext.h
-2
arch/hexagon/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += ucontext.h
-2
arch/ia64/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_64.h 4 2 generic-y += kvm_para.h
-2
arch/m68k/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generic-y += kvm_para.h
-2
arch/microblaze/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generic-y += kvm_para.h 5 3 generic-y += ucontext.h
-2
arch/mips/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_n32.h 4 2 generated-y += unistd_n64.h 5 3 generated-y += unistd_o32.h
-2
arch/nds32/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += ucontext.h
-2
arch/nios2/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += kvm_para.h 4 2 generic-y += ucontext.h
-2
arch/openrisc/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += kvm_para.h 4 2 generic-y += ucontext.h
-2
arch/parisc/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generated-y += unistd_64.h 5 3 generic-y += kvm_para.h
-2
arch/powerpc/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generated-y += unistd_64.h
-1
arch/riscv/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm
-1
arch/s390/include/uapi/asm/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - include include/uapi/asm-generic/Kbuild.asm 3 2 4 3 generated-y += unistd_32.h 5 4 generated-y += unistd_64.h
-1
arch/sh/include/uapi/asm/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - include include/uapi/asm-generic/Kbuild.asm 3 2 4 3 generated-y += unistd_32.h 5 4 generic-y += kvm_para.h
-2
arch/sparc/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generated-y += unistd_64.h
-2
arch/unicore32/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generic-y += kvm_para.h 4 2 generic-y += ucontext.h
-2
arch/x86/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generated-y += unistd_64.h 5 3 generated-y += unistd_x32.h
-2
arch/xtensa/include/uapi/asm/Kbuild
··· 1 - include include/uapi/asm-generic/Kbuild.asm 2 - 3 1 generated-y += unistd_32.h 4 2 generic-y += kvm_para.h
+5
include/asm-generic/Kbuild
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + # 3 + # asm headers that all architectures except um should have 4 + # (This file is not included when SRCARCH=um since UML borrows several 5 + # asm headers from the host architecutre.)
+3 -1
include/uapi/asm-generic/Kbuild.asm include/uapi/asm-generic/Kbuild
··· 1 + # SPDX-License-Identifier: GPL-2.0 1 2 # 2 3 # Headers that are mandatory in usr/include/asm/ 3 - # 4 + # (This file is not included when SRCARCH=um since UML does not support UAPI.) 5 + 4 6 mandatory-y += auxvec.h 5 7 mandatory-y += bitsperlong.h 6 8 mandatory-y += bpf_perf_event.h
+5
scripts/Makefile.asm-generic
··· 12 12 src := $(subst /generated,,$(obj)) 13 13 -include $(src)/Kbuild 14 14 15 + # $(generic)/Kbuild lists mandatory-y. Exclude um since it is a special case. 16 + ifneq ($(SRCARCH),um) 17 + include $(generic)/Kbuild 18 + endif 19 + 15 20 include scripts/Kbuild.include 16 21 17 22 redundant := $(filter $(mandatory-y) $(generated-y), $(generic-y))