changeset 558:f806ebb91b0b

Remove the latest perl outbreak.
author Rob Landley <rob@landley.net>
date Sun, 28 Dec 2008 19:02:01 -0600
parents 8113ea4c3ee9
children c893c8d381f4
files sources/patches/alt-linux-noperl-out-out-damned-perl.patch
diffstat 1 files changed, 86 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-noperl-out-out-damned-perl.patch	Sun Dec 28 19:02:01 2008 -0600
@@ -0,0 +1,86 @@
+The perl infestation spread in the 2.6.28 kernel.
+
+diff -ruN alt-linux/arch/x86/kernel/cpu/Makefile alt-linux2/arch/x86/kernel/cpu/Makefile
+--- alt-linux/arch/x86/kernel/cpu/Makefile	2008-12-24 17:26:37.000000000 -0600
++++ alt-linux2/arch/x86/kernel/cpu/Makefile	2008-12-28 18:10:51.000000000 -0600
+@@ -23,10 +23,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 alt-linux/arch/x86/kernel/cpu/mkcapflags.pl alt-linux2/arch/x86/kernel/cpu/mkcapflags.pl
+--- alt-linux/arch/x86/kernel/cpu/mkcapflags.pl	2008-12-24 17:26:37.000000000 -0600
++++ alt-linux2/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 alt-linux/arch/x86/kernel/cpu/mkcapflags.sh alt-linux2/arch/x86/kernel/cpu/mkcapflags.sh
+--- alt-linux/arch/x86/kernel/cpu/mkcapflags.sh	1969-12-31 18:00:00.000000000 -0600
++++ alt-linux2/arch/x86/kernel/cpu/mkcapflags.sh	2008-12-28 18:08:50.000000000 -0600
+@@ -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