2005-10-18 19:26:15 +04:00
#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
2009-06-05 08:43:10 +04:00
# NOTE! Please use 'git ls-files -i --exclude-standard'
2008-06-26 11:54:34 +04:00
# command after changing this file, to see if there are
# any tracked files which get ignored after the change.
#
2017-10-30 18:33:45 +03:00
# Normal rules (sorted alphabetically)
2005-10-18 19:26:15 +04:00
#
.*
2017-10-30 18:33:45 +03:00
*.a
2018-03-23 16:04:37 +03:00
*.asn1.[ch]
2017-10-30 18:33:45 +03:00
*.bin
*.bz2
*.c.[012]*.*
2017-10-30 18:33:46 +03:00
*.dtb
*.dtb.S
2017-10-30 18:33:45 +03:00
*.dwo
*.elf
*.gcno
*.gz
*.i
*.ko
2018-03-23 16:04:30 +03:00
*.lex.c
2017-10-30 18:33:45 +03:00
*.ll
*.lst
*.lz4
*.lzma
*.lzo
*.mod.c
2005-10-18 19:26:15 +04:00
*.o
2007-07-31 11:37:25 +04:00
*.o.*
2017-10-30 18:33:45 +03:00
*.order
*.patch
2005-10-18 19:26:15 +04:00
*.s
2006-01-05 20:10:52 +03:00
*.so
2007-10-19 22:35:02 +04:00
*.so.dbg
2017-10-30 18:33:45 +03:00
*.su
2006-09-16 23:15:44 +04:00
*.symtypes
2018-03-23 16:04:30 +03:00
*.tab.[ch]
2015-04-16 22:49:24 +03:00
*.tar
2011-02-22 12:48:06 +03:00
*.xz
2014-04-14 10:56:15 +04:00
Module.symvers
2017-10-30 18:33:45 +03:00
modules.builtin
2005-10-18 19:26:15 +04:00
#
# Top-level generic files
#
2010-03-13 03:30:23 +03:00
/tags
/TAGS
/linux
/vmlinux
2015-04-24 20:27:40 +03:00
/vmlinux.32
2015-02-18 00:47:38 +03:00
/vmlinux-gdb.py
2010-03-13 03:30:23 +03:00
/vmlinuz
/System.map
/Module.markers
2017-09-30 04:10:10 +03:00
#
# RPM spec file (make rpm-pkg)
#
/*.spec
2011-07-01 03:42:50 +04:00
#
# Debian directory (make deb-pkg)
#
/debian/
scripts/package: snap-pkg target
Following in footsteps of other targets like 'deb-pkg, 'rpm-pkg' and 'tar-pkg',
this patch adds a 'snap-pkg' target for the creation of a Linux kernel snap
package using the kbuild infrastructure.
A snap, in its general form, is a self contained, sandboxed, universal package
and it is intended to work across multiple distributions and/or devices. A snap
package is distributed as a single compressed squashfs filesystem.
A kernel snap is a snap package carrying the Linux kernel, kernel modules,
accessory files (DTBs, System.map, etc) and a manifesto file. The purpose of a
kernel snap is to carry the Linux kernel during the creation of a system image,
eg. Ubuntu Core, and its subsequent upgrades.
For more information on snap packages: https://snapcraft.io/docs/
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-11-27 14:07:34 +03:00
#
# Snap directory (make snap-pkg)
#
/snap/
2015-02-13 02:01:19 +03:00
#
# tar directory (make tar*-pkg)
#
/tar-install/
2010-03-13 03:30:23 +03:00
#
2016-04-27 20:06:49 +03:00
# git files that we don't want to ignore even if they are dot-files
2010-03-13 03:30:23 +03:00
#
2007-10-16 11:22:21 +04:00
!.gitignore
2008-06-26 11:54:34 +04:00
!.mailmap
scripts: add Linux .cocciconfig for coccinelle
Coccinelle supports reading .cocciconfig, the order of precedence for
variables for .cocciconfig is as follows:
o Your current user's home directory is processed first
o Your directory from which spatch is called is processed next
o The directory provided with the --dir option is processed last, if used
Since coccicheck runs through make, it naturally runs from the kernel
proper dir, as such the second rule above would be implied for picking up a
.cocciconfig when using 'make coccicheck'.
'make coccicheck' also supports using M= targets.If you do not supply
any M= target, it is assumed you want to target the entire kernel.
The kernel coccicheck script has:
if [ "$KBUILD_EXTMOD" = "" ] ; then
OPTIONS="--dir $srctree $COCCIINCLUDE"
else
OPTIONS="--dir $KBUILD_EXTMOD $COCCIINCLUDE"
fi
KBUILD_EXTMOD is set when an explicit target with M= is used. For both cases
the spatch --dir argument is used, as such third rule applies when
whether M= is used or not, and when M= is used the target directory can
have its own .cocciconfig file. When M= is not passed as an argument to
coccicheck the target directory is the same as the directory from where
spatch was called.
If not using the kernel's coccicheck target, keep the above precedence order
logic of .cocciconfig reading. If using the kernel's coccicheck target,
override any of the kernel's .coccicheck's settings using SPFLAGS.
We help Coccinelle when used against Linux with a set of sensible defaults
options for Linux with our own Linux .cocciconfig. This hints to coccinelle
git can be used for 'git grep' queries over coccigrep. A timeout of 200
seconds should suffice for now.
The options picked up by coccinelle when reading a .cocciconfig do not appear
as arguments to spatch processes running on your system, to confirm what
options will be used by Coccinelle run:
spatch --print-options-only
You can override with your own preferred index option by using SPFLAGS.
Coccinelle supports both glimpse and idutils. Glimpse had historically
provided the best performance, however recent benchmarks reveal idutils
is performing just as well. Due to some recent fixes however you however
will need at least coccinelle >= 1.0.6 if using idutils.
Coccinelle carries a script scripts/idutils_index.sh which creates the
idutils database with as follows:
mkid -i C --output .id-utils.index
If using just "--use-idutils" coccinelle expects your idutils database to be
on the top level of the kernel as a file named ".id-utils.index". If you do
not use this you can symlink your database file to it, or you can specify the
database file following the "--use-idutils" argument. Examples:
make SPFLAGS=--use-idutils coccicheck
This assumes you have $srctree/.id-utils.index, where $srctree is
the top level of the kernel.
make SPFLAGS="--use-idutils /full-path/to/ID" coccicheck
Here you specify the full path of the idutils ID database. Using
.cocciconfig is possible, however given the order of precedence followed
by Coccinelle, and since the kernel now carries its own .cocciconfig,
you will need to use SPFLAGS to use idutils if desired.
v4:
o Recommend upgrade for using idutils with coccinelle due to some
recent fixes.
o Refer to using --print-options-only for testing what options are
picked up by .cocciconfig reading.
o Expand commit log considerably explaining *why* .cocconfig from
two precedence rules are used when using coccicheck, and how to
properly override these if needed.
o Expand Documentation/coccinelle.txt
v3: Expand commit log a bit more
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
2016-06-30 01:14:56 +03:00
!.cocciconfig
clang-format: add configuration file
clang-format is a tool to format C/C++/... code according to a set of
rules and heuristics. Like most tools, it is not perfect nor covers
every single case, but it is good enough to be helpful.
In particular, it is useful for quickly re-formatting blocks of code
automatically, for reviewing full files in order to spot coding style
mistakes, typos and possible improvements. It is also handy for sorting
``#includes``, for aligning variables and macros, for reflowing text and
other similar tasks. It also serves as a teaching tool/guide for
newcomers.
The tool itself has been already included in the repositories of popular
Linux distributions for a long time. The rules in this file are
intended for clang-format >= 4, which is easily available in most
distributions.
This commit adds the configuration file that contains the rules that the
tool uses to know how to format the code according to the kernel coding
style. This gives us several advantages:
* clang-format works out of the box with reasonable defaults;
avoiding that everyone has to re-do the configuration.
* Everyone agrees (eventually) on what is the most useful default
configuration for most of the kernel.
* If it becomes commonplace among kernel developers, clang-format
may feel compelled to support us better. They already recognize
the Linux kernel and its style in their documentation and in one
of the style sub-options.
Some of clang-format's features relevant for the kernel are:
* Uses clang's tooling support behind the scenes to parse and rewrite
the code. It is not based on ad-hoc regexps.
* Supports reasonably well the Linux kernel coding style.
* Fast enough to be used at the press of a key.
* There are already integrations (either built-in or third-party)
for many common editors used by kernel developers (e.g. vim,
emacs, Sublime, Atom...) that allow you to format an entire file
or, more usefully, just your selection.
* Able to parse unified diffs -- you can, for instance, reformat
only the lines changed by a git commit.
* Able to reflow text comments as well.
* Widely supported and used by hundreds of developers in highly
complex projects and organizations (e.g. the LLVM project itself,
Chromium, WebKit, Google, Mozilla...). Therefore, it will be
supported for a long time.
See more information about the tool at:
https://clang.llvm.org/docs/ClangFormat.html
https://clang.llvm.org/docs/ClangFormatStyleOptions.html
Link: http://lkml.kernel.org/r/20180318171632.qfkemw3mwbcukth6@gmail.com
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Andy Whitcroft <apw@canonical.com>
Cc: Joe Perches <joe@perches.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-11 02:32:40 +03:00
!.clang-format
2005-10-18 19:26:15 +04:00
#
# Generated include files
#
include/config
2009-04-19 01:51:08 +04:00
include/generated
2018-03-16 10:37:14 +03:00
include/ksym
2011-04-28 00:29:49 +04:00
arch/*/include/generated
2005-10-18 19:26:15 +04:00
2006-02-27 06:07:24 +03:00
# stgit generated dirs
patches-*
2006-07-17 09:37:06 +04:00
# quilt's files
patches
series
2006-12-22 12:07:32 +03:00
# cscope files
cscope.*
2008-05-22 05:23:10 +04:00
ncscope.*
2007-07-16 10:41:52 +04:00
2009-06-11 13:21:47 +04:00
# gnu global files
GPATH
GRTAGS
GSYMS
GTAGS
2015-04-17 00:02:41 +03:00
# id-utils files
ID
2007-07-16 10:41:52 +04:00
*.orig
2008-03-05 01:28:59 +03:00
*~
\#*#
2012-09-26 13:09:50 +04:00
#
# Leavings from module signing
#
extra_certificates
2015-07-20 23:16:30 +03:00
signing_key.pem
2012-09-26 13:09:50 +04:00
signing_key.priv
signing_key.x509
x509.genkey
2014-02-11 02:25:45 +04:00
# Kconfig presets
all.config
2014-11-25 19:42:54 +03:00
# Kdevelop4
*.kdev4