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)
commitf3dfd599af993385b40fc7a1c947afc12729bc4d
tree85e23dfa92889456a445b1ba2e0c961d5f8fe774
parentb2249fbd7cbc6741e64474d8617453d20acc12e6
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>
include/linux/Kbuild