Commit 555187a8 authored by Masahiro Yamada's avatar Masahiro Yamada

kbuild: simplify scripts/headers_install.sh

Now that headers_install.sh is invoked per file, remove the for-loop
in the shell script.
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent a5bae54c
...@@ -58,7 +58,7 @@ $(if $(new-dirs), $(shell mkdir -p $(new-dirs))) ...@@ -58,7 +58,7 @@ $(if $(new-dirs), $(shell mkdir -p $(new-dirs)))
ifndef HDRCHECK ifndef HDRCHECK
quiet_cmd_install = HDRINST $@ quiet_cmd_install = HDRINST $@
cmd_install = $(CONFIG_SHELL) $(srctree)/scripts/headers_install.sh $(@D) $(<D) $(@F) cmd_install = $(CONFIG_SHELL) $(srctree)/scripts/headers_install.sh $< $@
$(src-headers): $(dst)/%.h: $(src)/%.h $(srctree)/scripts/headers_install.sh FORCE $(src-headers): $(dst)/%.h: $(src)/%.h $(srctree)/scripts/headers_install.sh FORCE
$(call if_changed,install) $(call if_changed,install)
......
#!/bin/sh #!/bin/sh
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
if [ $# -lt 2 ] if [ $# -ne 2 ]
then then
echo "Usage: headers_install.sh OUTDIR SRCDIR [FILES...]" echo "Usage: headers_install.sh INFILE OUTFILE"
echo echo
echo "Prepares kernel header files for use by user space, by removing" echo "Prepares kernel header files for use by user space, by removing"
echo "all compiler.h definitions and #includes, removing any" echo "all compiler.h definitions and #includes, removing any"
echo "#ifdef __KERNEL__ sections, and putting __underscores__ around" echo "#ifdef __KERNEL__ sections, and putting __underscores__ around"
echo "asm/inline/volatile keywords." echo "asm/inline/volatile keywords."
echo echo
echo "OUTDIR: directory to write each userspace header FILE to." echo "INFILE: header file to operate on"
echo "SRCDIR: source directory where files are picked." echo "OUTFILE: output file which the processed header is writen to"
echo "FILES: list of header files to operate on."
exit 1 exit 1
fi fi
# Grab arguments # Grab arguments
INFILE=$1
OUTFILE=$2
TMPFILE=$OUTFILE.tmp
OUTDIR="$1" trap 'rm -f $OUTFILE $TMPFILE' EXIT
shift
SRCDIR="$1"
shift
# Iterate through files listed on command line sed -E -e '
s/([[:space:](])(__user|__force|__iomem)[[:space:]]/\1/g
s/__attribute_const__([[:space:]]|$)/\1/g
s@^#include <linux/compiler(|_types).h>@@
s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g
s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g
s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @
' $INFILE > $TMPFILE || exit 1
FILE= scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE
trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT [ $? -gt 1 ] && exit 1
for i in "$@"
do rm -f $TMPFILE
FILE="$(basename "$i")"
sed -E \
-e 's/([[:space:](])(__user|__force|__iomem)[[:space:]]/\1/g' \
-e 's/__attribute_const__([[:space:]]|$)/\1/g' \
-e 's@^#include <linux/compiler(|_types).h>@@' \
-e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
-e 's/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g' \
-e 's@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @' \
"$SRCDIR/$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 trap - EXIT
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment