[patch resend] scripts: replace gawk, head, bc with shell, update

From: Oleg Verych
Date: Sun Feb 04 2007 - 08:31:24 EST


scripts: replace gawk, head, bc with shell, update

Replacing overhead of using some (external) programs
instead of good old `sh'.

Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
Cc: William Stearns <wstearns@xxxxxxxxx>
Cc: Martin Schlemmer <azarah@xxxxxxxxxxxxxxxx>
Signed-off-by: Oleg Verych <olecom@xxxxxxxxxxxxxx>
---

Some whitespace cleanup included.

-o--=O`C
#oo'L O
<___=E M

scripts/gen_initramfs_list.sh | 44 +++++++++++++++++++++---------------------
scripts/makelst | 34 ++++++++++++++++----------------
2 files changed, 40 insertions(+), 38 deletions(-)

--- linux-2.6.20-rc6/scripts/makelst~4-update-gawk-bc-head-rip 2007-01-12 19:54:26.000000000 +0100
+++ linux-2.6.20-rc6/scripts/makelst 2007-01-31 03:02:53.433642000 +0100
@@ -1,31 +1,31 @@
-#!/bin/bash
+#!/bin/sh
# A script to dump mixed source code & assembly
# with correct relocations from System.map
-# Requires the following lines in Rules.make.
-# Author(s): DJ Barrow (djbarrow@xxxxxxxxxx,barrow_dj@xxxxxxxxx)
-# William Stearns <wstearns@xxxxxxxxx>
+# Requires the following lines in makefile:
#%.lst: %.c
# $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -g -c -o $*.o $<
-# $(TOPDIR)/scripts/makelst $*.o $(TOPDIR)/System.map $(OBJDUMP)
+# $(srctree)/scripts/makelst $*.o $(objtree)/System.map $(OBJDUMP)
#
-# Copyright (C) 2000 IBM Corporation
-# Author(s): DJ Barrow (djbarrow@xxxxxxxxxx,barrow_dj@xxxxxxxxx)
+# Copyright (C) 2000 IBM Corporation
+# Author(s): DJ Barrow (djbarrow@xxxxxxxxxx,barrow_dj@xxxxxxxxx)
+# William Stearns <wstearns@xxxxxxxxx>
#

-t1=`$3 --syms $1 | grep .text | grep " F " | head -n 1`
+# awk style field access
+field() {
+ shift $1 ; echo $1
+}
+
+t1=`$3 --syms $1 | grep .text | grep -m1 " F "`
if [ -n "$t1" ]; then
- t2=`echo $t1 | gawk '{ print $6 }'`
+ t2=`field 6 $t1`
if [ ! -r $2 ]; then
echo "No System.map" >&2
- t7=0
else
t3=`grep $t2 $2`
- t4=`echo $t3 | gawk '{ print $1 }'`
- t5=`echo $t1 | gawk '{ print $1 }'`
- t6=`echo $t4 - $t5 | tr a-f A-F`
- t7=`( echo ibase=16 ; echo $t6 ) | bc`
+ t4=`field 1 $t3`
+ t5=`field 1 $t1`
+ t6=`printf "%lu" $((0x$t4 - 0x$t5))`
fi
-else
- t7=0
fi
-$3 -r --source --adjust-vma=$t7 $1
+$3 -r --source --adjust-vma=${t6:-0} $1


--- linux-2.6.20-rc6/scripts/gen_initramfs_list.sh~4gawk-rip 2007-01-12 19:54:26.000000000 +0100
+++ linux-2.6.20-rc6/scripts/gen_initramfs_list.sh 2007-01-31 03:02:25.847918000 +0100
@@ -1,5 +1,5 @@
#!/bin/bash
# Copyright (C) Martin Schlemmer <azarah@xxxxxxxxxxxxxxxx>
-# Copyright (c) 2006 Sam Ravnborg <sam@xxxxxxxxxxxx>
+# Copyright (C) 2006 Sam Ravnborg <sam@xxxxxxxxxxxx>
#
# Released under the terms of the GNU GPL
@@ -18,13 +18,13 @@ Usage:
$0 [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ...
-o <file> Create gzipped initramfs file named <file> using
- gen_init_cpio and gzip
+ gen_init_cpio and gzip
-u <uid> User ID to map to user ID 0 (root).
- <uid> is only meaningful if <cpio_source>
- is a directory.
+ <uid> is only meaningful if <cpio_source>
+ is a directory.
-g <gid> Group ID to map to group ID 0 (root).
- <gid> is only meaningful if <cpio_source>
- is a directory.
+ <gid> is only meaningful if <cpio_source>
+ is a directory.
<cpio_source> File list or directory for cpio archive.
- If <cpio_source> is a .cpio file it will be used
+ If <cpio_source> is a .cpio file it will be used
as direct input to initramfs.
-d Output the default cpio list.
@@ -37,4 +37,11 @@ EOF
}

+# awk style field access
+# $1 - field number; rest is argument string
+field() {
+ shift $1
+ echo $1
+}
+
list_default_initramfs() {
# echo usr/kinit/kinit
@@ -120,23 +127,18 @@ parse() {
;;
"nod")
- local dev_type=
- local maj=$(LC_ALL=C ls -l "${location}" | \
- gawk '{sub(/,/, "", $5); print $5}')
- local min=$(LC_ALL=C ls -l "${location}" | \
- gawk '{print $6}')
-
- if [ -b "${location}" ]; then
- dev_type="b"
- else
- dev_type="c"
- fi
- str="${ftype} ${name} ${str} ${dev_type} ${maj} ${min}"
+ local dev=`LC_ALL=C ls -l "${location}"`
+ local maj=`field 5 ${dev}`
+ local min=`field 6 ${dev}`
+ maj=${maj%,}
+
+ [ -b "${location}" ] && dev="b" || dev="c"
+
+ str="${ftype} ${name} ${str} ${dev} ${maj} ${min}"
;;
"slink")
- local target=$(LC_ALL=C ls -l "${location}" | \
- gawk '{print $11}')
+ local target=`field 11 $(LC_ALL=C ls -l "${location}")`
str="${ftype} ${name} ${target} ${str}"
;;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/