forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 127
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
headers_install.pl: convert to headers_install.sh
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 <rob@landley.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Josh Boyer <jwboyer@redhat.com> Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Cc: David Howells <dhowell@redhat.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
- Loading branch information
Showing
3 changed files
with
45 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#!/bin/sh | ||
|
||
if [ $# -lt 1 ] | ||
then | ||
echo "Usage: headers_install.sh OUTDIR [FILES...] | ||
echo | ||
echo "Prepares kernel header files for use by user space, by removing" | ||
echo "all compiler.h definitions and #includes, removing any" | ||
echo "#ifdef __KERNEL__ sections, and putting __underscores__ around" | ||
echo "asm/inline/volatile keywords." | ||
echo | ||
echo "OUTDIR: directory to write each userspace header FILE to." | ||
echo "FILES: list of header files to operate on." | ||
|
||
exit 1 | ||
fi | ||
|
||
# Grab arguments | ||
|
||
OUTDIR="$1" | ||
shift | ||
|
||
# Iterate through files listed on command line | ||
|
||
FILE= | ||
trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT | ||
for i in "$@" | ||
do | ||
FILE="$(basename "$i")" | ||
sed -r \ | ||
-e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \ | ||
-e 's/__attribute_const__([ \t]|$)/\1/g' \ | ||
-e 's@^#include <linux/compiler.h>@@' \ | ||
-e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \ | ||
-e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \ | ||
-e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \ | ||
"$i" > "$OUTDIR/$FILE.sed" || exit 1 | ||
scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \ | ||
> "$OUTDIR/$FILE" | ||
[ $? -gt 1 ] && exit 1 | ||
rm -f "$OUTDIR/$FILE.sed" | ||
done | ||
trap - EXIT |