Skip to content

Commit addd8c9

Browse files
committed
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: script/checkpatch.pl: warn about deprecated use of EXTRA_{A,C,CPP,LD}FLAGS tags, powerpc: Update tags.sh to support _GLOBAL symbols scripts: add extract-vmlinux
2 parents a84f6aa + c68e587 commit addd8c9

3 files changed

Lines changed: 78 additions & 2 deletions

File tree

scripts/checkpatch.pl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,6 +1683,20 @@ sub process {
16831683
#print "is_end<$is_end> length<$length>\n";
16841684
}
16851685

1686+
if (($realfile =~ /Makefile.*/ || $realfile =~ /Kbuild.*/) &&
1687+
($line =~ /\+(EXTRA_[A-Z]+FLAGS).*/)) {
1688+
my $flag = $1;
1689+
my $replacement = {
1690+
'EXTRA_AFLAGS' => 'asflags-y',
1691+
'EXTRA_CFLAGS' => 'ccflags-y',
1692+
'EXTRA_CPPFLAGS' => 'cppflags-y',
1693+
'EXTRA_LDFLAGS' => 'ldflags-y',
1694+
};
1695+
1696+
WARN("DEPRECATED_VARIABLE",
1697+
"Use of $flag is deprecated, please use \`$replacement->{$flag} instead.\n" . $herecurr) if ($replacement->{$flag});
1698+
}
1699+
16861700
# check we are in a valid source file if not then ignore this hunk
16871701
next if ($realfile !~ /\.(h|c|s|S|pl|sh)$/);
16881702

scripts/extract-vmlinux

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/sh
2+
# ----------------------------------------------------------------------
3+
# extract-vmlinux - Extract uncompressed vmlinux from a kernel image
4+
#
5+
# Inspired from extract-ikconfig
6+
# (c) 2009,2010 Dick Streefland <dick@streefland.net>
7+
#
8+
# (c) 2011 Corentin Chary <corentin.chary@gmail.com>
9+
#
10+
# Licensed under the GNU General Public License, version 2 (GPLv2).
11+
# ----------------------------------------------------------------------
12+
13+
check_vmlinux()
14+
{
15+
# Use readelf to check if it's a valid ELF
16+
# TODO: find a better to way to check that it's really vmlinux
17+
# and not just an elf
18+
readelf -h $1 > /dev/null 2>&1 || return 1
19+
20+
cat $1
21+
exit 0
22+
}
23+
24+
try_decompress()
25+
{
26+
# The obscure use of the "tr" filter is to work around older versions of
27+
# "grep" that report the byte offset of the line instead of the pattern.
28+
29+
# Try to find the header ($1) and decompress from here
30+
for pos in `tr "$1\n$2" "\n$2=" < "$img" | grep -abo "^$2"`
31+
do
32+
pos=${pos%%:*}
33+
tail -c+$pos "$img" | $3 > $tmp 2> /dev/null
34+
check_vmlinux $tmp
35+
done
36+
}
37+
38+
# Check invocation:
39+
me=${0##*/}
40+
img=$1
41+
if [ $# -ne 1 -o ! -s "$img" ]
42+
then
43+
echo "Usage: $me <kernel-image>" >&2
44+
exit 2
45+
fi
46+
47+
# Prepare temp files:
48+
tmp=$(mktemp /tmp/vmlinux-XXX)
49+
trap "rm -f $tmp" 0
50+
51+
# Initial attempt for uncompressed images or objects:
52+
check_vmlinux $img
53+
54+
# That didn't work, so retry after decompression.
55+
try_decompress '\037\213\010' xy gunzip
56+
try_decompress '\3757zXZ\000' abcde unxz
57+
try_decompress 'BZh' xy bunzip2
58+
try_decompress '\135\0\0\0' xxx unlzma
59+
try_decompress '\211\114\132' xy 'lzop -d'
60+
61+
# Bail out:
62+
echo "$me: Cannot find vmlinux." >&2

scripts/tags.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ exuberant()
129129
-I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \
130130
-I DEFINE_TRACE,EXPORT_TRACEPOINT_SYMBOL,EXPORT_TRACEPOINT_SYMBOL_GPL \
131131
--extra=+f --c-kinds=+px \
132-
--regex-asm='/^ENTRY\(([^)]*)\).*/\1/' \
132+
--regex-asm='/^(ENTRY|_GLOBAL)\(([^)]*)\).*/\2/' \
133133
--regex-c='/^SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/sys_\1/' \
134134
--regex-c++='/^TRACE_EVENT\(([^,)]*).*/trace_\1/' \
135135
--regex-c++='/^DEFINE_EVENT\([^,)]*, *([^,)]*).*/trace_\1/'
@@ -151,7 +151,7 @@ exuberant()
151151
emacs()
152152
{
153153
all_sources | xargs $1 -a \
154-
--regex='/^ENTRY(\([^)]*\)).*/\1/' \
154+
--regex='/^(ENTRY|_GLOBAL)(\([^)]*\)).*/\2/' \
155155
--regex='/^SYSCALL_DEFINE[0-9]?(\([^,)]*\).*/sys_\1/' \
156156
--regex='/^TRACE_EVENT(\([^,)]*\).*/trace_\1/' \
157157
--regex='/^DEFINE_EVENT([^,)]*, *\([^,)]*\).*/trace_\1/'

0 commit comments

Comments
 (0)