Commit f3dfd599af993385b40fc7a1c947afc12729bc4d

Authored by David Howells
1 parent b2249fbd7c

UAPI: Fix conditional header installation handling (notably kvm_para.h on m68k)

The m68k arch doesn't have a kvm_para.h (unlike most or maybe all other
arches), but there is one in asm-generic.  This means that:

	ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
			  $(srctree)/include/asm-$(SRCARCH)/kvm_para.h \
			  $(INSTALL_HDR_PATH)/include/asm-*/kvm_para.h),)
	header-y += kvm_para.h
	endif

gets it wrong because it is invoked twice during the header installation - and
on the second occasion, asm-generic/kvm_para.h has been installed in usr/,
thus triggering a attempt to install asm-m68k/kvm_para.h which will fail.

There are three headers with this sort of conditional logic: a.out.h, kvm.h
and kvm_para.h.  For all three of them, change the logic to be something like:

	ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
			  $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h),)

which finds the header in only the two places it should be found, and doesn't
get incorrectly triggered by the installation of asm-generic's version.

Signed-off-by: David Howells <dhowells@redhat.com>

Showing 1 changed file with 3 additions and 6 deletions Side-by-side Diff

include/linux/Kbuild
... ... @@ -21,18 +21,15 @@
21 21 header-y += wimax/
22 22  
23 23 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
24   - $(srctree)/include/asm-$(SRCARCH)/a.out.h \
25   - $(INSTALL_HDR_PATH)/include/asm-*/a.out.h),)
  24 + $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),)
26 25 header-y += a.out.h
27 26 endif
28 27 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
29   - $(srctree)/include/asm-$(SRCARCH)/kvm.h \
30   - $(INSTALL_HDR_PATH)/include/asm-*/kvm.h),)
  28 + $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h),)
31 29 header-y += kvm.h
32 30 endif
33 31 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
34   - $(srctree)/include/asm-$(SRCARCH)/kvm_para.h \
35   - $(INSTALL_HDR_PATH)/include/asm-*/kvm_para.h),)
  32 + $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h),)
36 33 header-y += kvm_para.h
37 34 endif
38 35