Message ID | 1483454144-10519-1-git-send-email-nicolas.dichtel@6wind.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
From: Nicolas Dichtel <nicolas.dichtel@6wind.com> Date: Tue, 3 Jan 2017 15:35:44 +0100 > Regularly, when a new header is created in include/uapi/, the developer > forgets to add it in the corresponding Kbuild file. This error is usually > detected after the release is out. > > In fact, all headers under include/uapi/ should be exported, so let's > use wildcards. > > After this patch, the following files, which were not exported, are now > exported: ... > > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: David S. Miller <davem@davemloft.net> -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tuesday, January 3, 2017 3:35:44 PM CET Nicolas Dichtel wrote: > Regularly, when a new header is created in include/uapi/, the developer > forgets to add it in the corresponding Kbuild file. This error is usually > detected after the release is out. > > In fact, all headers under include/uapi/ should be exported, so let's > use wildcards. I think the idea makes a lot of sense: if a header is in uapi, we should really export it. However, using a wildcard expression seems a bit backwards here, I think we should make this implicit and not have the Kbuild file at all. The "header-y" syntax was originally added back when the uapi headers were mixed with the internal headers in the same directory. After David Howells introduced the separate directory for uapi, it has become a bit redundant. Can you try to modify scripts/Makefile.headersinst instead so we can simply remove the Kbuild files entirely? Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Le 03/01/2017 à 22:37, Arnd Bergmann a écrit : > On Tuesday, January 3, 2017 3:35:44 PM CET Nicolas Dichtel wrote: >> Regularly, when a new header is created in include/uapi/, the developer >> forgets to add it in the corresponding Kbuild file. This error is usually >> detected after the release is out. >> >> In fact, all headers under include/uapi/ should be exported, so let's >> use wildcards. > > I think the idea makes a lot of sense: if a header is in uapi, we should > really export it. However, using a wildcard expression seems a bit > backwards here, I think we should make this implicit and not have the > Kbuild file at all. > > The "header-y" syntax was originally added back when the uapi headers > were mixed with the internal headers in the same directory. After > David Howells introduced the separate directory for uapi, it has > become a bit redundant. Ok, thank you for the explanation, I was wondering why those Kbuild files were needed. > > Can you try to modify scripts/Makefile.headersinst instead so we > can simply remove the Kbuild files entirely? I will try something. Regards, Nicolas -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Here is the v2 of this series. The first 5 patches are just cleanup: some exported headers were still under a non-uapi directory. The patch 6 was spotted by code review: there is no in-tree user of this functionality. The last patch remove the use of header-y. Now all files under an uapi directory are exported. asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm only, but there is two exceptions: - cris which exports arch/cris/include/uapi/arch-v[10|32]; - tile which exports arch/tile/include/uapi/arch. Because I don't know if the output of 'make headers_install_all' can be changed, I introduce subdir-y in Kbuild file. The headers_install_all target copies all asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not prefixed (they are put asis in usr/include/). If it's acceptable to modify the output of 'make headers_install_all' to export asm headers in usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports everything under arch/<arch>/include/uapi/. Note also that exported files for asm are a mix of files listed by: - include/uapi/asm-generic/Kbuild.asm; - arch/x86/include/uapi/asm/Kbuild; - arch/x86/include/asm/Kbuild. This complicates a lot the processing (arch/x86/include/asm/Kbuild is also used by scripts/Makefile.asm-generic). This series has been tested with a 'make headers_install' on x86 and a 'make headers_install_all'. I've checked the result of both commands. This patch is built against linus tree. I don't know if it should be made against antoher tree. Comments are welcomed, Nicolas -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday, January 6, 2017 10:43:52 AM CET Nicolas Dichtel wrote: > Here is the v2 of this series. The first 5 patches are just cleanup: some > exported headers were still under a non-uapi directory. Since this is meant as a cleanup, I commented on this to point out a cleaner way to do the same. > The patch 6 was spotted by code review: there is no in-tree user of this > functionality. > The last patch remove the use of header-y. Now all files under an uapi > directory are exported. Very nice! > asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm > only, but there is two exceptions: > - cris which exports arch/cris/include/uapi/arch-v[10|32]; This is interesting, though not your problem. Maybe someone who understands cris better can comment on this: How is the decision made about which of the arch/user.h headers gets used? I couldn't find that in the sources, but it appears to be based on kernel compile-time settings, which is wrong for user space header files that should be independent of the kernel config. > - tile which exports arch/tile/include/uapi/arch. > Because I don't know if the output of 'make headers_install_all' can be changed, > I introduce subdir-y in Kbuild file. The headers_install_all target copies all > asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but > arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not > prefixed (they are put asis in usr/include/). If it's acceptable to modify the > output of 'make headers_install_all' to export asm headers in > usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports > everything under arch/<arch>/include/uapi/. I don't know if anyone still uses "make headers_install_all", I suspect distros these days all use "make headers_install", so it probably doesn't matter much. In case of cris, it should be easy enough to move all the contents of the uapi/arch-*/*.h headers into the respective uapi/asm/*.h headers, they only seem to be referenced from there. For tile, I suspect that would not work as the arch/*.h headers are apparently defined as interfaces for both user space and kernel. > Note also that exported files for asm are a mix of files listed by: > - include/uapi/asm-generic/Kbuild.asm; > - arch/x86/include/uapi/asm/Kbuild; > - arch/x86/include/asm/Kbuild. > This complicates a lot the processing (arch/x86/include/asm/Kbuild is also > used by scripts/Makefile.asm-generic). > > This series has been tested with a 'make headers_install' on x86 and a > 'make headers_install_all'. I've checked the result of both commands. > > This patch is built against linus tree. I don't know if it should be > made against antoher tree. The series should probably get merged through the kbuild tree, but testing it on mainline is fine here. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Jan 09, 2017 at 12:33:58PM +0100, Arnd Bergmann wrote: > On Friday, January 6, 2017 10:43:52 AM CET Nicolas Dichtel wrote: > > Here is the v2 of this series. The first 5 patches are just cleanup: some > > exported headers were still under a non-uapi directory. > > Since this is meant as a cleanup, I commented on this to point out a cleaner > way to do the same. > > > The patch 6 was spotted by code review: there is no in-tree user of this > > functionality. > > The last patch remove the use of header-y. Now all files under an uapi > > directory are exported. > > Very nice! > > > asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm > > only, but there is two exceptions: > > - cris which exports arch/cris/include/uapi/arch-v[10|32]; > > This is interesting, though not your problem. Maybe someone who understands > cris better can comment on this: How is the decision made about which of > the arch/user.h headers gets used? I couldn't find that in the sources, > but it appears to be based on kernel compile-time settings, which is > wrong for user space header files that should be independent of the kernel > config. I believe it's since the CRISv10 and CRISv32 are very different beasts, and that is selected via kernel config... This part of the CRIS port has been transformed a couple of times from the original layout without uapi, and there's still some legacy silliness, where some files might have been exported but never used from userspace except for some corner cases. > > - tile which exports arch/tile/include/uapi/arch. > > Because I don't know if the output of 'make headers_install_all' can be changed, > > I introduce subdir-y in Kbuild file. The headers_install_all target copies all > > asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but > > arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not > > prefixed (they are put asis in usr/include/). If it's acceptable to modify the > > output of 'make headers_install_all' to export asm headers in > > usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports > > everything under arch/<arch>/include/uapi/. > > I don't know if anyone still uses "make headers_install_all", I suspect > distros these days all use "make headers_install", so it probably > doesn't matter much. > > In case of cris, it should be easy enough to move all the contents of the > uapi/arch-*/*.h headers into the respective uapi/asm/*.h headers, they > only seem to be referenced from there. This would seem to be a reasonable change. > For tile, I suspect that would not work as the arch/*.h headers are > apparently defined as interfaces for both user space and kernel. > > > Note also that exported files for asm are a mix of files listed by: > > - include/uapi/asm-generic/Kbuild.asm; > > - arch/x86/include/uapi/asm/Kbuild; > > - arch/x86/include/asm/Kbuild. > > This complicates a lot the processing (arch/x86/include/asm/Kbuild is also > > used by scripts/Makefile.asm-generic). > > > > This series has been tested with a 'make headers_install' on x86 and a > > 'make headers_install_all'. I've checked the result of both commands. > > > > This patch is built against linus tree. I don't know if it should be > > made against antoher tree. > > The series should probably get merged through the kbuild tree, but testing > it on mainline is fine here. > > Arnd /^JN - Jesper Nilsson
Here is the v3 of this series. The first 5 patches are just cleanup: some exported headers were still under a non-uapi directory or (x86 case) were wrongly exported. The patch 6 was spotted by code review: there is no in-tree user of this functionality. Patches 7 and 8 remove the need to list explicitly headers. Now all files under an uapi directory are exported. This series has been tested with a 'make headers_install' on x86 and a 'make headers_install_all'. I've checked the result of both commands. This patch is built against linus tree. If I must rebase it against the kbuild tree, just tell me ;-) v2 -> v3: - patch #1: remove arch/arm/include/asm/types.h - patch #2: remove arch/h8300/include/asm/bitsperlong.h - patch #3: remove arch/nios2/include/uapi/asm/setup.h - patch #4: don't export msr-index.h - patch #5: fix a typo: s/unput-files3-name/input-files3-name - patch #6: no change - patch #7: fix include/uapi/asm-generic/Kbuild.asm by introducing mandatory-y - add patch #8 v1 -> v2: - add patch #1 to #6 - patch #7: remove use of header-y Comments are welcomed, Nicolas -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Please, do not remove the email subject when you reply. I restore it to ease the thread follow-up. Le 13/01/2017 à 16:36, David Howells a écrit : > Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote: > >> This header file is exported, thus move it to uapi. > > Exported how? It is listed in include/uapi/asm-generic/Kbuild.asm, which is included by arch/arm/include/uapi/asm/Kbuild. You can also have a look at patch #5 to see why it was exported even if it was not in an uapi directory. Regards, Nicolas -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Le 13/01/2017 à 16:43, David Howells a écrit : >> -header-y += msr-index.h > > I see it on my desktop as /usr/include/asm/msr-index.h and it's been there at > least four years - and as such it's part of the UAPI. I don't think you can > remove it unless you can guarantee there are no userspace users. I keep it in the v2 of the series, but the maintainer, Borislav Petkov, asks me to un-export it. I will follow the maintainer decision. Regards, Nicolas -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Jan 13, 2017 at 05:01:01PM +0100, Nicolas Dichtel wrote: > Please, do not remove the email subject when you reply. I restore it to > ease the thread follow-up. I mentioned it to David, and he says it's because the long list of recipients is breaking his mailer. I've already posed the question about whether that's exploitable! > Le 13/01/2017 à 16:36, David Howells a écrit : > > Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote: > > > >> This header file is exported, thus move it to uapi. > > > > Exported how? > > It is listed in include/uapi/asm-generic/Kbuild.asm, which is included by > arch/arm/include/uapi/asm/Kbuild. We really should not be installing non-uapi header files to userland under _any_ circumstance - this to me sounds like a bug in kbuild. The assumption is that headers outside of uapi directories are not part of the user visible API, and so can be freely modified - which in the presence of this bug is untrue. However, as it's happening, and this header has been there since 2013 (commit 09096f6a0ee2 - "ARM: 7822/1: add workaround for ambiguous C99 stdint.h types") it's now well and truely part of the user API whether we intended it to be or not, so your patch looks to me like the correct thing to do. I think it needs further evaluation to make sure kbuild isn't going to do something else silly, like subsitute include/asm-generic/types.h for the now missing arch/arm/include/asm/types.h I wonder how many more headers are unintentionally exported. ... what a mess. :(
On Fri, Jan 13, 2017 at 05:08:34PM +0100, Nicolas Dichtel wrote: > Le 13/01/2017 à 16:43, David Howells a écrit : > >> -header-y += msr-index.h > > > > I see it on my desktop as /usr/include/asm/msr-index.h and it's been there at > > least four years - and as such it's part of the UAPI. I don't think you can > > remove it unless you can guarantee there are no userspace users. > I keep it in the v2 of the series, but the maintainer, Borislav Petkov, asks me > to un-export it. > > I will follow the maintainer decision. I'm not the maintainer. I simply think that exporting that file was wrong because it if we change something in it, we will break userspace. And that should not happen - if userspace needs MSRs, it should do its own defines.
diff --git a/include/uapi/asm-generic/Kbuild b/include/uapi/asm-generic/Kbuild index b73de7bb7a62..8e52cdc3d941 100644 --- a/include/uapi/asm-generic/Kbuild +++ b/include/uapi/asm-generic/Kbuild @@ -1,36 +1,2 @@ # UAPI Header export list -header-y += auxvec.h -header-y += bitsperlong.h -header-y += errno-base.h -header-y += errno.h -header-y += fcntl.h -header-y += int-l64.h -header-y += int-ll64.h -header-y += ioctl.h -header-y += ioctls.h -header-y += ipcbuf.h -header-y += kvm_para.h -header-y += mman-common.h -header-y += mman.h -header-y += msgbuf.h -header-y += param.h -header-y += poll.h -header-y += posix_types.h -header-y += resource.h -header-y += sembuf.h -header-y += setup.h -header-y += shmbuf.h -header-y += shmparam.h -header-y += siginfo.h -header-y += signal-defs.h -header-y += signal.h -header-y += socket.h -header-y += sockios.h -header-y += stat.h -header-y += statfs.h -header-y += swab.h -header-y += termbits.h -header-y += termios.h -header-y += types.h -header-y += ucontext.h -header-y += unistd.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/asm-generic/*.h)) diff --git a/include/uapi/drm/Kbuild b/include/uapi/drm/Kbuild index 9355dd8eff3b..75f4cde6d9ba 100644 --- a/include/uapi/drm/Kbuild +++ b/include/uapi/drm/Kbuild @@ -1,22 +1,2 @@ # UAPI Header export list -header-y += drm.h -header-y += drm_fourcc.h -header-y += drm_mode.h -header-y += drm_sarea.h -header-y += amdgpu_drm.h -header-y += exynos_drm.h -header-y += i810_drm.h -header-y += i915_drm.h -header-y += mga_drm.h -header-y += nouveau_drm.h -header-y += qxl_drm.h -header-y += r128_drm.h -header-y += radeon_drm.h -header-y += savage_drm.h -header-y += sis_drm.h -header-y += tegra_drm.h -header-y += via_drm.h -header-y += vmwgfx_drm.h -header-y += msm_drm.h -header-y += vc4_drm.h -header-y += virtgpu_drm.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/drm/*.h)) diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index a8b93e685239..9d2d4ebc1e5c 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild @@ -25,458 +25,19 @@ header-y += wimax/ genhdr-y += version.h -ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h \ - $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h),) -header-y += a.out.h -endif - -header-y += acct.h -header-y += adb.h -header-y += adfs_fs.h -header-y += affs_hardblocks.h -header-y += agpgart.h -header-y += aio_abi.h -header-y += am437x-vpfe.h -header-y += apm_bios.h -header-y += arcfb.h -header-y += atalk.h -header-y += atmapi.h -header-y += atmarp.h -header-y += atmbr2684.h -header-y += atmclip.h -header-y += atmdev.h -header-y += atm_eni.h -header-y += atm.h -header-y += atm_he.h -header-y += atm_idt77105.h -header-y += atmioc.h -header-y += atmlec.h -header-y += atmmpc.h -header-y += atm_nicstar.h -header-y += atmppp.h -header-y += atmsap.h -header-y += atmsvc.h -header-y += atm_tcp.h -header-y += atm_zatm.h -header-y += audit.h -header-y += auto_fs4.h -header-y += auto_fs.h -header-y += auxvec.h -header-y += ax25.h -header-y += b1lli.h -header-y += baycom.h -header-y += bcm933xx_hcs.h -header-y += bfs_fs.h -header-y += binfmts.h -header-y += blkpg.h -header-y += blktrace_api.h -header-y += blkzoned.h -header-y += bpf_common.h -header-y += bpf_perf_event.h -header-y += bpf.h -header-y += bpqether.h -header-y += bsg.h -header-y += bt-bmc.h -header-y += btrfs.h -header-y += can.h -header-y += capability.h -header-y += capi.h -header-y += cciss_defs.h -header-y += cciss_ioctl.h -header-y += cdrom.h -header-y += cec.h -header-y += cec-funcs.h -header-y += cgroupstats.h -header-y += chio.h -header-y += cm4000_cs.h -header-y += cn_proc.h -header-y += coda.h -header-y += coda_psdev.h -header-y += coff.h -header-y += connector.h -header-y += const.h -header-y += cramfs_fs.h -header-y += cuda.h -header-y += cyclades.h -header-y += cycx_cfm.h -header-y += dcbnl.h -header-y += dccp.h -header-y += devlink.h -header-y += dlmconstants.h -header-y += dlm_device.h -header-y += dlm.h -header-y += dlm_netlink.h -header-y += dlm_plock.h -header-y += dm-ioctl.h -header-y += dm-log-userspace.h -header-y += dn.h -header-y += dqblk_xfs.h -header-y += edd.h -header-y += efs_fs_sb.h -header-y += elfcore.h -header-y += elf-em.h -header-y += elf-fdpic.h -header-y += elf.h -header-y += errno.h -header-y += errqueue.h -header-y += ethtool.h -header-y += eventpoll.h -header-y += fadvise.h -header-y += falloc.h -header-y += fanotify.h -header-y += fb.h -header-y += fcntl.h -header-y += fd.h -header-y += fdreg.h -header-y += fib_rules.h -header-y += fiemap.h -header-y += filter.h -header-y += firewire-cdev.h -header-y += firewire-constants.h -header-y += flat.h -header-y += fou.h -header-y += fs.h -header-y += fsl_hypervisor.h -header-y += fuse.h -header-y += futex.h -header-y += gameport.h -header-y += genetlink.h -header-y += gen_stats.h -header-y += gfs2_ondisk.h -header-y += gigaset_dev.h -header-y += gpio.h -header-y += gsmmux.h -header-y += gtp.h -header-y += hdlcdrv.h -header-y += hdlc.h -header-y += hdreg.h -header-y += hiddev.h -header-y += hid.h -header-y += hidraw.h -header-y += hpet.h -header-y += hsr_netlink.h -header-y += hyperv.h -header-y += hysdn_if.h -header-y += i2c-dev.h -header-y += i2c.h -header-y += i2o-dev.h -header-y += i8k.h -header-y += icmp.h -header-y += icmpv6.h -header-y += if_addr.h -header-y += if_addrlabel.h -header-y += if_alg.h -header-y += if_arcnet.h -header-y += if_arp.h -header-y += if_bonding.h -header-y += if_bridge.h -header-y += if_cablemodem.h -header-y += if_eql.h -header-y += if_ether.h -header-y += if_fc.h -header-y += if_fddi.h -header-y += if_frad.h -header-y += if.h -header-y += if_hippi.h -header-y += if_infiniband.h -header-y += if_link.h -header-y += if_ltalk.h -header-y += if_macsec.h -header-y += if_packet.h -header-y += if_phonet.h -header-y += if_plip.h -header-y += if_ppp.h -header-y += if_pppol2tp.h -header-y += if_pppox.h -header-y += if_slip.h -header-y += if_team.h -header-y += if_tun.h -header-y += if_tunnel.h -header-y += if_vlan.h -header-y += if_x25.h -header-y += igmp.h -header-y += ila.h -header-y += in6.h -header-y += inet_diag.h -header-y += in.h -header-y += inotify.h -header-y += input.h -header-y += input-event-codes.h -header-y += in_route.h -header-y += ioctl.h -header-y += ip6_tunnel.h -header-y += ipc.h -header-y += ip.h -header-y += ipmi.h -header-y += ipmi_msgdefs.h -header-y += ipsec.h -header-y += ipv6.h -header-y += ipv6_route.h -header-y += ip_vs.h -header-y += ipx.h -header-y += irda.h -header-y += irqnr.h -header-y += isdn_divertif.h -header-y += isdn.h -header-y += isdnif.h -header-y += isdn_ppp.h -header-y += iso_fs.h -header-y += ivtvfb.h -header-y += ivtv.h -header-y += ixjuser.h -header-y += jffs2.h -header-y += joystick.h -header-y += kcmp.h -header-y += kdev_t.h -header-y += kd.h -header-y += kernelcapi.h -header-y += kernel.h -header-y += kernel-page-flags.h -header-y += kexec.h -header-y += keyboard.h -header-y += keyctl.h +tmphdr-y := $(notdir $(wildcard $(srctree)/include/uapi/linux/*.h)) -ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h \ - $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h),) -header-y += kvm.h +ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h \ + $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h),) +tmphdr-y = $(filter-out a.out.h $(tmphdr-y)) endif - - -ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h \ - $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h),) -header-y += kvm_para.h +ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h \ + $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h),) +tmphdr-y = $(filter-out kvm.h $(tmphdr-y)) +endif +ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h \ + $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h),) +tmphdr-y = $(filter-out kvm_para.h $(tmphdr-y)) endif -header-y += hw_breakpoint.h -header-y += l2tp.h -header-y += libc-compat.h -header-y += lirc.h -header-y += limits.h -header-y += llc.h -header-y += loop.h -header-y += lp.h -header-y += lwtunnel.h -header-y += magic.h -header-y += major.h -header-y += map_to_7segment.h -header-y += matroxfb.h -header-y += mdio.h -header-y += media.h -header-y += media-bus-format.h -header-y += mei.h -header-y += membarrier.h -header-y += memfd.h -header-y += mempolicy.h -header-y += meye.h -header-y += mic_common.h -header-y += mic_ioctl.h -header-y += mii.h -header-y += minix_fs.h -header-y += mman.h -header-y += mmtimer.h -header-y += mpls.h -header-y += mpls_iptunnel.h -header-y += mqueue.h -header-y += mroute6.h -header-y += mroute.h -header-y += msdos_fs.h -header-y += msg.h -header-y += mtio.h -header-y += nbd.h -header-y += ncp_fs.h -header-y += ncp.h -header-y += ncp_mount.h -header-y += ncp_no.h -header-y += ndctl.h -header-y += neighbour.h -header-y += netconf.h -header-y += netdevice.h -header-y += net_dropmon.h -header-y += netfilter_arp.h -header-y += netfilter_bridge.h -header-y += netfilter_decnet.h -header-y += netfilter.h -header-y += netfilter_ipv4.h -header-y += netfilter_ipv6.h -header-y += net.h -header-y += netlink_diag.h -header-y += netlink.h -header-y += netrom.h -header-y += net_namespace.h -header-y += net_tstamp.h -header-y += nfc.h -header-y += nfs2.h -header-y += nfs3.h -header-y += nfs4.h -header-y += nfs4_mount.h -header-y += nfsacl.h -header-y += nfs_fs.h -header-y += nfs.h -header-y += nfs_idmap.h -header-y += nfs_mount.h -header-y += nl80211.h -header-y += n_r3964.h -header-y += nubus.h -header-y += nvme_ioctl.h -header-y += nvram.h -header-y += omap3isp.h -header-y += omapfb.h -header-y += oom.h -header-y += openvswitch.h -header-y += packet_diag.h -header-y += param.h -header-y += parport.h -header-y += patchkey.h -header-y += pci.h -header-y += pci_regs.h -header-y += perf_event.h -header-y += personality.h -header-y += pfkeyv2.h -header-y += pg.h -header-y += phantom.h -header-y += phonet.h -header-y += pktcdvd.h -header-y += pkt_cls.h -header-y += pkt_sched.h -header-y += pmu.h -header-y += poll.h -header-y += posix_acl.h -header-y += posix_acl_xattr.h -header-y += posix_types.h -header-y += ppdev.h -header-y += ppp-comp.h -header-y += ppp_defs.h -header-y += ppp-ioctl.h -header-y += pps.h -header-y += prctl.h -header-y += psci.h -header-y += ptp_clock.h -header-y += ptrace.h -header-y += qnx4_fs.h -header-y += qnxtypes.h -header-y += quota.h -header-y += radeonfb.h -header-y += random.h -header-y += raw.h -header-y += rds.h -header-y += reboot.h -header-y += reiserfs_fs.h -header-y += reiserfs_xattr.h -header-y += resource.h -header-y += rfkill.h -header-y += rio_cm_cdev.h -header-y += rio_mport_cdev.h -header-y += romfs_fs.h -header-y += rose.h -header-y += route.h -header-y += rtc.h -header-y += rtnetlink.h -header-y += scc.h -header-y += sched.h -header-y += scif_ioctl.h -header-y += screen_info.h -header-y += sctp.h -header-y += sdla.h -header-y += seccomp.h -header-y += securebits.h -header-y += selinux_netlink.h -header-y += sem.h -header-y += serial_core.h -header-y += serial.h -header-y += serial_reg.h -header-y += serio.h -header-y += shm.h -header-y += signalfd.h -header-y += signal.h -header-y += smiapp.h -header-y += snmp.h -header-y += sock_diag.h -header-y += socket.h -header-y += sockios.h -header-y += sonet.h -header-y += sonypi.h -header-y += soundcard.h -header-y += sound.h -header-y += stat.h -header-y += stddef.h -header-y += string.h -header-y += suspend_ioctls.h -header-y += swab.h -header-y += synclink.h -header-y += sync_file.h -header-y += sysctl.h -header-y += sysinfo.h -header-y += target_core_user.h -header-y += taskstats.h -header-y += tcp.h -header-y += tcp_metrics.h -header-y += telephony.h -header-y += termios.h -header-y += thermal.h -header-y += time.h -header-y += times.h -header-y += timex.h -header-y += tiocl.h -header-y += tipc_config.h -header-y += tipc_netlink.h -header-y += tipc.h -header-y += toshiba.h -header-y += tty_flags.h -header-y += tty.h -header-y += types.h -header-y += udf_fs_i.h -header-y += udp.h -header-y += uhid.h -header-y += uinput.h -header-y += uio.h -header-y += uleds.h -header-y += ultrasound.h -header-y += un.h -header-y += unistd.h -header-y += unix_diag.h -header-y += usbdevice_fs.h -header-y += usbip.h -header-y += utime.h -header-y += utsname.h -header-y += uuid.h -header-y += uvcvideo.h -header-y += v4l2-common.h -header-y += v4l2-controls.h -header-y += v4l2-dv-timings.h -header-y += v4l2-mediabus.h -header-y += v4l2-subdev.h -header-y += veth.h -header-y += vfio.h -header-y += vhost.h -header-y += videodev2.h -header-y += virtio_9p.h -header-y += virtio_balloon.h -header-y += virtio_blk.h -header-y += virtio_config.h -header-y += virtio_console.h -header-y += virtio_gpu.h -header-y += virtio_ids.h -header-y += virtio_input.h -header-y += virtio_net.h -header-y += virtio_pci.h -header-y += virtio_ring.h -header-y += virtio_rng.h -header-y += virtio_scsi.h -header-y += virtio_types.h -header-y += virtio_vsock.h -header-y += virtio_crypto.h -header-y += vm_sockets.h -header-y += vt.h -header-y += vtpm_proxy.h -header-y += wait.h -header-y += wanrouter.h -header-y += watchdog.h -header-y += wimax.h -header-y += wireless.h -header-y += x25.h -header-y += xattr.h -header-y += xfrm.h -header-y += xilinx-v4l2-controls.h -header-y += zorro.h -header-y += zorro_ids.h -header-y += userfaultfd.h +header-y += $(tmphdr-y) diff --git a/include/uapi/linux/android/Kbuild b/include/uapi/linux/android/Kbuild index ca011eec252a..37a629f4746a 100644 --- a/include/uapi/linux/android/Kbuild +++ b/include/uapi/linux/android/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += binder.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/android/*.h)) diff --git a/include/uapi/linux/byteorder/Kbuild b/include/uapi/linux/byteorder/Kbuild index 619225b9ff2e..d6585c79597c 100644 --- a/include/uapi/linux/byteorder/Kbuild +++ b/include/uapi/linux/byteorder/Kbuild @@ -1,3 +1,2 @@ # UAPI Header export list -header-y += big_endian.h -header-y += little_endian.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/byteorder/*.h)) diff --git a/include/uapi/linux/caif/Kbuild b/include/uapi/linux/caif/Kbuild index 43396612d3a3..0deed17a523c 100644 --- a/include/uapi/linux/caif/Kbuild +++ b/include/uapi/linux/caif/Kbuild @@ -1,3 +1,2 @@ # UAPI Header export list -header-y += caif_socket.h -header-y += if_caif.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/caif/*.h)) diff --git a/include/uapi/linux/can/Kbuild b/include/uapi/linux/can/Kbuild index 21c91bf25a29..0b7f01ea62d6 100644 --- a/include/uapi/linux/can/Kbuild +++ b/include/uapi/linux/can/Kbuild @@ -1,6 +1,2 @@ # UAPI Header export list -header-y += bcm.h -header-y += error.h -header-y += gw.h -header-y += netlink.h -header-y += raw.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/can/*.h)) diff --git a/include/uapi/linux/dvb/Kbuild b/include/uapi/linux/dvb/Kbuild index d40942cfc627..6845c2b87161 100644 --- a/include/uapi/linux/dvb/Kbuild +++ b/include/uapi/linux/dvb/Kbuild @@ -1,9 +1,2 @@ # UAPI Header export list -header-y += audio.h -header-y += ca.h -header-y += dmx.h -header-y += frontend.h -header-y += net.h -header-y += osd.h -header-y += version.h -header-y += video.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/dvb/*.h)) diff --git a/include/uapi/linux/hdlc/Kbuild b/include/uapi/linux/hdlc/Kbuild index 8c1d2cb75e33..529c2c839277 100644 --- a/include/uapi/linux/hdlc/Kbuild +++ b/include/uapi/linux/hdlc/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += ioctl.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/hdlc/*.h)) diff --git a/include/uapi/linux/hsi/Kbuild b/include/uapi/linux/hsi/Kbuild index a16a00544258..8f59b8f5f8e5 100644 --- a/include/uapi/linux/hsi/Kbuild +++ b/include/uapi/linux/hsi/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += hsi_char.h cs-protocol.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/hsi/*.h)) diff --git a/include/uapi/linux/iio/Kbuild b/include/uapi/linux/iio/Kbuild index 86f76d84c44f..aa6f9887cc4e 100644 --- a/include/uapi/linux/iio/Kbuild +++ b/include/uapi/linux/iio/Kbuild @@ -1,3 +1,2 @@ # UAPI Header export list -header-y += events.h -header-y += types.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/iio/*.h)) diff --git a/include/uapi/linux/isdn/Kbuild b/include/uapi/linux/isdn/Kbuild index 89e52850bf29..1e842431b0a8 100644 --- a/include/uapi/linux/isdn/Kbuild +++ b/include/uapi/linux/isdn/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += capicmd.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/isdn/*.h)) diff --git a/include/uapi/linux/mmc/Kbuild b/include/uapi/linux/mmc/Kbuild index 8c1d2cb75e33..02d0c0605d1a 100644 --- a/include/uapi/linux/mmc/Kbuild +++ b/include/uapi/linux/mmc/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += ioctl.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/mmc/*.h)) diff --git a/include/uapi/linux/netfilter/Kbuild b/include/uapi/linux/netfilter/Kbuild index 03f194aeadc5..a27c332c489c 100644 --- a/include/uapi/linux/netfilter/Kbuild +++ b/include/uapi/linux/netfilter/Kbuild @@ -1,89 +1,3 @@ # UAPI Header export list header-y += ipset/ -header-y += nf_conntrack_common.h -header-y += nf_conntrack_ftp.h -header-y += nf_conntrack_sctp.h -header-y += nf_conntrack_tcp.h -header-y += nf_conntrack_tuple_common.h -header-y += nf_log.h -header-y += nf_tables.h -header-y += nf_tables_compat.h -header-y += nf_nat.h -header-y += nfnetlink.h -header-y += nfnetlink_acct.h -header-y += nfnetlink_compat.h -header-y += nfnetlink_conntrack.h -header-y += nfnetlink_cthelper.h -header-y += nfnetlink_cttimeout.h -header-y += nfnetlink_log.h -header-y += nfnetlink_queue.h -header-y += x_tables.h -header-y += xt_AUDIT.h -header-y += xt_CHECKSUM.h -header-y += xt_CLASSIFY.h -header-y += xt_CONNMARK.h -header-y += xt_CONNSECMARK.h -header-y += xt_CT.h -header-y += xt_DSCP.h -header-y += xt_HMARK.h -header-y += xt_IDLETIMER.h -header-y += xt_LED.h -header-y += xt_LOG.h -header-y += xt_MARK.h -header-y += xt_NFLOG.h -header-y += xt_NFQUEUE.h -header-y += xt_RATEEST.h -header-y += xt_SECMARK.h -header-y += xt_SYNPROXY.h -header-y += xt_TCPMSS.h -header-y += xt_TCPOPTSTRIP.h -header-y += xt_TEE.h -header-y += xt_TPROXY.h -header-y += xt_addrtype.h -header-y += xt_bpf.h -header-y += xt_cgroup.h -header-y += xt_cluster.h -header-y += xt_comment.h -header-y += xt_connbytes.h -header-y += xt_connlabel.h -header-y += xt_connlimit.h -header-y += xt_connmark.h -header-y += xt_conntrack.h -header-y += xt_cpu.h -header-y += xt_dccp.h -header-y += xt_devgroup.h -header-y += xt_dscp.h -header-y += xt_ecn.h -header-y += xt_esp.h -header-y += xt_hashlimit.h -header-y += xt_helper.h -header-y += xt_ipcomp.h -header-y += xt_iprange.h -header-y += xt_ipvs.h -header-y += xt_l2tp.h -header-y += xt_length.h -header-y += xt_limit.h -header-y += xt_mac.h -header-y += xt_mark.h -header-y += xt_multiport.h -header-y += xt_nfacct.h -header-y += xt_osf.h -header-y += xt_owner.h -header-y += xt_physdev.h -header-y += xt_pkttype.h -header-y += xt_policy.h -header-y += xt_quota.h -header-y += xt_rateest.h -header-y += xt_realm.h -header-y += xt_recent.h -header-y += xt_rpfilter.h -header-y += xt_sctp.h -header-y += xt_set.h -header-y += xt_socket.h -header-y += xt_state.h -header-y += xt_statistic.h -header-y += xt_string.h -header-y += xt_tcpmss.h -header-y += xt_tcpudp.h -header-y += xt_time.h -header-y += xt_u32.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/netfilter/*.h)) diff --git a/include/uapi/linux/netfilter/ipset/Kbuild b/include/uapi/linux/netfilter/ipset/Kbuild index d2680423d9ab..b6dc00483ac2 100644 --- a/include/uapi/linux/netfilter/ipset/Kbuild +++ b/include/uapi/linux/netfilter/ipset/Kbuild @@ -1,5 +1,2 @@ # UAPI Header export list -header-y += ip_set.h -header-y += ip_set_bitmap.h -header-y += ip_set_hash.h -header-y += ip_set_list.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/netfilter/ipset/*.h)) diff --git a/include/uapi/linux/netfilter_arp/Kbuild b/include/uapi/linux/netfilter_arp/Kbuild index 62d5637cc0ac..63b09feaf660 100644 --- a/include/uapi/linux/netfilter_arp/Kbuild +++ b/include/uapi/linux/netfilter_arp/Kbuild @@ -1,3 +1,2 @@ # UAPI Header export list -header-y += arp_tables.h -header-y += arpt_mangle.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/netfilter_arp/*.h)) diff --git a/include/uapi/linux/netfilter_bridge/Kbuild b/include/uapi/linux/netfilter_bridge/Kbuild index 0fbad8ef96de..6bbfc5a91965 100644 --- a/include/uapi/linux/netfilter_bridge/Kbuild +++ b/include/uapi/linux/netfilter_bridge/Kbuild @@ -1,18 +1,2 @@ # UAPI Header export list -header-y += ebt_802_3.h -header-y += ebt_among.h -header-y += ebt_arp.h -header-y += ebt_arpreply.h -header-y += ebt_ip.h -header-y += ebt_ip6.h -header-y += ebt_limit.h -header-y += ebt_log.h -header-y += ebt_mark_m.h -header-y += ebt_mark_t.h -header-y += ebt_nat.h -header-y += ebt_nflog.h -header-y += ebt_pkttype.h -header-y += ebt_redirect.h -header-y += ebt_stp.h -header-y += ebt_vlan.h -header-y += ebtables.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/netfilter_bridge/*.h)) diff --git a/include/uapi/linux/netfilter_ipv4/Kbuild b/include/uapi/linux/netfilter_ipv4/Kbuild index ecb291df390e..273777606d02 100644 --- a/include/uapi/linux/netfilter_ipv4/Kbuild +++ b/include/uapi/linux/netfilter_ipv4/Kbuild @@ -1,10 +1,2 @@ # UAPI Header export list -header-y += ip_tables.h -header-y += ipt_CLUSTERIP.h -header-y += ipt_ECN.h -header-y += ipt_LOG.h -header-y += ipt_REJECT.h -header-y += ipt_TTL.h -header-y += ipt_ah.h -header-y += ipt_ecn.h -header-y += ipt_ttl.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/netfilter_ipv4/*.h)) diff --git a/include/uapi/linux/netfilter_ipv6/Kbuild b/include/uapi/linux/netfilter_ipv6/Kbuild index 75a668ca2353..2d3507f5b0aa 100644 --- a/include/uapi/linux/netfilter_ipv6/Kbuild +++ b/include/uapi/linux/netfilter_ipv6/Kbuild @@ -1,13 +1,2 @@ # UAPI Header export list -header-y += ip6_tables.h -header-y += ip6t_HL.h -header-y += ip6t_LOG.h -header-y += ip6t_NPT.h -header-y += ip6t_REJECT.h -header-y += ip6t_ah.h -header-y += ip6t_frag.h -header-y += ip6t_hl.h -header-y += ip6t_ipv6header.h -header-y += ip6t_mh.h -header-y += ip6t_opts.h -header-y += ip6t_rt.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/netfilter_ipv6/*.h)) diff --git a/include/uapi/linux/nfsd/Kbuild b/include/uapi/linux/nfsd/Kbuild index c11bc404053c..b66c1120b54f 100644 --- a/include/uapi/linux/nfsd/Kbuild +++ b/include/uapi/linux/nfsd/Kbuild @@ -1,6 +1,2 @@ # UAPI Header export list -header-y += cld.h -header-y += debug.h -header-y += export.h -header-y += nfsfh.h -header-y += stats.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/nfsd/*.h)) diff --git a/include/uapi/linux/raid/Kbuild b/include/uapi/linux/raid/Kbuild index e2c3d25405d7..409aa2ecd82f 100644 --- a/include/uapi/linux/raid/Kbuild +++ b/include/uapi/linux/raid/Kbuild @@ -1,3 +1,2 @@ # UAPI Header export list -header-y += md_p.h -header-y += md_u.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/raid/*.h)) diff --git a/include/uapi/linux/spi/Kbuild b/include/uapi/linux/spi/Kbuild index 0cc747eff165..8d269bd5e31a 100644 --- a/include/uapi/linux/spi/Kbuild +++ b/include/uapi/linux/spi/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += spidev.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/spi/*.h)) diff --git a/include/uapi/linux/sunrpc/Kbuild b/include/uapi/linux/sunrpc/Kbuild index 8e02e47c20fb..4a880e5aeba3 100644 --- a/include/uapi/linux/sunrpc/Kbuild +++ b/include/uapi/linux/sunrpc/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += debug.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/sunrpc/*.h)) diff --git a/include/uapi/linux/tc_act/Kbuild b/include/uapi/linux/tc_act/Kbuild index e3db7403296f..24f8b1d9a4ed 100644 --- a/include/uapi/linux/tc_act/Kbuild +++ b/include/uapi/linux/tc_act/Kbuild @@ -1,15 +1,2 @@ # UAPI Header export list -header-y += tc_csum.h -header-y += tc_defact.h -header-y += tc_gact.h -header-y += tc_ipt.h -header-y += tc_mirred.h -header-y += tc_nat.h -header-y += tc_pedit.h -header-y += tc_skbedit.h -header-y += tc_vlan.h -header-y += tc_bpf.h -header-y += tc_connmark.h -header-y += tc_ife.h -header-y += tc_tunnel_key.h -header-y += tc_skbmod.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/tc_act/*.h)) diff --git a/include/uapi/linux/tc_ematch/Kbuild b/include/uapi/linux/tc_ematch/Kbuild index 53fca3925535..909ef0d196b1 100644 --- a/include/uapi/linux/tc_ematch/Kbuild +++ b/include/uapi/linux/tc_ematch/Kbuild @@ -1,5 +1,2 @@ # UAPI Header export list -header-y += tc_em_cmp.h -header-y += tc_em_meta.h -header-y += tc_em_nbyte.h -header-y += tc_em_text.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/tc_ematch/*.h)) diff --git a/include/uapi/linux/usb/Kbuild b/include/uapi/linux/usb/Kbuild index 4cc4d6e7e523..4a5eb3f2b704 100644 --- a/include/uapi/linux/usb/Kbuild +++ b/include/uapi/linux/usb/Kbuild @@ -1,12 +1,2 @@ # UAPI Header export list -header-y += audio.h -header-y += cdc.h -header-y += cdc-wdm.h -header-y += ch11.h -header-y += ch9.h -header-y += functionfs.h -header-y += g_printer.h -header-y += gadgetfs.h -header-y += midi.h -header-y += tmc.h -header-y += video.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/usb/*.h)) diff --git a/include/uapi/linux/wimax/Kbuild b/include/uapi/linux/wimax/Kbuild index 1c97be49971f..f9f41558ebbe 100644 --- a/include/uapi/linux/wimax/Kbuild +++ b/include/uapi/linux/wimax/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += i2400m.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/linux/wimax/*.h)) diff --git a/include/uapi/misc/Kbuild b/include/uapi/misc/Kbuild index e96cae7d58c9..c4ad43dfbcfa 100644 --- a/include/uapi/misc/Kbuild +++ b/include/uapi/misc/Kbuild @@ -1,2 +1,2 @@ # misc Header export list -header-y += cxl.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/misc/*.h)) diff --git a/include/uapi/mtd/Kbuild b/include/uapi/mtd/Kbuild index 5a691e10cd0e..0fbbdecf0302 100644 --- a/include/uapi/mtd/Kbuild +++ b/include/uapi/mtd/Kbuild @@ -1,6 +1,2 @@ # UAPI Header export list -header-y += inftl-user.h -header-y += mtd-abi.h -header-y += mtd-user.h -header-y += nftl-user.h -header-y += ubi-user.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/mtd/*.h)) diff --git a/include/uapi/rdma/Kbuild b/include/uapi/rdma/Kbuild index 82bdf5626859..0c51ce6905fb 100644 --- a/include/uapi/rdma/Kbuild +++ b/include/uapi/rdma/Kbuild @@ -1,18 +1,3 @@ # UAPI Header export list -header-y += ib_user_cm.h -header-y += ib_user_mad.h -header-y += ib_user_sa.h -header-y += ib_user_verbs.h -header-y += rdma_netlink.h -header-y += rdma_user_cm.h header-y += hfi/ -header-y += rdma_user_rxe.h -header-y += cxgb3-abi.h -header-y += cxgb4-abi.h -header-y += mlx4-abi.h -header-y += mlx5-abi.h -header-y += mthca-abi.h -header-y += nes-abi.h -header-y += ocrdma-abi.h -header-y += hns-abi.h -header-y += vmw_pvrdma-abi.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/rdma/*.h)) diff --git a/include/uapi/rdma/hfi/Kbuild b/include/uapi/rdma/hfi/Kbuild index ef23c294fc71..4fef4d891000 100644 --- a/include/uapi/rdma/hfi/Kbuild +++ b/include/uapi/rdma/hfi/Kbuild @@ -1,2 +1,2 @@ # UAPI Header export list -header-y += hfi1_user.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/rdma/hfi/*.h)) diff --git a/include/uapi/scsi/Kbuild b/include/uapi/scsi/Kbuild index d791e0ad509d..f3f1df5e24dd 100644 --- a/include/uapi/scsi/Kbuild +++ b/include/uapi/scsi/Kbuild @@ -1,6 +1,3 @@ # UAPI Header export list header-y += fc/ -header-y += scsi_bsg_fc.h -header-y += scsi_netlink.h -header-y += scsi_netlink_fc.h -header-y += cxlflash_ioctl.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/scsi/*.h)) diff --git a/include/uapi/scsi/fc/Kbuild b/include/uapi/scsi/fc/Kbuild index 5ead9fac265c..1b84093983c5 100644 --- a/include/uapi/scsi/fc/Kbuild +++ b/include/uapi/scsi/fc/Kbuild @@ -1,5 +1,2 @@ # UAPI Header export list -header-y += fc_els.h -header-y += fc_fs.h -header-y += fc_gs.h -header-y += fc_ns.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/scsi/fc/*.h)) diff --git a/include/uapi/sound/Kbuild b/include/uapi/sound/Kbuild index 9578d8bdbf31..d2eb3b2aedf3 100644 --- a/include/uapi/sound/Kbuild +++ b/include/uapi/sound/Kbuild @@ -1,16 +1,2 @@ # UAPI Header export list -header-y += asequencer.h -header-y += asoc.h -header-y += asound.h -header-y += asound_fm.h -header-y += compress_offload.h -header-y += compress_params.h -header-y += emu10k1.h -header-y += firewire.h -header-y += hdsp.h -header-y += hdspm.h -header-y += sb16_csp.h -header-y += sfnt_info.h -header-y += tlv.h -header-y += usb_stream.h -header-y += snd_sst_tokens.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/sound/*.h)) diff --git a/include/uapi/video/Kbuild b/include/uapi/video/Kbuild index ac7203bb32cc..cd6d03c1e7ff 100644 --- a/include/uapi/video/Kbuild +++ b/include/uapi/video/Kbuild @@ -1,4 +1,2 @@ # UAPI Header export list -header-y += edid.h -header-y += sisfb.h -header-y += uvesafb.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/video/*.h)) diff --git a/include/uapi/xen/Kbuild b/include/uapi/xen/Kbuild index 5c459628e8c7..32feafaaa784 100644 --- a/include/uapi/xen/Kbuild +++ b/include/uapi/xen/Kbuild @@ -1,5 +1,2 @@ # UAPI Header export list -header-y += evtchn.h -header-y += gntalloc.h -header-y += gntdev.h -header-y += privcmd.h +header-y += $(notdir $(wildcard $(srctree)/include/uapi/xen/*.h))
Regularly, when a new header is created in include/uapi/, the developer forgets to add it in the corresponding Kbuild file. This error is usually detected after the release is out. In fact, all headers under include/uapi/ should be exported, so let's use wildcards. After this patch, the following files, which were not exported, are now exported: drm/vgem_drm.h drm/armada_drm.h drm/omap_drm.h drm/etnaviv_drm.h rdma/qedr-abi.h linux/bcache.h linux/kfd_ioctl.h linux/cryptouser.h linux/kcm.h linux/kcov.h linux/seg6_iptunnel.h linux/stm.h linux/seg6.h linux/auto_dev-ioctl.h linux/userio.h linux/pr.h linux/wil6210_uapi.h linux/nilfs2_ondisk.h linux/hash_info.h linux/seg6_genl.h linux/seg6_hmac.h linux/batman_adv.h linux/nsfs.h linux/qrtr.h linux/btrfs_tree.h linux/coresight-stm.h linux/dma-buf.h linux/module.h linux/lightnvm.h linux/nilfs2_api.h Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> --- This patch is built against linus tree. I don't know if it should be done against antoher tree. Comments are welcomed, Nicolas include/uapi/asm-generic/Kbuild | 36 +-- include/uapi/drm/Kbuild | 22 +- include/uapi/linux/Kbuild | 463 +---------------------------- include/uapi/linux/android/Kbuild | 2 +- include/uapi/linux/byteorder/Kbuild | 3 +- include/uapi/linux/caif/Kbuild | 3 +- include/uapi/linux/can/Kbuild | 6 +- include/uapi/linux/dvb/Kbuild | 9 +- include/uapi/linux/hdlc/Kbuild | 2 +- include/uapi/linux/hsi/Kbuild | 2 +- include/uapi/linux/iio/Kbuild | 3 +- include/uapi/linux/isdn/Kbuild | 2 +- include/uapi/linux/mmc/Kbuild | 2 +- include/uapi/linux/netfilter/Kbuild | 88 +----- include/uapi/linux/netfilter/ipset/Kbuild | 5 +- include/uapi/linux/netfilter_arp/Kbuild | 3 +- include/uapi/linux/netfilter_bridge/Kbuild | 18 +- include/uapi/linux/netfilter_ipv4/Kbuild | 10 +- include/uapi/linux/netfilter_ipv6/Kbuild | 13 +- include/uapi/linux/nfsd/Kbuild | 6 +- include/uapi/linux/raid/Kbuild | 3 +- include/uapi/linux/spi/Kbuild | 2 +- include/uapi/linux/sunrpc/Kbuild | 2 +- include/uapi/linux/tc_act/Kbuild | 15 +- include/uapi/linux/tc_ematch/Kbuild | 5 +- include/uapi/linux/usb/Kbuild | 12 +- include/uapi/linux/wimax/Kbuild | 2 +- include/uapi/misc/Kbuild | 2 +- include/uapi/mtd/Kbuild | 6 +- include/uapi/rdma/Kbuild | 17 +- include/uapi/rdma/hfi/Kbuild | 2 +- include/uapi/scsi/Kbuild | 5 +- include/uapi/scsi/fc/Kbuild | 5 +- include/uapi/sound/Kbuild | 16 +- include/uapi/video/Kbuild | 4 +- include/uapi/xen/Kbuild | 5 +- 36 files changed, 47 insertions(+), 754 deletions(-)