lkml.org 
[lkml]   [2011]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] Use sed instead of perl to generate x86/kernel/cpu/capflags.c.
    From: Rob Landley <rlandley@parallels.com>

    Generate capflags.c with sed (POSIX 2008) instead of perl.

    Signed-off-by: Rob Landley <rlandley@parallels.com>
    ---

    This patch hasn't changed since 2009.

    arch/x86/kernel/cpu/Makefile | 4 +--
    arch/x86/kernel/cpu/mkcapflags.pl | 32 ----------------------------
    arch/x86/kernel/cpu/mkcapflags.sh | 28 ++++++++++++++++++++++++
    3 files changed, 30 insertions(+), 34 deletions(-)

    diff -ruN linux-2.6.30.old/arch/x86/kernel/cpu/Makefile linux-2.6.30/arch/x86/kernel/cpu/Makefile
    --- linux-2.6.30.old/arch/x86/kernel/cpu/Makefile 2009-06-09 22:05:27.000000000 -0500
    +++ linux-2.6.30/arch/x86/kernel/cpu/Makefile 2009-06-22 16:39:06.000000000 -0500
    @@ -36,10 +36,10 @@
    obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o

    quiet_cmd_mkcapflags = MKCAP $@
    - cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
    + cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $< $@

    cpufeature = $(src)/../../include/asm/cpufeature.h

    targets += capflags.c
    -$(obj)/capflags.c: $(cpufeature) $(src)/mkcapflags.pl FORCE
    +$(obj)/capflags.c: $(cpufeature) $(src)/mkcapflags.sh FORCE
    $(call if_changed,mkcapflags)
    diff -ruN linux-2.6.30.old/arch/x86/kernel/cpu/mkcapflags.pl linux-2.6.30/arch/x86/kernel/cpu/mkcapflags.pl
    --- linux-2.6.30.old/arch/x86/kernel/cpu/mkcapflags.pl 2009-06-09 22:05:27.000000000 -0500
    +++ linux-2.6.30/arch/x86/kernel/cpu/mkcapflags.pl 1969-12-31 18:00:00.000000000 -0600
    @@ -1,32 +0,0 @@
    -#!/usr/bin/perl
    -#
    -# Generate the x86_cap_flags[] array from include/asm-x86/cpufeature.h
    -#
    -
    -($in, $out) = @ARGV;
    -
    -open(IN, "< $in\0") or die "$0: cannot open: $in: $!\n";
    -open(OUT, "> $out\0") or die "$0: cannot create: $out: $!\n";
    -
    -print OUT "#include <asm/cpufeature.h>\n\n";
    -print OUT "const char * const x86_cap_flags[NCAPINTS*32] = {\n";
    -
    -while (defined($line = <IN>)) {
    - if ($line =~ /^\s*\#\s*define\s+(X86_FEATURE_(\S+))\s+(.*)$/) {
    - $macro = $1;
    - $feature = $2;
    - $tail = $3;
    - if ($tail =~ /\/\*\s*\"([^"]*)\".*\*\//) {
    - $feature = $1;
    - }
    -
    - if ($feature ne '') {
    - printf OUT "\t%-32s = \"%s\",\n",
    - "[$macro]", "\L$feature";
    - }
    - }
    -}
    -print OUT "};\n";
    -
    -close(IN);
    -close(OUT);
    diff -ruN linux-2.6.30.old/arch/x86/kernel/cpu/mkcapflags.sh linux-2.6.30/arch/x86/kernel/cpu/mkcapflags.sh
    --- linux-2.6.30.old/arch/x86/kernel/cpu/mkcapflags.sh 1969-12-31 18:00:00.000000000 -0600
    +++ linux-2.6.30/arch/x86/kernel/cpu/mkcapflags.sh 2009-06-22 16:39:06.000000000 -0500
    @@ -0,0 +1,28 @@
    +#!/bin/sh
    +#
    +# Generate the x86_cap_flags[] array from include/asm/cpufeature.h
    +#
    +
    +IN=$1
    +OUT=$2
    +
    +(
    + echo "#include <asm/cpufeature.h>"
    + echo ""
    + echo "const char * const x86_cap_flags[NCAPINTS*32] = {"
    +
    + # Iterate through any input lines starting with #define X86_FEATURE_
    + sed -n -e 's/\t/ /g' -e 's/^ *# *define *X86_FEATURE_//p' $IN |
    + while read i
    + do
    + # Name is everything up to the first whitespace
    + NAME="$(echo "$i" | sed 's/ .*//')"
    +
    + # If the /* comment */ starts with a quote string, grab that.
    + VALUE="$(echo "$i" | sed -n 's@.*/\* *\("[^"]*"\).*\*/@\1@p')"
    + [ -z "$VALUE" ] && VALUE="\"$(echo "$NAME" | tr A-Z a-z)\""
    +
    + [ "$VALUE" != '""' ] && echo " [X86_FEATURE_$NAME] = $VALUE,"
    + done
    + echo "};"
    +) > $OUT

    \
     
     \ /
      Last update: 2011-01-16 21:03    [W:0.027 / U:30.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site