All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: linux-kbuild@vger.kernel.org
Cc: Randy Dunlap <rdunlap@infradead.org>,
	Arnd Bergmann <arnd@arndb.de>,
	David Howells <dhowells@redhat.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	Jani Nikula <jani.nikula@intel.com>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Michal Marek <michal.lkml@markovi.net>,
	linux-kernel@vger.kernel.org
Subject: [PATCH 11/15] kbuild: simplify scripts/headers_install.sh
Date: Tue,  4 Jun 2019 19:14:05 +0900	[thread overview]
Message-ID: <20190604101409.2078-12-yamada.masahiro@socionext.com> (raw)
In-Reply-To: <20190604101409.2078-1-yamada.masahiro@socionext.com>

Now that headers_install.sh is invoked per file, remove the for-loop
in the shell script.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 scripts/Makefile.headersinst |  2 +-
 scripts/headers_install.sh   | 48 +++++++++++++++---------------------
 2 files changed, 21 insertions(+), 29 deletions(-)

diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index c96c4c26e240..d2b572a7a628 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -58,7 +58,7 @@ $(if $(new-dirs), $(shell mkdir -p $(new-dirs)))
 ifndef HDRCHECK
 
 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
 	$(call if_changed,install)
diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
index 593f8879c641..47f6f3ea0771 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -1,47 +1,39 @@
 #!/bin/sh
 # SPDX-License-Identifier: GPL-2.0
 
-if [ $# -lt 2 ]
+if [ $# -ne 2 ]
 then
-	echo "Usage: headers_install.sh OUTDIR SRCDIR [FILES...]"
+	echo "Usage: headers_install.sh INFILE OUTFILE"
 	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 "SRCDIR: source directory where files are picked."
-	echo "FILES:  list of header files to operate on."
+	echo "INFILE: header file to operate on"
+	echo "OUTFILE: output file which the processed header is writen to"
 
 	exit 1
 fi
 
 # Grab arguments
+INFILE=$1
+OUTFILE=$2
+TMPFILE=$OUTFILE.tmp
 
-OUTDIR="$1"
-shift
-SRCDIR="$1"
-shift
+trap 'rm -f $OUTFILE $TMPFILE' EXIT
 
-# 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=
-trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT
-for i in "$@"
-do
-	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
+scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE
+[ $? -gt 1 ] && exit 1
+
+rm -f $TMPFILE
 trap - EXIT
-- 
2.17.1


  parent reply	other threads:[~2019-06-04 10:15 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-04 10:13 [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-04 10:13 ` Masahiro Yamada
2019-06-04 10:13 ` Masahiro Yamada
2019-06-04 10:13 ` Masahiro Yamada
2019-06-04 10:13 ` [PATCH 01/15] kbuild: remove headers_{install,check}_all Masahiro Yamada
2019-06-04 17:57   ` Sam Ravnborg
2019-06-04 10:13 ` [PATCH 02/15] kbuild: remove stale dependency between Documentation/ and headers_install Masahiro Yamada
2019-06-04 10:13 ` [PATCH 03/15] kbuild: make gdb_script depend on prepare0 instead of prepare Masahiro Yamada
2019-06-04 10:13 ` [PATCH 04/15] kbuild: fix Kconfig prompt of CONFIG_HEADERS_CHECK Masahiro Yamada
2019-06-04 10:13 ` [PATCH 05/15] kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of samples Masahiro Yamada
2019-06-04 10:13   ` Masahiro Yamada
2019-06-04 10:13   ` Masahiro Yamada
2019-06-04 10:14 ` [PATCH 06/15] kbuild: remove build_unifdef target in scripts/Makefile Masahiro Yamada
2019-06-04 10:14 ` [PATCH 07/15] kbuild: build all prerequisite of headers_install simultaneously Masahiro Yamada
2019-06-04 10:14 ` [PATCH 08/15] kbuild: add 'headers' target to build up ready-to-install uapi headers Masahiro Yamada
2019-06-04 10:14 ` [PATCH 09/15] kbuild: re-implement Makefile.headersinst without directory descending Masahiro Yamada
2019-06-04 10:14 ` [PATCH 10/15] kbuild: move hdr-inst shorthand to top Makefile Masahiro Yamada
2019-06-04 10:14 ` Masahiro Yamada [this message]
2019-06-04 10:14 ` [PATCH 12/15] kbuild: deb-pkg: do not run headers_check Masahiro Yamada
2019-06-04 10:14 ` [PATCH 13/15] kbuild: add support for ensuring headers are self-contained Masahiro Yamada
2019-06-04 12:42   ` [PATCH v2] " Jani Nikula
2019-06-04 17:25     ` Sam Ravnborg
2019-06-18 15:45       ` Masahiro Yamada
2019-06-04 10:14 ` [PATCH 14/15] fixup: " Masahiro Yamada
2019-06-04 12:53   ` Jani Nikula
2019-06-04 12:53     ` Jani Nikula
2019-06-04 10:14 ` [PATCH 15/15] kbuild: compile test UAPI headers to ensure they " Masahiro Yamada
2019-06-04 10:14   ` Masahiro Yamada
2019-06-21 19:05   ` Arnd Bergmann
2019-06-21 19:05     ` Arnd Bergmann
2019-06-22  5:12     ` Masahiro Yamada
2019-06-22  5:12       ` Masahiro Yamada
2019-06-22  5:39       ` Masahiro Yamada
2019-06-22  5:39         ` Masahiro Yamada
2019-06-05  2:37 ` [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-05  2:37   ` Masahiro Yamada
2019-06-05  2:37   ` Masahiro Yamada
2019-06-05  2:37   ` Masahiro Yamada
2019-06-18 15:46 ` Masahiro Yamada
2019-06-18 15:46   ` Masahiro Yamada
2019-06-18 15:46   ` Masahiro Yamada
2019-06-18 15:46   ` Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190604101409.2078-12-yamada.masahiro@socionext.com \
    --to=yamada.masahiro@socionext.com \
    --cc=arnd@arndb.de \
    --cc=dhowells@redhat.com \
    --cc=jani.nikula@intel.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=rdunlap@infradead.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.