aboutsummaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2009-01-06checkpatch: try to catch missing VMLINUX_SYMBOL() in vmlinux.lds.hMike Frysinger1-0/+9
Seems like every other release we have someone who updates vmlinux.lds.h and adds C-visible symbols without VMLINUX_SYMBOL() around them. So start checking the file and reject assignments which have plain symbols on either side. [[email protected]: soften the check, add tests] Signed-off-by: Mike Frysinger <[email protected]> Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: allow parentheses on return for comparisonsAndy Whitcroft1-2/+3
It seems to be a common idiom to include braces on conditionals in all contexts including return. Allow this exception to the return is not a function checks. Reported by Kay Sievers. Cc: Kay Sievers <[email protected]> Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: Add warning for p0-patchesWolfram Sang1-1/+7
Some people work internally with -p0-patches which has the danger that one forgets to convert them to -p1 before mainlining. Bitten myself and seen p0-patches in mailing lists occasionally, this patch adds a warning to checkpatch.pl in case a patch is -p0. If you really want, you can fool this check to generate false positives, this is why it just spits a warning. Making the check 100% proof is trickier than it looks, so let's start with a version which catches the cases of real use. [[email protected]: update message language, handle null prefix, add tests] Signed-off-by: Wolfram Sang <[email protected]> Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: update copyrightsAndy Whitcroft1-1/+2
Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: version: 0.25Andy Whitcroft1-1/+1
Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: dissallow spaces between stars in pointer typesAndy Whitcroft1-14/+32
Disallow spaces within multiple pointer stars (*) in both casts and definitions. Both of these would now be reported: (char * *) char * *foo; Also now consistently detects and reports the attributes within these structures making the error report itself clearer. Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: comment ends inside strings is most likely not an open commentAndy Whitcroft1-3/+6
When we are detecting whether a comment is open when we start a hunk we check for the first comment edge in the hunk and assume its inverse. However if the hunk contains something like below, then we will assume that a comment was open. Update this heuristic to see if the comment edge is obviously within double quotes and ignore it if so: foo(" */); Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: detect multiple bitfield declarationsAndy Whitcroft1-5/+9
Detect the colons (:) which make up secondary bitfield declarations and apply binary colon checks. For example the following is common idiom: int foo:1, bar:1; Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: __weak is an official attributeAndy Whitcroft1-1/+2
Add __weak as an official attribute. This tends to be used in a location where the automated attribute detector misses it. Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: structure member assignments are not complexAndy Whitcroft1-2/+3
Ensure we do not trigger the complex macros checks on structure member assignment, for example: #define foo .bar = 10 Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: widen implied comment detection to allow multiple starsAndy Whitcroft1-1/+1
Some people use double star '**' as a comment continuation, and start comments with complete lines of stars. Widen the implied comment detection to pick these up. Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: comment detection may miss an implied comment on the last hunkAndy Whitcroft1-2/+2
When detecting implied comments from leading stars we may incorrectly think we have detected an edge one way or the other when we have not if we drop off the end of the last hunk. Fix this up. Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06checkpatch: add checks for in_atomic()Andy Whitcroft1-0/+9
in_atomic() is not for driver use so report any such use as an ERROR. Also in_atomic() is often used to determine if we may sleep, but it is not reliable in this use model therefore strongly discourage its use. Signed-off-by: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-06scripts: script from kerneloops.org to pretty print oops dumpsArjan van de Ven1-0/+162
We're struggling all the time to figure out where the code came from that oopsed.. The script below (a adaption from a script used by kerneloops.org) can help developers quite a bit, at least for non-module cases. It works and looks like this: [/home/arjan/linux]$ dmesg | perl scripts/markup_oops.pl vmlinux { struct agp_memory *memory; memory = agp_allocate_memory(agp_bridge, pg_count, type); c055c10f: 89 c2 mov %eax,%edx if (memory == NULL) c055c111: 74 19 je c055c12c <agp_allocate_memory_wrap+0x30> /* This function must only be called when current_controller != NULL */ static void agp_insert_into_pool(struct agp_memory * temp) { struct agp_memory *prev; prev = agp_fe.current_controller->pool; c055c113: a1 ec dc 8f c0 mov 0xc08fdcec,%eax *c055c118: 8b 40 10 mov 0x10(%eax),%eax <----- faulting instruction if (prev != NULL) { c055c11b: 85 c0 test %eax,%eax c055c11d: 74 05 je c055c124 <agp_allocate_memory_wrap+0x28> prev->prev = temp; c055c11f: 89 50 04 mov %edx,0x4(%eax) temp->next = prev; c055c122: 89 02 mov %eax,(%edx) } agp_fe.current_controller->pool = temp; c055c124: a1 ec dc 8f c0 mov 0xc08fdcec,%eax c055c129: 89 50 10 mov %edx,0x10(%eax) if (memory == NULL) return NULL; agp_insert_into_pool(memory); so in this case, we faulted while dereferencing agp_fe.current_controller pointer, and we get to see exactly which function and line it affects... Personally I find this very useful, and I can see value for having this script in the kernel for more-than-just-me to use. Caveats: * It only works for oopses not-in-modules * It only works nicely for kernels compiled with CONFIG_DEBUG_INFO * It's not very fast. * It only works on x86 Signed-off-by: Arjan van de Ven <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2009-01-04bzip2/lzma: handle failures from bzip2 and lzma correctlyH. Peter Anvin1-2/+2
Impact: Bug fix If bzip2 or lzma fails (for example, if they aren't installed on the system), we need to propagate the failure out to "make". However, they were masked by being followed by a semicolon. Signed-off-by: H. Peter Anvin <[email protected]>
2009-01-04bzip2/lzma: library support for gzip, bzip2 and lzma decompressionAlain Knaff2-0/+24
Impact: Replaces inflate.c with a wrapper around zlib_inflate; new library code This is the first part of the bzip2/lzma patch The bzip patch is based on an idea by Christian Ludwig, includes support for compressing the kernel with bzip2 or lzma rather than gzip. Both compressors give smaller sizes than gzip. Lzma's decompresses faster than bzip2. It also supports ramdisks and initramfs' compressed using these two compressors. The functionality has been successfully used for a couple of years by the udpcast project This version applies to "tip" kernel 2.6.28 This part contains: - changed inflate.c to accomodate rest of patch - implementation of bzip2 compression (not used at this stage yet) - implementation of lzma compression (not used at this stage yet) - Makefile routines to support bzip2 and lzma kernel compression Signed-off-by: Alain Knaff <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2009-01-02kbuild: ignore a few files in headers_checkSam Ravnborg1-0/+6
The new check for asm/types.h and linux/types.h had a few false positives. o We cannot let linux/types.h include linux/types.h o The int-ll64.h and int-ll64.h define the types and are included by linux/types.h Handle this by hardcoding the filenames in the headers_check script. Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kbuild: add checks for include of linux/types in userspace headersSam Ravnborg1-3/+44
If we see __[us](8|16|32|64) then we must include <linux/types.h> If wee see include of <asm/types.h> then we recommend <linux/types.h> Original script from Mike but modified by me. Cc: Mike Frysinger <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kbuild: drop debugging leftover in tags.shSam Ravnborg1-1/+0
Noticed by Jike. Reported-by: "Jike Song" <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kbuild: in headers_install autoconvert asm/inline/volatile to __xxx__Mike Frysinger1-0/+3
Headers in userspace should be using the __xxx__ form of the asm, inline, and volatile keywords. Since people like to revert these things without realizing what's going on, have the headers install step autoconvert these keywords. Signed-off-by: Mike Frysinger <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kbuild: check for leaked CONFIG_ symbols to userspaceSam Ravnborg1-1/+10
Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02headers_check.pl: disallow extern'sMike Frysinger1-1/+11
Since prototypes with "extern" refer to kernel functions, they make no sense in userspace, so reject them automatically. Signed-off-by: Mike Frysinger <[email protected]> [sam: made it into a warning] Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kconfig: improve error messages for bad source statementsSam Ravnborg2-4/+10
We now say where we detect the second source of a file, and where we detect a recursively source of the same file. This makes it easier to fix such errors. Signed-off-by: Sam Ravnborg <[email protected]> Cc: Roman Zippel <[email protected]>
2009-01-02kconfig: struct property commentedSam Ravnborg1-10/+30
No functional changes Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kconfig: add comments to symbol flagsSam Ravnborg1-16/+18
No functional changes - only comments. Signed-off-by: Sam Ravnborg <[email protected]>
2009-01-02kconfig: explain symbol value defaultsSam Ravnborg1-2/+6
Added a few comments - no functional change. Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-28Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-nextLinus Torvalds21-197/+923
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (25 commits) allow stripping of generated symbols under CONFIG_KALLSYMS_ALL kbuild: strip generated symbols from *.ko kbuild: simplify use of genksyms kernel-doc: check for extra kernel-doc notations kbuild: add headerdep used to detect inclusion cycles in header files kbuild: fix string equality testing in tags.sh kbuild: fix make tags/cscope kbuild: fix make incompatibility kbuild: remove TAR_IGNORE setlocalversion: add git-svn support setlocalversion: print correct subversion revision scripts: improve the decodecode script scripts/package: allow custom options to rpm genksyms: allow to ignore symbol checksum changes genksyms: track symbol checksum changes tags and cscope support really belongs in a shell script kconfig: fix options to check-lxdialog.sh kbuild: gen_init_cpio expands shell variables in file names remove bashisms from scripts/extract-ikconfig kbuild: teach mkmakfile to be silent ...
2008-12-19allow stripping of generated symbols under CONFIG_KALLSYMS_ALLJan Beulich3-106/+106
Building upon parts of the module stripping patch, this patch introduces similar stripping for vmlinux when CONFIG_KALLSYMS_ALL=y. Using CONFIG_KALLSYMS_STRIP_GENERATED reduces the overhead of CONFIG_KALLSYMS_ALL from 245k/310k to 65k/80k for the (i386/x86-64) kernels I tested with. The patch also does away with the need to special case the kallsyms- internal symbols by making them available even in the first linking stage. While it is a generated file, the patch includes the changes to scripts/genksyms/keywords.c_shipped, as I'm unsure what the procedure here is. Signed-off-by: Jan Beulich <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-19kbuild: strip generated symbols from *.koJan Beulich5-32/+76
This patch changes the way __crc_ symbols are being resolved from using ld to do so to using the assembler, thus allowing these symbols to be marked local (the linker creates then as global ones) and hence allow stripping (for modules) or ignoring (for vmlinux) them. While at this, also strip other generated symbols during module installation. One potentially debatable point is the handling of the flags passeed to gcc when translating the intermediate assembly file into an object: passing $(c_flags) unchanged doesn't work as gcc passes --gdwarf2 to gas whenever is sees any -g* option, even for -g0, and despite the fact that the compiler would have already produced all necessary debug info in the C->assembly translation phase. I took the approach of just filtering out all -g* options, but an alternative to such negative filtering might be to have a positive filter which might, in the ideal case allow just all the -Wa,* options to pass through. Signed-off-by: Jan Beulich <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-19kbuild: simplify use of genksymsSam Ravnborg1-18/+12
Avoid duplicating long list of options in two places Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-19kernel-doc: check for extra kernel-doc notationsRandy Dunlap1-1/+66
Add functionality to check for function parameters or structure (or union/typedef/enum) field members that are described in kernel-doc but are not part of the expected (declared) parameters or structure. These generate warnings that are called "Excess" descriptions. Signed-off-by: Randy Dunlap <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-18kbuild: add headerdep used to detect inclusion cycles in header filesVegard Nossum1-0/+193
Signed-off-by: Vegard Nossum <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-14kbuild: fix string equality testing in tags.shJiri Slaby1-5/+5
Test of string equality in shells is =, not C-like ==. Signed-off-by: Jiri Slaby <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-14kbuild: fix make tags/cscopeJiri Slaby1-12/+12
- fix combining O=... and tags - don't allow * expansion during sh function calls Signed-off-by: Jiri Slaby <[email protected]> [sam: use KBUILD_SRC to check if we use O=...] Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-12tracing/function-graph-tracer: add a new .irqentry.text sectionFrederic Weisbecker1-0/+1
Impact: let the function-graph-tracer be aware of the irq entrypoints Add a new .irqentry.text section to store the irq entrypoints functions inside the same section. This way, the tracer will be able to signal an interrupts triggering on output by recognizing these entrypoints. Also, make this section recordable for dynamic tracing. Signed-off-by: Frederic Weisbecker <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-12-05kbuild: remove TAR_IGNORERobert P. J. Day1-4/+0
Given that there is no usage of a TAR_IGNORE variable remove it Signed-off-by: Robert P. J. Day <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-04Merge commit 'v2.6.28-rc7' into tracing/coreIngo Molnar1-3/+7
2008-12-03setlocalversion: add git-svn supportPeter Korsgaard1-0/+5
Print svn revision in addition to git info on git-svn repos. Signed-off-by: Peter Korsgaard <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03setlocalversion: print correct subversion revisionPeter Korsgaard1-1/+1
Output svn revision of latest change, instead of repo revision as thats what we're interested in (especially when working on a branch/tag). Signed-off-by: Peter Korsgaard <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03scripts: improve the decodecode scriptArjan van de Ven1-10/+22
kerneloops.org has been using an improved "decodecode" script, specifically it has a special marker that shows which line in the assembly the oops happened at, like this: 20: 83 e0 03 and $0x3,%eax 23: 09 d8 or %ebx,%eax 25: 85 db test %ebx,%ebx 27: 89 02 mov %eax,(%edx) 29: 74 0f je 0x3a 2b:* 3b 73 04 cmp 0x4(%ebx),%esi <-- trapping instruction 2e: 75 05 jne 0x35 30: 89 53 04 mov %edx,0x4(%ebx) 33: eb 07 jmp 0x3c 35: 89 53 08 mov %edx,0x8(%ebx) this patch updates the kernel copy to also have this functionality. Signed-off-by: Arjan van de Ven <[email protected]> Reviewed-by: WANG Cong <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03scripts/package: allow custom options to rpmJeremy Kerr1-2/+3
Add a RPMOPTS make variable to allow arbitrary options to be passed to rpm during 'make rpm-pkg'. For example: make RPMOPTS="--define '_topdir /home/jk/rpm'" rpm-pkg Signed-off-by: Jeremy Kerr <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03genksyms: allow to ignore symbol checksum changesAndreas Gruenbacher2-4/+31
This adds an "override" keyword for use in *.symvers / *.symref files. When a symbol is overridden, the symbol's old definition will be used for computing checksums instead of the new one, preserving the previous checksum. (Genksyms will still warn about the change.) This is meant to allow distributions to hide minor actual as well as fake ABI changes. (For example, when extra type information becomes available because additional headers are included, this may change checksums even though none of the types used have actully changed.) This approach also allows to get rid of "#ifdef __GENKSYMS__" hacks in the code, which are currently used in some vendor kernels to work around checksum changes. Signed-off-by: Andreas Gruenbacher <[email protected]> Cc: Randy Dunlap <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03genksyms: track symbol checksum changesAndreas Gruenbacher3-19/+239
Sometimes it is preferable to avoid changes of exported symbol checksums (to avoid breaking externally provided modules). When a checksum change occurs, it can be hard to figure out what caused this change: underlying types may have changed, or additional type information may simply have become available at the point where a symbol is exported. Add a new --reference option to genksyms which allows it to report why checksums change, based on the type information dumps it creates with the --dump-types flag. Genksyms will read in such a dump from a previous run, and report which symbols have changed (and why). The behavior can be controlled for an entire build as follows: If KBUILD_SYMTYPES is set, genksyms uses --dump-types to produce *.symtypes dump files. If any *.symref files exist, those will be used as the reference to check against. If KBUILD_PRESERVE is set, checksum changes will fail the build. Signed-off-by: Andreas Gruenbacher <[email protected]> Cc: Randy Dunlap <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03tags and cscope support really belongs in a shell scriptSam Ravnborg1-0/+160
as they do not benefit from the make functionality. Moving the support to a shell script has several benefits: - The readability of the code has increased a lot - More people is able to extend the tags support - We see less changes to the top-level Makefile The shell script version includes improvements from: Alexey Dobriyan <[email protected]> (jump to kconfig symbols) Alexey Dobriyan <[email protected]> (drop ./ in paths) Ian Campbell <[email protected]> (simplified find algorithms) This version has a few caveats: => It does not support ALLSOURCE_ARCHS - it is easy to add if it is really used => It assumes all archs have moved to arch/$ARCH/include - until that happens we have a few additional hits in the archs Signed-off-by: Sam Ravnborg <[email protected]> Cc: Alexey Dobriyan <[email protected]> Tested-by: Ian Campbell <[email protected]>
2008-12-03kconfig: fix options to check-lxdialog.shSam Ravnborg1-1/+1
As noted by Bernhard - fix it up. Cc: Bernhard Reutner-Fischer <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03remove bashisms from scripts/extract-ikconfigWerner Almesberger1-4/+4
unbashify-extract-ikconfig.patch scripts/extract-ikconfig contains a lot of gratuituous bashisms, which make it fail if /bin/sh isn't bash. This patch replaces them with regular Bourne shell constructs. Signed-off-by: Werner Almesberger <[email protected]> Acked-by: Randy Dunlap <[email protected]> # as file author Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03kbuild: teach mkmakfile to be silentSam Ravnborg1-1/+3
With this fix a "make -s" is now really silent Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03kbuild: use KECHO convenience echoMike Frysinger1-9/+2
Convert a few echos in the build system to new $(kecho) so we get correct output according to build verbosity. Signed-off-by: Mike Frysinger <[email protected]> [sam: added kecho in a few more places for O=... builds] Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03kbuild: introduce $(kecho) convenience echoMike Frysinger1-0/+7
There is a bunch of places in the build system where we do 'echo' to show some nice status lines. This means we still get output when running in silent mode. So declare a new KECHO variable that only does 'echo' when we are in a suitable verbose build mode. Signed-off-by: Mike Frysinger <[email protected]> [sam: added Documentation] Signed-off-by: Sam Ravnborg <[email protected]>
2008-12-03kbuild: kill output in silent mode of mkcompile_hMike Frysinger1-2/+4
The mkcompile_h script does `echo` regardless of silent mode the make is running at, so have it respect $quiet from kbuild and only echo when not in silent mode. Signed-off-by: Mike Frysinger <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]>