From: Rob Landley <rob@landley.net>
To: Embedded Linux mailing list <linux-embedded@vger.kernel.org>
Cc: linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
"H. Peter Anvin" <hpa@zytor.com>, Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH 2/3]: Remove perl from make headers_install
Date: Fri, 2 Jan 2009 02:14:32 -0600 [thread overview]
Message-ID: <200901020214.33123.rob@landley.net> (raw)
In-Reply-To: <200901020207.30359.rob@landley.net>
From: Rob Landley <rob@landley.net>
Remove perl from make headers_install by replacing a perl script (doing
a simple regex search and replace) with a smaller and faster 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.
Sam Ravnborg added this perl to 2.6.27.
Signed-off-by: Rob Landley <rob@landley.net>
---
scripts/Makefile.headersinst | 6 ++--
scripts/headers_install.pl | 46 ---------------------------------
scripts/headers_install.sh | 23 ++++++++++++++++
3 files changed, 26 insertions(+), 49 deletions(-)
--- /dev/null 2008-11-21 04:46:41.000000000 -0600
+++ b/scripts/headers_install.sh 2008-12-15 22:09:45.000000000 -0600
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# Grab arguments
+
+INDIR="$1"
+shift
+OUTDIR="$1"
+shift
+ARCH="$1"
+shift
+
+# Iterate through files listed on command line
+
+for i in "$@"
+do
+ sed -r \
+ -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
+ -e 's/__attribute_const__([ \t]|$)/\1/g' \
+ -e 's@^#include <linux/compiler.h>@@' "$INDIR/$i" |
+ scripts/unifdef -U__KERNEL__ - > "$OUTDIR/$i"
+done
+
+exit 0
diff -r d9b501c91442 scripts/Makefile.headersinst
--- a/scripts/Makefile.headersinst Sun Dec 14 16:25:19 2008 -0800
+++ b/scripts/Makefile.headersinst Mon Dec 15 23:30:15 2008 -0600
@@ -44,8 +44,8 @@
quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\
file$(if $(word 2, $(all-files)),s))
cmd_install = \
- $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \
- $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \
+ $(CONFIG_SHELL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \
+ $(CONFIG_SHELL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \
touch $@
quiet_cmd_remove = REMOVE $(unwanted)
@@ -64,7 +64,7 @@
@:
targets += $(install-file)
-$(install-file): scripts/headers_install.pl $(input-files) FORCE
+$(install-file): scripts/headers_install.sh $(input-files) FORCE
$(if $(unwanted),$(call cmd,remove),)
$(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
$(call if_changed,install)
--- hg/scripts/headers_install.pl 2008-11-22 19:09:21.000000000 -0600
+++ /dev/null 1970-01-01 00:00:00 -0600
@@ -1,46 +0,0 @@
-#!/usr/bin/perl -w
-#
-# headers_install prepare the listed header files for use in
-# user space and copy the files to their destination.
-#
-# Usage: headers_install.pl readdir installdir arch [files...]
-# readdir: dir to open files
-# installdir: dir to install the files
-# arch: current architecture
-# arch is used to force a reinstallation when the arch
-# changes because kbuild then detect a command line change.
-# files: list of files to check
-#
-# Step in preparation for users space:
-# 1) Drop all use of compiler.h definitions
-# 2) Drop include of compiler.h
-# 3) Drop all sections defined out by __KERNEL__ (using unifdef)
-
-use strict;
-
-my ($readdir, $installdir, $arch, @files) = @ARGV;
-
-my $unifdef = "scripts/unifdef -U__KERNEL__";
-
-foreach my $file (@files) {
- local *INFILE;
- local *OUTFILE;
- my $tmpfile = "$installdir/$file.tmp";
- open(INFILE, "<$readdir/$file")
- or die "$readdir/$file: $!\n";
- open(OUTFILE, ">$tmpfile") or die "$tmpfile: $!\n";
- while (my $line = <INFILE>) {
- $line =~ s/([\s(])__user\s/$1/g;
- $line =~ s/([\s(])__force\s/$1/g;
- $line =~ s/([\s(])__iomem\s/$1/g;
- $line =~ s/\s__attribute_const__\s/ /g;
- $line =~ s/\s__attribute_const__$//g;
- $line =~ s/^#include <linux\/compiler.h>//;
- printf OUTFILE "%s", $line;
- }
- close OUTFILE;
- close INFILE;
- system $unifdef . " $tmpfile > $installdir/$file";
- unlink $tmpfile;
-}
-exit 0;
\0
WARNING: multiple messages have this Message-ID (diff)
From: Rob Landley <rob@landley.net>
To: Embedded Linux mailing list <linux-embedded@vger.kernel.org>
Cc: linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
"H. Peter Anvin" <hpa@zytor.com>, Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH 2/3]: Remove perl from make headers_install
Date: Fri, 2 Jan 2009 02:14:32 -0600 [thread overview]
Message-ID: <200901020214.33123.rob@landley.net> (raw)
In-Reply-To: <200901020207.30359.rob@landley.net>
From: Rob Landley <rob@landley.net>
Remove perl from make headers_install by replacing a perl script (doinga simple regex search and replace) with a smaller and faster shell scriptimplementation. The new shell script is a single for loop calling sed andpiping its output through unifdef to produce the target file.
Sam Ravnborg added this perl to 2.6.27.
Signed-off-by: Rob Landley <rob@landley.net>---
scripts/Makefile.headersinst | 6 ++-- scripts/headers_install.pl | 46 --------------------------------- scripts/headers_install.sh | 23 ++++++++++++++++ 3 files changed, 26 insertions(+), 49 deletions(-)
--- /dev/null 2008-11-21 04:46:41.000000000 -0600+++ b/scripts/headers_install.sh 2008-12-15 22:09:45.000000000 -0600@@ -0,0 +1,23 @@+#!/bin/bash++# Grab arguments++INDIR="$1"+shift+OUTDIR="$1"+shift+ARCH="$1"+shift++# Iterate through files listed on command line++for i in "$@"+do+ sed -r \+ -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \+ -e 's/__attribute_const__([ \t]|$)/\1/g' \+ -e 's@^#include <linux/compiler.h>@@' "$INDIR/$i" |+ scripts/unifdef -U__KERNEL__ - > "$OUTDIR/$i"+done++exit 0diff -r d9b501c91442 scripts/Makefile.headersinst--- a/scripts/Makefile.headersinst Sun Dec 14 16:25:19 2008 -0800+++ b/scripts/Makefile.headersinst Mon Dec 15 23:30:15 2008 -0600@@ -44,8 +44,8 @@ quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ file$(if $(word 2, $(all-files)),s)) cmd_install = \- $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \- $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \+ $(CONFIG_SHELL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \+ $(CONFIG_SHELL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ touch $@ quiet_cmd_remove = REMOVE $(unwanted)@@ -64,7 +64,7 @@ @: targets += $(install-file)-$(install-file): scripts/headers_install.pl $(input-files) FORCE+$(install-file): scripts/headers_install.sh $(input-files) FORCE $(if $(unwanted),$(call cmd,remove),) $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) $(call if_changed,install)--- hg/scripts/headers_install.pl 2008-11-22 19:09:21.000000000 -0600+++ /dev/null 1970-01-01 00:00:00 -0600@@ -1,46 +0,0 @@-#!/usr/bin/perl -w-#-# headers_install prepare the listed header files for use in-# user space and copy the files to their destination.-#-# Usage: headers_install.pl readdir installdir arch [files...]-# readdir: dir to open files-# installdir: dir to install the files-# arch: current architecture-# arch is used to force a reinstallation when the arch-# changes because kbuild then detect a command line change.-# files: list of files to check-#-# Step in preparation for users space:-# 1) Drop all use of compiler.h definitions-# 2) Drop include of compiler.h-# 3) Drop all sections defined out by __KERNEL__ (using unifdef)--use strict;--my ($readdir, $installdir, $arch, @files) = @ARGV;--my $unifdef = "scripts/unifdef -U__KERNEL__";--foreach my $file (@files) {- local *INFILE;- local *OUTFILE;- my $tmpfile = "$installdir/$file.tmp";- open(INFILE, "<$readdir/$file")- or die "$readdir/$file: $!\n";- open(OUTFILE, ">$tmpfile") or die "$tmpfile: $!\n";- while (my $line = <INFILE>) {- $line =~ s/([\s(])__user\s/$1/g;- $line =~ s/([\s(])__force\s/$1/g;- $line =~ s/([\s(])__iomem\s/$1/g;- $line =~ s/\s__attribute_const__\s/ /g;- $line =~ s/\s__attribute_const__$//g;- $line =~ s/^#include <linux\/compiler.h>//;- printf OUTFILE "%s", $line;- }- close OUTFILE;- close INFILE;- system $unifdef . " $tmpfile > $installdir/$file";- unlink $tmpfile;-}-exit 0;\0ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
next prev parent reply other threads:[~2009-01-02 8:14 UTC|newest]
Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-02 8:07 PATCH [0/3]: Simplify the kernel build by removing perl Rob Landley
2009-01-02 8:13 ` [PATCH 1/3]: Replace kernel/timeconst.pl with kernel/timeconst.sh Rob Landley
2009-01-02 8:13 ` Rob Landley
2009-01-02 9:04 ` Sam Ravnborg
2009-01-02 12:00 ` Rob Landley
2009-01-02 19:33 ` H. Peter Anvin
2009-01-04 1:32 ` Rob Landley
2009-01-04 1:35 ` H. Peter Anvin
2009-01-04 12:07 ` Alan Cox
2009-01-04 18:36 ` H. Peter Anvin
2009-01-04 19:03 ` Rob Landley
2009-01-04 20:39 ` H. Peter Anvin
2009-01-05 0:59 ` Rob Landley
2009-01-03 6:28 ` Harvey Harrison
2009-01-03 12:28 ` Ingo Oeser
2009-01-04 1:36 ` Rob Landley
2009-01-04 1:36 ` Rob Landley
2009-01-04 5:07 ` Valdis.Kletnieks
2009-01-04 6:43 ` Rob Landley
2009-01-04 22:13 ` Jamie Lokier
2009-01-05 0:15 ` Bernd Petrovitsch
2009-01-05 2:23 ` Jamie Lokier
2009-01-05 10:46 ` Bernd Petrovitsch
2009-01-05 15:01 ` Jamie Lokier
2009-01-05 16:18 ` Bernd Petrovitsch
2009-01-06 0:06 ` Rob Landley
2009-01-05 21:07 ` Rob Landley
2009-01-05 4:50 ` Rob Landley
2009-01-05 12:29 ` Bernd Petrovitsch
2009-01-04 21:51 ` Alejandro Mery
2009-01-04 7:15 ` Michal Jaegermann
2009-01-04 7:15 ` Michal Jaegermann
2009-01-05 0:41 ` Ray Lee
2009-01-05 5:08 ` Rob Landley
2009-01-02 8:14 ` Rob Landley [this message]
2009-01-02 8:14 ` [PATCH 2/3]: Remove perl from make headers_install Rob Landley
2009-01-02 9:09 ` Sam Ravnborg
2009-01-02 8:15 ` [PATCH 3/3]: Convert mkcapflags.pl to mkcapflags.sh Rob Landley
2009-01-02 8:15 ` Rob Landley
2009-01-02 9:12 ` Sam Ravnborg
2009-01-02 9:26 ` PATCH [0/3]: Simplify the kernel build by removing perl Arkadiusz Miskiewicz
2009-01-02 9:26 ` Arkadiusz Miskiewicz
2009-01-02 9:49 ` Christoph Hellwig
2009-01-02 10:16 ` Alejandro Mery
2009-01-02 10:30 ` Mark Miller
2009-01-02 11:18 ` Matt Keenan
2009-01-02 11:18 ` Matt Keenan
2009-01-02 10:41 ` Måns Rullgård
2009-01-15 12:59 ` Pádraig Brady
2009-01-15 18:52 ` Jamie Lokier
2009-01-15 19:45 ` Måns Rullgård
2009-01-02 11:15 ` Rob Landley
2009-01-02 11:15 ` Rob Landley
2009-01-02 11:44 ` Sam Ravnborg
2009-01-02 12:56 ` Rob Landley
2009-01-02 14:04 ` Theodore Tso
2009-01-03 3:22 ` Jamie Lokier
2009-01-03 3:22 ` Jamie Lokier
2009-01-04 2:23 ` Rob Landley
2009-01-02 10:02 ` Mark Miller
2009-01-02 10:02 ` Mark Miller
2009-01-02 10:03 ` Mark Miller
2009-01-02 10:03 ` Mark Miller
2009-01-02 11:13 ` Rob Landley
2009-01-02 16:04 ` Matthieu CASTET
2009-01-02 16:04 ` Matthieu CASTET
2009-01-03 19:46 ` Rob Landley
2009-01-03 19:46 ` Rob Landley
2009-01-03 20:10 ` Sam Ravnborg
2009-01-03 20:50 ` H. Peter Anvin
2009-01-04 1:47 ` Rob Landley
2009-01-04 1:45 ` Rob Landley
2009-01-04 8:09 ` Sam Ravnborg
2009-01-04 20:19 ` Rob Landley
2009-01-04 0:44 ` Robert Hancock
2009-01-04 1:39 ` David Brownell
2009-01-04 3:05 ` Rob Landley
2009-01-04 1:32 ` Rob Landley
2009-01-04 1:32 ` Rob Landley
2009-01-02 9:50 ` Paul Mundt
2009-01-02 10:32 ` Mark Miller
2009-01-02 10:57 ` Paul Mundt
2009-01-02 12:11 ` Mark Miller
2009-01-02 12:44 ` Rob Landley
2009-01-02 17:25 ` Wookey
2009-01-02 18:01 ` Sam Ravnborg
2009-01-02 18:01 ` Sam Ravnborg
2009-01-02 19:27 ` H. Peter Anvin
2009-01-04 1:35 ` Rob Landley
2009-01-03 19:48 ` Rob Landley
2009-01-08 13:13 ` klaasjan gm
2009-01-08 15:04 ` Christian Gagneraud
2009-01-03 14:59 ` Wolfgang Denk
2009-01-03 22:54 ` Leon Woestenberg
2009-01-03 23:03 ` H. Peter Anvin
2009-01-04 0:37 ` Leon Woestenberg
2009-01-04 2:53 ` Rob Landley
2009-01-04 3:38 ` Markus Heidelberg
2009-01-04 4:57 ` Rob Landley
2009-01-04 2:06 ` Rob Landley
2009-01-04 2:14 ` H. Peter Anvin
2009-01-04 6:29 ` Rob Landley
2009-01-15 14:32 ` Pádraig Brady
2009-01-15 14:32 ` Pádraig Brady
2009-01-04 2:36 ` Jamie Lokier
2009-01-04 2:39 ` H. Peter Anvin
2009-01-04 2:43 ` H. Peter Anvin
2009-01-04 3:06 ` Paul Mundt
2009-01-04 10:23 ` Leon Woestenberg
2009-01-04 10:23 ` Leon Woestenberg
2009-01-08 13:29 ` Mike Frysinger
2009-01-11 12:45 ` Bernd Petrovitsch
2009-01-12 3:36 ` Mark A. Miller
2009-01-12 5:11 ` H. Peter Anvin
2009-01-12 5:23 ` Mark A. Miller
2009-01-12 8:20 ` Paul Mundt
2009-01-12 9:18 ` Mark A. Miller
2009-01-12 9:18 ` Mark A. Miller
2009-01-12 9:41 ` Paul Mundt
2009-01-12 10:03 ` Mark A. Miller
2009-01-12 10:03 ` Mark A. Miller
2009-01-12 10:34 ` Paul Mundt
2009-01-12 17:56 ` Rob Landley
2009-01-12 18:04 ` Alan Cox
2009-01-12 8:27 ` Peter Korsgaard
2009-01-12 17:45 ` Rob Landley
[not found] ` <31014a580901111928u586e2246uccf370ff941c8a01@mail.gmail.com>
2009-01-12 5:35 ` Sam Ravnborg
2009-01-12 5:50 ` Mark A. Miller
2009-01-12 10:18 ` Sam Ravnborg
2009-01-12 10:22 ` Mark A. Miller
2009-01-12 10:44 ` Alexander Neundorf
2009-01-12 10:55 ` Mark A. Miller
2009-01-12 11:04 ` Alexander Neundorf
2009-01-12 10:38 ` Paul Mundt
2009-01-14 2:51 ` Jamie Lokier
2009-01-14 2:51 ` Jamie Lokier
2009-01-16 6:11 ` Rob Landley
2009-01-16 7:28 ` Alexander Neundorf
2009-01-16 14:54 ` Valdis.Kletnieks
2009-01-16 21:54 ` Rob Landley
2009-01-17 9:51 ` Jamie Lokier
2009-01-18 1:44 ` Rob Landley
2009-01-04 16:22 ` Vladimir Dronnikov
2009-01-04 16:22 ` Vladimir Dronnikov
2009-01-04 1:24 ` PATCH [0/3]: Simplify the kernel build by removing perl v2 Rob Landley
2009-01-04 1:27 ` PATCH [1/3]: Replace kernel/timeconst.pl with kernel/timeconst.sh (v2) Rob Landley
2009-01-04 1:27 ` Rob Landley
2009-01-04 2:48 ` David Vrabel
2009-01-04 20:21 ` Rob Landley
2009-01-04 1:28 ` PATCH [2/3]: Remove perl from make headers_install Rob Landley
2009-01-04 1:28 ` Rob Landley
2009-01-04 1:29 ` PATCH [3/3]: Convert kernel/cpu/mkcapflags.pl to kernel/cpu/mkcapflags.sh Rob Landley
2009-01-04 1:29 ` Rob Landley
-- strict thread matches above, loose matches on Subject: below --
2009-12-08 9:17 [PATCH 0/3] clean out Perl from build system Rob Landley
2009-12-08 9:21 ` [PATCH 2/3] Remove perl from make headers_install Rob Landley
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=200901020214.33123.rob@landley.net \
--to=rob@landley.net \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-embedded@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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.