02 Nov, 2017
1 commit
-
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.By default all files without license information are under the default
license of the kernel, which is GPL version 2.Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if
Reviewed-by: Philippe Ombredanne
Reviewed-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
11 Jul, 2017
2 commits
-
scripts/Makefike.headersinst creates asm-generic wrappers by itself
because scripts/Makefile.asm-generic created some of exported wrappers
outside uapi directories.Now this distortion has been fixed. scripts/Makefile.headersinst can
simply copy wrappers created by scripts/Makefile.asm-generic.Signed-off-by: Masahiro Yamada
-
Now asm-generic wrappers to be exported are all listed in
arch/*/include/uapi/asm/Kbuild. "make headers_install" no longer
depends on any Kbuild files outside uapi directories.Signed-off-by: Masahiro Yamada
10 Jul, 2017
2 commits
-
We can always pass dst= from the top Makefile. This will simplify
the logic in Makefile.headersinst.Signed-off-by: Masahiro Yamada
-
We have no true case for the $(if $(gen), ...) conditional. Drop it
to simplify the gendir calculation.Signed-off-by: Masahiro Yamada
22 Jun, 2017
1 commit
-
Since commit fcc8487d477a ("uapi: export all headers under uapi
directories") fakechroot make bindeb-pkg fails, mismatching files for
directories:
touch: cannot touch 'usr/include/video/uvesafb.h/.install': Not a
directoryThis due to a bug in fakechroot:
when using the function $(wildcard $(srcdir)/*/.) in a makefile, under a
fakechroot environment, not only directories but also files are
returned.To circumvent that, we are using the functions:
$(sort $(dir $(wildcard $(srcdir)/*/))))Fixes: fcc8487d477a ("uapi: export all headers under uapi directories")
Signed-off-by: Richard Genoud
Signed-off-by: Masahiro Yamada
18 May, 2017
1 commit
-
Since commit 61562f981e92 ("uapi: export all arch specifics
directories"), "make INSTALL_HDR_PATH=$root/usr headers_install"
deletes standard glibc headers and others in $(root)/usr/include.The cause of the issue is that headers_install now starts descending
from arch/$(hdr-arch)/include/uapi with $(root)/usr/include for its
destination when installing asm headers. So, headers already there
are assumed to be unwanted.When headers_install starts descending from include/uapi with
$(root)/usr/include for its destination, it works around the problem
by creating an dummy destination $(root)/usr/include/uapi, but this
is tricky.To fix the problem in a clean way is to skip headers install/check
in include/uapi and arch/$(hdr-arch)/include/uapi because we know
there are only sub-directories in uapi directories. A good side
effect is the empty destination $(root)/usr/include/uapi will go
away.I am also removing the trailing slash in the headers_check target to
skip checking in arch/$(hdr-arch)/include/uapi.Fixes: 61562f981e92 ("uapi: export all arch specifics directories")
Reported-by: Dan Williams
Signed-off-by: Masahiro Yamada
Tested-by: Dan Williams
Acked-by: Nicolas Dichtel
10 May, 2017
4 commits
-
This patch removes the need of subdir-y. Now all files/directories under
arch//include/uapi/ are exported.The only change for userland is the layout of the command 'make
headers_install_all': directories asm- are replaced by 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
Signed-off-by: Masahiro Yamada -
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.hNote 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 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//include/uapi/asm/Kbuild;
- arch//include/asm/Kbuild.Signed-off-by: Nicolas Dichtel
Acked-by: Daniel Vetter
Acked-by: Russell King
Acked-by: Mark Salter
Acked-by: Michael Ellerman (powerpc)
Signed-off-by: Masahiro Yamada -
This option was added in commit c7bb349e7c25 ("kbuild: introduce destination-y
for exported headers") but never used in-tree.Signed-off-by: Nicolas Dichtel
Acked-by: Paul Bolle
Signed-off-by: Masahiro Yamada -
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
Signed-off-by: Masahiro Yamada
26 Nov, 2014
1 commit
-
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
Signed-off-by: Michal Marek
18 May, 2013
1 commit
-
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
Tested-by: Bruce Ashfield
Signed-off-by: Michal Marek
09 Apr, 2013
1 commit
-
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
Cc: Thomas Gleixner
Cc: Josh Boyer
Cc: "Paul E. McKenney"
Cc: David Howells
Acked-by: Sam Ravnborg
Signed-off-by: Andrew Morton
Signed-off-by: Michal Marek
05 Mar, 2013
1 commit
-
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
Cc: David Howells
Signed-off-by: Sam Ravnborg
Cc: [v3.7+]
Signed-off-by: Michal Marek
22 Feb, 2013
1 commit
-
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
Cc: Michal Marek
Cc: David Howells
Signed-off-by: Michal Marek
03 Oct, 2012
2 commits
-
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.hThese 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
Acked-by: Arnd Bergmann
Acked-by: Thomas Gleixner
Acked-by: Paul E. McKenney
Acked-by: Dave Jones -
Remove the objhdr-y export list as it is no longer used. genhdr-y should be
used instead.Signed-off-by: David Howells
Acked-by: Arnd Bergmann
Acked-by: Thomas Gleixner
Acked-by: Paul E. McKenney
Acked-by: Dave Jones
18 Nov, 2011
1 commit
-
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
Acked-by: David Woodhouse
Cc: Sam Ravnborg
Cc: Michal Marek
Signed-off-by: H. Peter Anvin
29 Apr, 2011
1 commit
-
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/KbuildTo use a generic file just add:
generic-y +=
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
Acked-by: Guan Xuetao
Tested-by: Guan Xuetao
Acked-by: Arnd Bergmann
Cc: Remis Lima Baima
Signed-off-by: Michal Marek
15 Aug, 2010
1 commit
-
unifdef-y is not used anymore - drop remaining references
Signed-off-by: Sam Ravnborg
10 Jun, 2009
1 commit
-
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
Cc: Wolfgang Denk
Signed-off-by: Sam Ravnborg
11 Apr, 2009
1 commit
-
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
Cc: Oskar Schirmer
Cc: Mikael Starvik
26 Jul, 2008
6 commits
-
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
-
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 NossumSigned-off-by: Sam Ravnborg
-
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 brokenIncludes suggestions from: David Woodhouse
.Signed-off-by: Sam Ravnborg
Cc: David Woodhouse -
No functional changes just improved readability
Signed-off-by: Sam Ravnborg
-
ALTARCH is no longer used by any arch(*) so drop
support for this from Makefile.headerinstDropping 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
Cc: David Woodhouse
Cc: David Miller -
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
Cc: David Woodhouse
Cc: Adrian Bunk
17 Jul, 2007
1 commit
-
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
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg
07 Jul, 2007
1 commit
-
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
Signed-off-by: Rob Landley
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
22 May, 2007
1 commit
-
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 2Signed-off-by-if-Sam-says-so: David Woodhouse
[ Sam had better say so! This made me waste way too much time. - Linus]
Signed-off-by: Linus Torvalds
31 Jan, 2007
1 commit
-
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_Hgcc just hates that sort of thing :)
trivial attached patch adds - to the tr list to scrub it to _
Signed-off-by: Mike Frysinger
Cc: David Woodhouse
Cc: Sam Ravnborg
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Oct, 2006
1 commit
-
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 2Signed-off-by: David Woodhouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
04 Oct, 2006
1 commit
-
Don't require that scripts/hdrcheck.sh be executable - shit happens...
Cc: Sam Ravnborg
Acked-by: David Woodhouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
25 Sep, 2006
3 commits
-
* git://git.infradead.org/~dwmw2/khdrs-2.6:
New 'make headers_install_all' target.
Use dependencies for 'make headers_install'.
[S390] Unexport , export in its place.
Remove dead netfilter_logging.h from include/linux/Kbuild
Remove offsetof() from user-visible
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. -
Let headers_install use in-kernel unifdef
Signed-off-by: Sam Ravnborg
-
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
17 Sep, 2006
1 commit
-
We generate an which includes either or
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
Cc: Sam Ravnborg
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
18 Jun, 2006
1 commit
-
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