diff options
-rw-r--r-- | patches/01_noperl-headers.patch | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/patches/01_noperl-headers.patch b/patches/01_noperl-headers.patch deleted file mode 100644 index af8d014..0000000 --- a/patches/01_noperl-headers.patch +++ /dev/null @@ -1,148 +0,0 @@ -From: Rob Landley <rob@landley.net> -Origin: http://landley.net/hg/aboriginal/file/9f8fb7a20166/sources/patches/linux-noperl-headers.patch -Applied-Upstream: 3.10-rc1, https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/scripts/headers_install.sh?id=e0e2fa4 -Subject: Replace scripts/headers_install.pl with a shell script. - -Remove perl from make headers_install by replacing a perl script (doing -a simple regex search and replace) with a smaller, faster, simpler, -POSIX-2008 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. - -Patch history: - http://landley.net/hg/aboriginal/log/59c1495d5b5e/sources/patches/linux-noperl-headers.patch - https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/scripts/headers_install.sh - -diff -ruN linux-3.1/scripts/headers_install.sh linux-2.6.30/scripts/headers_install.sh ---- linux-3.1/scripts/headers_install.sh -+++ linux/scripts/headers_install.sh -@@ -0,0 +1,43 @@ -+#!/bin/sh -+ -+if [ $# -lt 2 ] -+then -+ echo "Usage: headers_install.sh INDIR OUTDIR [FILES...] -+ 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 "INDIR: directory to read each kernel header FILE from." -+ echo "OUTDIR: directory to write each userspace header FILE to." -+ echo "FILES: list of header files to operate on." -+ -+ exit 1 -+fi -+ -+# Grab arguments -+ -+INDIR="$1" -+shift -+OUTDIR="$1" -+shift -+ -+# Iterate through files listed on command line -+ -+trap "rm -f $OUTDIR/$i $OUTDIR.sed" EXIT -+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>@@' \ -+ -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \ -+ -e 's/(^|[ \t])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \ -+ "$INDIR/$i" > "$OUTDIR/$i.sed" || exit 1 -+ scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$i.sed" \ -+ > "$OUTDIR/$i" -+ [ $? -gt 1 ] && exit 1 -+ rm -f "$OUTDIR/$i.sed" -+done -+trap - EXIT -diff -ruN linux-3.1/scripts/Makefile.headersinst ---- linux-3.1/scripts/Makefile.headersinst -+++ linux/scripts/Makefile.headersinst -@@ -55,9 +55,9 @@ - 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); \ -- $(PERL) $< $(objtree)/$(gen) $(install) $(SRCARCH) $(genhdr-y); \ -+ $(CONFIG_SHELL) $< $(srctree)/$(obj) $(install) $(header-y); \ -+ $(CONFIG_SHELL) $< $(objtree)/$(obj) $(install) $(objhdr-y); \ -+ $(CONFIG_SHELL) $< $(objtree)/$(gen) $(install) $(genhdr-y); \ - for F in $(wrapper-files); do \ - echo "\#include <asm-generic/$$F>" > $(install)/$$F; \ - done; \ -@@ -83,7 +83,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) ---- a/scripts/headers_install.pl -+++ /dev/null -@@ -1,58 +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__ -D__EXPORTED_HEADERS__"; -- --foreach my $file (@files) { -- my $tmpfile = "$installdir/$file.tmp"; -- -- open(my $in, '<', "$readdir/$file") -- or die "$readdir/$file: $!\n"; -- open(my $out, '>', $tmpfile) -- or die "$tmpfile: $!\n"; -- while (my $line = <$in>) { -- $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/\b__packed\b/__attribute__((packed))/g; -- $line =~ s/^#include <linux\/compiler.h>//; -- $line =~ s/(^|\s)(inline)\b/$1__$2__/g; -- $line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g; -- $line =~ s/(^|\s|[(])(volatile)\b(\s|[(]|$)/$1__$2__$3/g; -- printf {$out} "%s", $line; -- } -- close $out; -- close $in; -- -- system $unifdef . " $tmpfile > $installdir/$file"; -- # unifdef will exit 0 on success, and will exit 1 when the -- # file was processed successfully but no changes were made, -- # so abort only when it's higher than that. -- my $e = $? >> 8; -- if ($e > 1) { -- die "$tmpfile: $!\n"; -- } -- unlink $tmpfile; --} --exit 0; |