diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-07 10:56:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-07 10:56:26 -0400 |
commit | 57c29bd3cdf1f82a7ba79ea227638b14f607247c (patch) | |
tree | 285e3ce20ebae4b4913aeee0160c90ff10b549e1 /scripts/headers_install.sh | |
parent | 383da76f5261637b8beacb99a83f5834b14fc432 (diff) | |
parent | 22fc4273c7fd6091abba1beab3dd487715c65540 (diff) |
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull kbuild changes from Michal Marek:
"Kbuild commits for v3.10-rc1:
- Fix make mrproper after mod/file2alias rework
- Fix ld-option Makefile function
- Rewrite headers_install to shell to drop Perl dependency.
There are some more patches I have to look at, so I might send another
pull request later. Or just queue them for 3.11."
* 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
Fix cleaning in scripts/mod
headers_install.pl: convert to headers_install.sh
kbuild: fix ld-option function
Diffstat (limited to 'scripts/headers_install.sh')
-rw-r--r-- | scripts/headers_install.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh new file mode 100644 index 000000000000..643764f53ea7 --- /dev/null +++ b/scripts/headers_install.sh | |||
@@ -0,0 +1,43 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if [ $# -lt 1 ] | ||
4 | then | ||
5 | echo "Usage: headers_install.sh OUTDIR [FILES...] | ||
6 | echo | ||
7 | echo "Prepares kernel header files for use by user space, by removing" | ||
8 | echo "all compiler.h definitions and #includes, removing any" | ||
9 | echo "#ifdef __KERNEL__ sections, and putting __underscores__ around" | ||
10 | echo "asm/inline/volatile keywords." | ||
11 | echo | ||
12 | echo "OUTDIR: directory to write each userspace header FILE to." | ||
13 | echo "FILES: list of header files to operate on." | ||
14 | |||
15 | exit 1 | ||
16 | fi | ||
17 | |||
18 | # Grab arguments | ||
19 | |||
20 | OUTDIR="$1" | ||
21 | shift | ||
22 | |||
23 | # Iterate through files listed on command line | ||
24 | |||
25 | FILE= | ||
26 | trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT | ||
27 | for i in "$@" | ||
28 | do | ||
29 | FILE="$(basename "$i")" | ||
30 | sed -r \ | ||
31 | -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \ | ||
32 | -e 's/__attribute_const__([ \t]|$)/\1/g' \ | ||
33 | -e 's@^#include <linux/compiler.h>@@' \ | ||
34 | -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \ | ||
35 | -e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \ | ||
36 | -e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \ | ||
37 | "$i" > "$OUTDIR/$FILE.sed" || exit 1 | ||
38 | scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \ | ||
39 | > "$OUTDIR/$FILE" | ||
40 | [ $? -gt 1 ] && exit 1 | ||
41 | rm -f "$OUTDIR/$FILE.sed" | ||
42 | done | ||
43 | trap - EXIT | ||