UAPI: Fix conditional header installation handling (notably kvm_para.h on m68k)
authorDavid Howells <dhowells@redhat.com>
Thu, 4 Oct 2012 17:16:47 +0000 (18:16 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 4 Oct 2012 17:16:47 +0000 (18:16 +0100)
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>
include/linux/Kbuild

index e149e8b..aab5c85 100644 (file)
@@ -21,18 +21,15 @@ header-y += usb/
 header-y += wimax/
 
 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
-                 $(srctree)/include/asm-$(SRCARCH)/a.out.h \
-                 $(INSTALL_HDR_PATH)/include/asm-*/a.out.h),)
+                 $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),)
 header-y += a.out.h
 endif
 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
-                 $(srctree)/include/asm-$(SRCARCH)/kvm.h \
-                 $(INSTALL_HDR_PATH)/include/asm-*/kvm.h),)
+                 $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h),)
 header-y += kvm.h
 endif
 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),)
+                 $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h),)
 header-y += kvm_para.h
 endif