aboutsummaryrefslogtreecommitdiff
path: root/scripts/Makefile.headersinst
AgeCommit message (Collapse)AuthorFilesLines
2017-05-11uapi: export all arch specifics directoriesNicolas Dichtel1-2/+1
This patch removes the need of subdir-y. Now all files/directories under arch/<arch>/include/uapi/ are exported. The only change for userland is the layout of the command 'make headers_install_all': directories asm-<arch> are replaced by arch-<arch>/. Those new directories contains all files/directories of the specified arch. Note that only cris and tile have more directories than only asm: - arch-v[10|32] for cris; - arch for tile. Signed-off-by: Nicolas Dichtel <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
2017-05-11uapi: export all headers under uapi directoriesNicolas Dichtel1-26/+29
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 uapi directories should be exported, thus it's useless to have an exhaustive list. After this patch, the following files, which were not exported, are now exported (with make headers_install_all): asm-arc/kvm_para.h asm-arc/ucontext.h asm-blackfin/shmparam.h asm-blackfin/ucontext.h asm-c6x/shmparam.h asm-c6x/ucontext.h asm-cris/kvm_para.h asm-h8300/shmparam.h asm-h8300/ucontext.h asm-hexagon/shmparam.h asm-m32r/kvm_para.h asm-m68k/kvm_para.h asm-m68k/shmparam.h asm-metag/kvm_para.h asm-metag/shmparam.h asm-metag/ucontext.h asm-mips/hwcap.h asm-mips/reg.h asm-mips/ucontext.h asm-nios2/kvm_para.h asm-nios2/ucontext.h asm-openrisc/shmparam.h asm-parisc/kvm_para.h asm-powerpc/perf_regs.h asm-sh/kvm_para.h asm-sh/ucontext.h asm-tile/shmparam.h asm-unicore32/shmparam.h asm-unicore32/ucontext.h asm-x86/hwcap2.h asm-xtensa/kvm_para.h drm/armada_drm.h drm/etnaviv_drm.h drm/vgem_drm.h linux/aspeed-lpc-ctrl.h linux/auto_dev-ioctl.h linux/bcache.h linux/btrfs_tree.h linux/can/vxcan.h linux/cifs/cifs_mount.h linux/coresight-stm.h linux/cryptouser.h linux/fsmap.h linux/genwqe/genwqe_card.h linux/hash_info.h linux/kcm.h linux/kcov.h linux/kfd_ioctl.h linux/lightnvm.h linux/module.h linux/nbd-netlink.h linux/nilfs2_api.h linux/nilfs2_ondisk.h linux/nsfs.h linux/pr.h linux/qrtr.h linux/rpmsg.h linux/sched/types.h linux/sed-opal.h linux/smc.h linux/smc_diag.h linux/stm.h linux/switchtec_ioctl.h linux/vfio_ccw.h linux/wil6210_uapi.h rdma/bnxt_re-abi.h Note that I have removed from this list the files which are generated in every exported directories (like .install or .install.cmd). Thanks to Julien Floret <[email protected]> for the tip to get all subdirs with a pure makefile command. For the record, note that exported files for asm directories are a mix of files listed by: - include/uapi/asm-generic/Kbuild.asm; - arch/<arch>/include/uapi/asm/Kbuild; - arch/<arch>/include/asm/Kbuild. Signed-off-by: Nicolas Dichtel <[email protected]> Acked-by: Daniel Vetter <[email protected]> Acked-by: Russell King <[email protected]> Acked-by: Mark Salter <[email protected]> Acked-by: Michael Ellerman <[email protected]> (powerpc) Signed-off-by: Masahiro Yamada <[email protected]>
2017-05-11Makefile.headersinst: remove destination-y optionNicolas Dichtel1-1/+1
This option was added in commit c7bb349e7c25 ("kbuild: introduce destination-y for exported headers") but never used in-tree. Signed-off-by: Nicolas Dichtel <[email protected]> Acked-by: Paul Bolle <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
2017-05-11Makefile.headersinst: cleanup input filesNicolas Dichtel1-24/+14
After the last three patches, all exported headers are under uapi/, thus input-files2 are not needed anymore. The side effect is that input-files1-name is exactly header-y. Note also that input-files3-name is genhdr-y. Signed-off-by: Nicolas Dichtel <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
2014-11-26kbuild: collect shorthands into scripts/Kbuild.includeMasahiro Yamada1-1/+0
The shorthand "clean" is defined in both the top Makefile and scripts/Makefile.clean. Likewise, the "hdr-inst" is defined in both the top Makefile and scripts/Makefile.headersinst. To reduce code duplication, this commit collects them into scripts/Kbuild.include like the "build" and "modbuiltin" shorthands. It requires scripts/Makefile.clean to include scripts/Kbuild.include, but its impact on the performance of "make clean" should be negligible. Signed-off-by: Masahiro Yamada <[email protected]> Signed-off-by: Michal Marek <[email protected]>
2013-05-17kbuild: fix make headers_install when path is too longNicolas Dichtel1-6/+14
If headers_install is executed from a deep/long directory structure, the shell's maximum argument length can be execeeded, which breaks the operation with: | make[2]: execvp: /bin/sh: Argument list too long | make[2]: *** Instead of passing each files name with the entire path, I give only the file name without the source path and give this path as a new argument to headers_install.pl. Because there is three possible paths, I have tree input-files list, one per path. Signed-off-by: Nicolas Dichtel <[email protected]> Tested-by: Bruce Ashfield <[email protected]> Signed-off-by: Michal Marek <[email protected]>
2013-04-09headers_install.pl: convert to headers_install.shRob Landley1-2/+2
Remove perl from make headers_install by replacing a perl script (doing a simple regex search and replace) with a smaller, faster, simpler, POSIX-2008 shell script implementation. The new shell script is a single for loop calling sed and piping its output through unifdef to produce the target file. Same as last time except for minor tweak to deal with code review from here: http://lkml.indiana.edu/hypermail/linux/kernel/1302.3/00078.html (Note that this drops the "arch" argument, which isn't used. Kbuild already points to the right input files on the command line.) Signed-off-by: Rob Landley <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Josh Boyer <[email protected]> Cc: "Paul E. McKenney" <[email protected]> Cc: David Howells <[email protected]> Acked-by: Sam Ravnborg <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Michal Marek <[email protected]>
2013-03-05kbuild: fix make headers_check with make 3.80Sam Ravnborg1-5/+6
Commit 10b63956 ("UAPI: Plumb the UAPI Kbuilds into the user header installation and checking") introduced a dependency of make 3.81 due to use of $(or ...) We do not want to lift the requirement to gmake 3.81 just yet... Included are a straightforward conversion to $(if ...) Bisected-and-tested-by: Tetsuo Handa <[email protected]> Cc: David Howells <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]> Cc: <[email protected]> [v3.7+] Signed-off-by: Michal Marek <[email protected]>
2013-02-22kbuild: Fix destination-y for installed headersJesper Nilsson1-3/+3
Commit 10b63956fce7f369cc37fd4d994f09bd5203efe4 which plumbed in UAPI broke the destination-y functionality of scripts/Makefile.headersinst. The variable destination-y is used in a := assignment and so is expanded at declaration time, and the include of the Kbuild fragments that set destination-y to something is after this time, so it now always expands empty. There are no in-tree users of destination-y, but it allows any Kbuild-fragment to redirect where headers are installed. Just move the assignment of the variable that uses it below the include of the Kbuild fragment. Signed-off-by: Jesper Nilsson <[email protected]> Cc: Michal Marek <[email protected]> Cc: David Howells <[email protected]> Signed-off-by: Michal Marek <[email protected]>
2012-10-02UAPI: Plumb the UAPI Kbuilds into the user header installation and checkingDavid Howells1-14/+31
Plumb the UAPI Kbuilds into the user header installation and checking system. As the headers are split the entries will be transferred across from the old Kbuild files to the UAPI Kbuild files. The changes made in this commit are: (1) Exported generated files (of which there are currently four) are moved to uapi/ directories under the appropriate generated/ directory, thus we get: include/generated/uapi/linux/version.h arch/x86/include/generated/uapi/asm/unistd_32.h arch/x86/include/generated/uapi/asm/unistd_64.h arch/x86/include/generated/uapi/asm/unistd_x32.h These paths were added to the build as -I flags in a previous patch. (2) scripts/Makefile.headersinst is now given the UAPI path to install from rather than the old path. It then determines the old path from that and includes that Kbuild also if it exists, thus permitting the headers to exist in either directory during the changeover. I also renamed the "install" variable to "installdir" as it refers to a directory not the install program. (3) scripts/headers_install.pl is altered to take a list of source file paths instead of just their names so that the makefile can tell it exactly where to find each file. For the moment, files can be obtained from one of four places for each output directory: .../include/uapi/foo/ .../include/generated/uapi/foo/ .../include/foo/ .../include/generated/foo/ The non-UAPI paths will be dropped later. Signed-off-by: David Howells <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Acked-by: Dave Jones <[email protected]>
2012-10-02UAPI: Remove the objhdr-y export listDavid Howells1-5/+2
Remove the objhdr-y export list as it is no longer used. genhdr-y should be used instead. Signed-off-by: David Howells <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Acked-by: Dave Jones <[email protected]>
2011-11-17kbuild: Add support for installing generated asm headersH. Peter Anvin1-2/+8
Generated asm headers are supposed to live in arch/*/include/generated/asm, but objhdr-y expect them to live in the same directory they are generated in. Instead of trying to cut that particular Gordian knot, introduce genhdr-y that takes this into account; the sole user of objhdr-y, linux/version.h, should be migrated over at some later date. Suggested-by: David Woodhouse <[email protected]> Acked-by: David Woodhouse <[email protected]> Cc: Sam Ravnborg <[email protected]> Cc: Michal Marek <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2011-04-28kbuild: asm-generic supportSam Ravnborg1-1/+9
There is an increasing amount of header files shared between individual architectures in asm-generic. To avoid a lot of dummy wrapper files that just include the corresponding file in asm-generic provide some basic support in kbuild for this. With the following patch an architecture can maintain a list of files in the file arch/$(ARCH)/include/asm/Kbuild To use a generic file just add: generic-y += <name-of-header-file.h> For each file listed kbuild will generate the necessary wrapper in arch/$(ARCH)/include/generated/asm. When installing userspace headers a wrapper is likewise created. The original inspiration for this came from the unicore32 patchset - although a different method is used. The patch includes several improvements from Arnd Bergmann. Michael Marek contributed Makefile.asm-generic. Remis Baima did an intial implementation along to achive the same - see https://patchwork.kernel.org/patch/13352/ Signed-off-by: Sam Ravnborg <[email protected]> Acked-by: Guan Xuetao <[email protected]> Tested-by: Guan Xuetao <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Cc: Remis Lima Baima <[email protected]> Signed-off-by: Michal Marek <[email protected]>
2010-08-14kbuild: drop unifdef-y supportSam Ravnborg1-2/+1
unifdef-y is not used anymore - drop remaining references Signed-off-by: Sam Ravnborg <[email protected]>
2009-06-09kbuild: fix "Argument list too long" error for "make headers_check",Sergei Poselenov1-2/+6
I'm trying to install kernel headers to build a cross-toolchain, but got the following: make ARCH=arm INSTALL_HDR_PATH=/work/psl/eldk-builds/arm-2009-04-21/work/var/tmp/crosstool-0.43-3-root/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/ +arm-linux-gnueabi/arm-linux-gnueabi/ headers_check ... CHECK include/linux/raid (2 files) CHECK include/linux/spi (1 files) CHECK include/linux/sunrpc (1 files) CHECK include/linux/tc_act (6 files) CHECK include/linux/tc_ematch (4 files) CHECK include/linux/usb (8 files) make[2]: execvp: /bin/sh: Argument list too long make[2]: *** [/work/psl/eldk-builds/arm-2009-04-21/work/var/tmp/crosstool-0.43-3-root/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueab +i/arm-linux-gnueabi//include/linux/.check] Error 127 make[1]: *** [linux] Error 2 make: *** [headers_check] Error 2 -> Introduce use of xargs to fix this. Signed-off-by: Sergei Poselenov <[email protected]> Cc: Wolfgang Denk <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2009-04-11kbuild: introduce destination-y for exported headersSam Ravnborg1-0/+2
xtensa and arm have asked for a possibility to export headers and locate them in a specific directory when exported. Introduce destiantion-y to support this. This patch in additiona adds some limited documentation for the variables used for exported headers. Signed-off-by: Sam Ravnborg <[email protected]> Cc: Oskar Schirmer <[email protected]> Cc: Mikael Starvik <[email protected]>
2008-07-25kbuild: install all headers when arch is changedSam Ravnborg1-3/+4
We see some header files that are selected dependent on the actual architecture so force a reinstallation of all header files when the arch changes. This slows down "make headers_check_all" but then we better reflect reality. Signed-off-by: Sam Ravnborg <[email protected]>
2008-07-25kbuild: optimize headers_* targetsSam Ravnborg1-82/+63
Move the core functionality of headers_install and headers_check to two small perl scripts. The makefile is adapted to use the perl scrip and changed to operate on all files in a directory. So if one file is changed then all files in the directory is processed. perl were chosen for the helper scripts because this is pure text processing which perl is good at and especially the headers_check.pl script are expected to see changes / new checks implmented. The speed is ~300% faster on this box. And the output generated to the screen is now down to two lines per directory (one for install, one for check) so it is easier to scroll back after a kernel build. The perl scripts has been brought to sanity by patient feedback from: Vegard Nossum <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-07-25kbuild: only one call for include/ in make headers_*Sam Ravnborg1-9/+0
Move it to the top-level file to decide if we install/check the generic headers or the arch specific headers. This revealed a long standing bug where "make headers_check_all" relied on the files in asm/ for the current architecture. So make headers_check_all is now broken by this commit. In addition: o add a simpler way to detect if an arch support exporting header files. o add 'set -e;' so we error out early if make headers_check_all fails. o add sparc64 and cris to arch we do not process in make headers_*_all because: sparc64 - use sparc to export headers cris - is know seriously broken Includes suggestions from: David Woodhouse <[email protected]>. Signed-off-by: Sam Ravnborg <[email protected]> Cc: David Woodhouse <[email protected]>
2008-07-25kbuild: code refactoring in Makefile.headerinstSam Ravnborg1-29/+35
No functional changes just improved readability Signed-off-by: Sam Ravnborg <[email protected]>
2008-07-25kbuild: drop support of ALTARCH for headers_*Sam Ravnborg1-75/+9
ALTARCH is no longer used by any arch(*) so drop support for this from Makefile.headerinst Dropping ALTARCH support simplifies Makefile.headerinst (*) sparc64 uses it but work is ongoing to drop it and no furter usage is planned. Signed-off-by: Sam Ravnborg <[email protected]> Cc: David Woodhouse <[email protected]> Cc: David Miller <[email protected]>
2008-07-25kbuild: always unifdef files in headers_install*Sam Ravnborg1-19/+10
unifdef utility is fast enough to warrant that we always run the scripts through unifdef. This patch runs all headers listed with header-y and unifdef-y through unifdef. Next step is to drop unifdef-y in all Kbuild files and that can now be done in smaller steps. Signed-off-by: Sam Ravnborg <[email protected]> Cc: David Woodhouse <[email protected]> Cc: Adrian Bunk <[email protected]>
2007-07-17kbuild: use POSIX BRE in headers install targetMike Frysinger1-7/+7
The sed expression used at the moment in scripts/Makefile.headersinst relies on the (handy) GNU extension where you can escape ERE's in an otherwise BRE without using the GNU -r option. The following patch replaces this "\+" usage with a functionally equivalent POSIX BRE compliant "\{1,\}". Tested with `make headers_install` against blackfin/x86_64/i386 targets. Stupid whiny OS X users and their crappy sed ;) Signed-off-by: Mike Frysinger <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2007-07-06x86_64: fix headers_installDavid Woodhouse1-1/+1
A bug in headers_install for ARCH=x86_64 yields an asm/ directory full of files all of which are using the same #ifdef guard, "__ASM_STUB_" with no postfix. So the second and later asm files #included in the same C file (often through standard headers like ioctl.h) yields no symbols. Strangeness with the Ubuntu 'tell me if I support something that's not explcitly mentioned in POSIX, and I'll strip it out' shell, I believe. We don't need the 'export' but we do need a semicolon at the end of the FNAME line: Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: Rob Landley <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-05-21Make 'headerscheck' stop immediately on an errorDavid Woodhouse1-1/+1
This should make it stop immediately after printing the _helpful_ error message, rather than continuing to spit out many pages more of 'CHECK include/linux/foo.h' before eventually coming to a halt with something less obvious. Now I get this... CHECK include/linux/smb_fs.h /shiny/git/linux-2.6/usr/include/linux/smb_fs.h requires linux/jiffies.h, which does not exist in exported headers make[2]: *** [/shiny/git/linux-2.6/usr/include/linux/.check.smb_fs.h] Error 1 make[1]: *** [linux] Error 2 make: *** [headers_check] Error 2 Signed-off-by-if-Sam-says-so: David Woodhouse <[email protected]> [ Sam had better say so! This made me waste way too much time. - Linus] Signed-off-by: Linus Torvalds <[email protected]>
2007-01-30[PATCH] translate dashes in filenames for headers installMike Frysinger1-1/+1
The current filename->define translation does not scrub dashes so when creating stub defines for like asm-x86_64/ptrace-abi.h, we get: #define __ASM_STUB_PTRACE-ABI_H gcc just hates that sort of thing :) trivial attached patch adds - to the tr list to scrub it to _ Signed-off-by: Mike Frysinger <[email protected]> Cc: David Woodhouse <[email protected]> Cc: Sam Ravnborg <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-10-17[PATCH] fix `make headers_install'David Woodhouse1-1/+1
Fix this: make[3]: *** No rule to make target `/mnt/md0/devel/linux-git/include/linux/version.h', needed by `/mnt/md0/devel/linux-git-obj/usr/include/linux/version.h'. Stop. make[2]: *** [linux] Error 2 make[1]: *** [headers_install] Error 2 Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-10-04[PATCH] hdrcheck permission fixAndrew Morton1-1/+1
Don't require that scripts/hdrcheck.sh be executable - shit happens... Cc: Sam Ravnborg <[email protected]> Acked-by: David Woodhouse <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-09-24Merge git://git.infradead.org/~dwmw2/khdrs-2.6Linus Torvalds1-45/+79
* git://git.infradead.org/~dwmw2/khdrs-2.6: New 'make headers_install_all' target. Use dependencies for 'make headers_install'. [S390] Unexport <asm/z90crypt.h>, export <asm/zcrypt.h> in its place. Remove dead netfilter_logging.h from include/linux/Kbuild Remove offsetof() from user-visible <linux/stddef.h> Clean up exported headers on CRIS Fix v850 exported headers Don't advertise (or allow) headers_{install,check} where inappropriate. Remove UML header export Remove ARM26 header export. Fix H8300 exported headers. Fix m68knommu exported headers Fix exported headers for SPARC, SPARC64 Fix 'make headers_check' on m32r Fix 'make headers_check' on sh64 Fix 'make headers_check' on sh [HEADERS] Fix ARM 'make headers_check' Initial pass of manual conflict resolution in top-level Makefile over conflicting build rule and headers_install changes.
2006-09-25kbuild: use in-kernel unifdefSam Ravnborg1-1/+1
Let headers_install use in-kernel unifdef Signed-off-by: Sam Ravnborg <[email protected]>
2006-09-24Use dependencies for 'make headers_install'.David Woodhouse1-45/+79
Re-export header files only if either they or their controlling Kbuild file has actually changed. Also allow for similar dependencies with 'headers_check', once we properly create the dependencies for those. Signed-off-by: David Woodhouse <[email protected]>
2006-09-16[PATCH] Fix 'make headers_check' on biarch architecturesDavid Woodhouse1-3/+5
We generate an <asm/foo.h> which includes either <asm-$ARCH/foo.h> or <asm-$ALTARCH/foo.h> as appropriate. But we were doing this dependent on whether the file in question existed in the _unexported_ tree, not the exported tree. So if a file was exported to userspace in one asm- directory but not the other, the generated file in asm/ was incorrect. This only changed the failure mode if it _was_ included from a nice #error to a less explicable #include failure -- but it also gave false errors in 'make headers_check' output. Fix it by looking in the right place instead. Signed-off-by: David Woodhouse <[email protected]> Cc: Sam Ravnborg <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-06-18Basic implementation of 'make headers_check'David Woodhouse1-0/+11
Based on the 'headers_install' target, this performs a basic sanity check on the exported headers -- so far only checking that they do not include any other headers which aren't selected for import, but easily extendable. Signed-off-by: David Woodhouse <[email protected]>
2006-06-18Basic implementation of 'make headers_install'David Woodhouse1-0/+147
This adds a make target which exports a subset of headers which contain definitions which are useful for system libraries and tools. It uses the BSD 'unifdef' tool to remove instances of #ifdef __KERNEL__, and uses sed to remove markers like __user. Based on an original implementation by Arnd Bergmann <[email protected]> Hacked about by David Woodhouse <[email protected]> Reviewed and cleaned up by Sam Ravnborg <[email protected]> Signed-off-by: David Woodhouse <[email protected]>